文章摘要
本文介绍了微信支付SDK接入中的关键检查点和调试方法。主要内容包括:1)Android签名SHA1一致性验证,确保APK签名与开放平台配置一致;2)服务配置检查,涵盖回调URL、域名白名单和iOS Universal Links设置;3)支付SDK核心检查,包括初始化流程和回调处理;4)常见问题自查清单。最后给出调试建议,强调签名核对、全流程测试和服务端日志检查的重要性。这些步骤有助于解决支付流程中的常见问题。
一、Android签名校验
1. SHA1一致性验证
- 目的:确保App的签名和开放平台配置一致,防止因签名不符导致支付、登录等功能失效。
- 操作步骤:
- 获取APK签名SHA1
- 用
keytool
命令或Android Studio的签名信息工具,获取当前APK的SHA1。 - 示例命令:
keytool -list -v -keystore your.keystore
- 用
- 比对开放平台配置
- 登录微信开放平台管理中心,找到对应应用的包名和签名证书信息。
- 确认商城测试工具、开放平台、实际APK的包名和SHA1完全一致。
- 签名校验界面
- 在微信开放平台的签名校验界面,粘贴SHA1进行核对。
- 获取APK签名SHA1
二、服务配置检查
配置类型 | 验证要点 | 备注/参考文档 |
---|---|---|
回调URL | 支付结果回调地址必须与开放平台注册地址一致。 米大师订单查询接口需配置正确回调地址。 | 米大师开发文档 |
域名白名单 | 微信JS-SDK需在公众平台配置合法域名(含支付相关二级域名)。 | 移动端H5通信技术文档 |
Universal Links | iOS设备需验证: • apple-app-site-association文件通配符配置 • 微信开放平台UL域名有效性 | 微信SDK接入指南 |
- 注意:回调URL、白名单、UL等配置错误会导致支付流程中断或无法唤起App。
三、支付SDK核心检查
1. 初始化流程验证
- 示例代码(Android 米大师SDK):
MidasPayConfig config = new MidasPayConfig() .setEnv(ENV_SANDBOX) // 环境切换(沙箱/现网) .setIDC("local"); // 国内节点配置 MidasPay.getInstance().init(config);
- 检查要点:
- 环境参数(沙箱/现网)必须与当前部署环境一致。
- 渠道ID、AppID等参数需与实际支付平台配置一致。
2. 回调处理验证
- Android:需完整覆盖支付生命周期回调
// 伪代码 onPayResult(result) { switch(result.status) { case SUCCESS: // 支付成功 // 业务处理 break; case CANCEL: // 用户取消 // 业务处理 break; case FAILURE: // 支付失败 // 业务处理 break; } }
- iOS:需同时处理
openURL
和continueUserActivity
回调// AppDelegate.m - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options - (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler
四、常见问题自查清单
- 签名SHA1不一致 → 支付/登录失败
- 回调URL未配置或不一致 → 订单状态无法回传
- 域名白名单未加 → H5支付/JS-SDK调用失败
- Universal Links未生效 → iOS无法唤起App
- SDK初始化参数错误 → 支付流程无法启动
- 回调未覆盖所有状态 → 用户体验异常
五、调试建议
- 每次打包后都重新核对签名和包名。
- 用真机全流程测试支付,观察回调和订单状态。
- 检查服务端日志,确认回调已收到。
- iOS需用TestFlight或真机安装包测试UL和回调。