2021-01-12 11:19:04
微信支付JSAPI集成快速上手及常见问题解决方案如下:
一、快速上手步骤基础配置
申请微信支付商户号:登录
获取API密钥:在商户平台“账户中心”→“API安全”中设置32位API密钥(用于加密通信)。
配置开放平台信息:
在
配置网页授权域名(需ICP备案),确保支付页面可引导用户授权。
下载并集成SDK
从官方下载
将SDK引入项目,配置商户号、API密钥等参数。
集成JSAPI组件
引入JS文件:在网页中引入微信JS-SDK:<script src="
配置JS-SDK:通过后端接口获取签名信息,初始化JS-SDK:wx.config({ debug: false, // 调试模式 appId: '你的AppId', timestamp: 时间戳, nonceStr: '随机字符串', signature: '签名', jsApiList: ['chooseWXPay'] // 需使用的API列表});
发起支付流程
后端生成预支付订单:调用微信支付统一下单接口,返回预支付交易会话标识prepay_id。
前端调起支付:wx.ready(function() { wx.chooseWXPay({ timestamp: 时间戳, nonceStr: '随机字符串', package: 'prepay_id=预支付ID', signType: 'MD5/HMAC-SHA256', paySign: '支付签名', success: function(res) { alert('支付成功'); } });});
支付调起失败
原因:签名错误、域名未配置、JS-SDK未正确初始化。
解决:
检查签名算法(需与商户平台配置一致)。
确认网页授权域名已配置且可访问。
调用wx.error捕获初始化错误:wx.error(function(res) { console.error('JS-SDK初始化失败:', res);});
预支付订单生成失败
原因:参数错误、商户号未开通JSAPI支付、金额超限。
解决:
检查统一下单接口参数(如body、total_fee、spbill_create_ip)。
登录商户平台确认已开通“JSAPI支付”功能。
确保金额单位为分(如1元=100分)。
跨域问题
现象:前端请求后端接口时报错No 'Access-Control-Allow-Origin'。
解决:
后端设置CORS头:header("Access-Control-Allow-Origin: *");header("Access-Control-Allow-Methods: POST, GET");
或通过代理层转发请求。
支付结果通知异常
原因:异步通知地址未配置、签名验证失败。
解决:
在商户平台设置正确的支付结果通知URL。
后端需验证通知签名(参考官方文档
移动端兼容性问题
现象:部分安卓机型无法调起支付窗口。
解决:
确保微信版本为最新版。
避免在支付页面使用iframe或弹窗拦截。
微信开发者工具(模拟支付环境)。
通过以上步骤和解决方案,可快速完成微信支付JSAPI集成并处理常见问题。如遇复杂场景,建议结合官方文档和社区案例深入排查。