手机APP微信支付返回-1

本文记录了一次在电商APP中调试微信支付功能的经历,详细描述了遇到的问题及解决过程,包括更换测试设备、清理微信缓存直至卸载重装微信才最终实现支付成功的调试经历。

最近在做一个电商类的手机APP,在调试微信支付的环节,调试了几个小时依然无法唤起微信支付,一直返回-1,看了网上不少人的帖子,仔细核对了appid、key等配置数据,都是正确的。只好换手机测试,发现在自己的安卓手机测试失败,在同事的安卓手机测试成功,在苹果上测试成功。

看网上不少人说微信清理一下缓存,就可以了。我清理了微信缓存之后,依然不行。

最后,将微信卸载了,重新安装,终于看到了支付成功。就为了这个问题花了差不多两天时间。微信支付确实有点坑。

将 `targetSdk` 28 和 `compileVersion` 28 升级到 `targetSdk` 30 和 `compileVersion` 30 后,应用在 Android 15 手机微信支付返回 -1,可能是由多种原因导致的,以下是一些可能的解决办法: #### 权限问题 在 Android 11(API 级别 30)及以上版本,权限管理有了较大变化。需要确保应用在运行时已经获取了微信支付所需的必要权限。在 `AndroidManifest.xml` 中添加必要的权限声明,并在代码中动态请求权限。 ```xml <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.app"> <!-- 添加必要的权限 --> <uses-permission android:name="android.permission.INTERNET" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <!-- 应用组件 --> </application> </manifest> ``` #### 网络安全配置 Android 11 引入了更严格的网络安全配置。需要确保应用的网络安全配置允许访问微信支付的相关网络资源。可以在 `res/xml` 目录下创建 `network_security_config.xml` 文件,并在 `AndroidManifest.xml` 中引用: ```xml <?xml version="1.0" encoding="utf-8"?> <network-security-config> <base-config cleartextTrafficPermitted="true"> <trust-anchors> <certificates src="system" /> </trust-anchors> </base-config> </network-security-config> ``` ```xml <application ... android:networkSecurityConfig="@xml/network_security_config"> ... </application> ``` #### 微信 SDK 版本兼容性 确保使用的微信 SDK 版本与 `targetSdk` 30 和 `compileVersion` 30 兼容。可以尝试更新到最新版本的微信 SDK。在 `build.gradle` 文件中更新依赖: ```groovy dependencies { implementation 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:6.8.0' } ``` #### 签名问题 检查应用的签名是否正确。在 Android 11 及以上版本,应用签名的验证可能会更加严格。确保应用在发布和调试时使用的签名文件与微信开放平台注册的签名一致。 #### 支付参数问题 检查传递给微信支付的参数是否正确。确保订单号、金额、签名等参数符合微信支付的要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值