Android 11 开发微信支付的问题

App上起来微信支付页面报:

MicroMsg.SDK.WXApiImplV10: register app failed for wechat app signature check failed
MicroMsg.SDK.WXApiImplV10: sendReq failed for wechat app signature check failed

从微信sdk源码点进去查看,发现是获取微信包名是否存在返回了false.在安卓11上,app访问手机上其他app的时候,需要添加新的规则了,在androidmanifest.xml里配置上<queries>  <package android:name="com.tencent.mm" /> </queries>   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微信支付Android开发中,主要涉及以下几个步骤: 1. 获取微信支付API密钥和商户ID 2. 添加微信支付SDK到Android项目中 3. 调用API接口生成预支付订单 4. 调用微信支付SDK启动支付流程 5. 处理支付结果 下面是一个简单的微信支付的实例代码: 1. 添加依赖 在项目的 build.gradle 文件中添加以下依赖: ``` dependencies { // 微信支付依赖 implementation 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+' } ``` 2. 调用API接口生成预支付订单 在调用API接口生成预支付订单之前,需要先获取微信支付API密钥和商户ID,并且在 AndroidManifest.xml 文件中添加以下代码: ``` <!-- 微信支付配置 --> <meta-data android:name="com.tencent.mm.sdk.openapi.WXPayEntryActivity" android:value=".wxapi.WXPayEntryActivity" /> <!-- 微信支付回调activity --> <activity android:name=".wxapi.WXPayEntryActivity" android:exported="true" android:launchMode="singleTop" android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent.NoTitleBar" /> ``` 接下来,可以使用以下代码生成预支付订单: ``` try { // 创建预支付订单请求对象 PayReq request = new PayReq(); // 订单号 request.partnerId = "商户ID"; // 商户密钥 request.prepayId= "预支付订单ID"; // 随机字符串 request.nonceStr= "随机字符串"; // 时间戳 request.timeStamp= "时间戳"; // 签名 request.sign= "签名"; // 调用微信支付SDK启动支付流程 IWXAPI wxapi = WXAPIFactory.createWXAPI(context, "微信支付API密钥"); wxapi.sendReq(request); } catch (Exception e) { e.printStackTrace(); } ``` 3. 处理支付结果 在 WXPayEntryActivity 中可以处理微信支付结果,以下是一个简单的实现: ``` public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler { private IWXAPI api; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); api = WXAPIFactory.createWXAPI(this, "微信支付API密钥"); api.handleIntent(getIntent(), this); } @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); setIntent(intent); api.handleIntent(intent, this); } @Override public void onReq(BaseReq req) {} @Override public void onResp(BaseResp resp) { if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) { if (resp.errCode == 0) { // 支付成功 } else if (resp.errCode == -1) { // 支付失败 } else if (resp.errCode == -2) { // 用户取消支付 } finish(); } } } ``` 注意事项: 1. 以上代码仅供参考,具体实现需要根据实际情况进行调整。 2. 在使用微信支付时,需要保证微信支付API密钥和商户ID的正确性。 3. 微信支付SDK需要在AndroidManifest.xml文件中注册。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值