要将微信支付接入网页,开发者需遵循微信支付官方流程,完成技术配置、商户资质审核及测试验证等环节,以下是详细步骤和注意事项,涵盖从准备工作到线上上线的全流程。

准备工作
-
注册微信支付商户号
访问微信支付官网(pay.weixin.qq.com)注册商户号,选择“产品中心”开通“JSAPI支付”权限,JSAPI支付适用于网页场景,需绑定已认证的公众号或小程序,用户需在微信内打开网页完成支付。 -
配置商户平台信息
登录商户平台,在“账户中心 > API安全”中设置API密钥(APIv3密钥),用于后续签名验证;在“产品中心 > JSAPI支付”中获取商户ID(mch_id)、AppID(公众号或小程序的AppID)等关键参数。 -
申请微信支付权限
确保公众号或小程序已完成微信认证,且商户号主体与公众号主体一致,若为第三方平台,需通过授权模式接入,获取授权商户的调用权限。
技术接入流程
生成预支付订单
网页支付需通过后端服务器调用微信支付统一下单接口,生成预支付交易会话标识(prepay_id),请求参数需包含:

- appid:公众号或小程序的AppID
- mch_id:商户号
- nonce_str:随机字符串(32位以内)
- sign:签名(基于APIv3密钥生成)
- body:商品描述
- out_trade_no:商户订单号(需唯一)
- total_fee:订单金额(单位:分)
- spbill_create_ip:客户端IP
- notify_url:支付结果通知地址(需为公网可访问的HTTPS地址)
接口调用成功后,微信返回prepay_id,用于后续前端调起支付。
前端调起支付
网页需在微信内置浏览器中打开,通过微信JS-SDK调起支付,步骤如下:
- 引入JS-SDK:在页面中引入微信JS-SDK脚本(https://res.wx.qq.com/open/js/jweixin-1.6.0.js)。
- 配置权限验证:后端生成
signature、timestamp、noncestr、appId,前端通过wx.config接口注入权限验证配置。 - 调起支付:使用
wx.chooseWXPay方法,传入后端返回的prepay_id、package、signType、paySign等参数,唤起微信支付收银台。
wx.chooseWXPay({
timestamp: '1591234567', // 时间戳
nonceStr: '5K8264ILTKCH16CQ2502SI8ZNMTM67VS', // 随机字符串
package: 'prepay_id=wx201410272009395522657a690389285100', // 统一下单接口返回的prepay_id
signType: 'RSA', // 签名算法
paySign: 'oR9d8PuhnIc+YZ8cBHFCwA...=', // 支付签名
success: function(res) {
// 支付成功回调
},
cancel: function(res) {
// 用户取消支付
}
});
支付结果处理
- 异步通知:微信服务器向
notify_url发送POST请求,包含支付状态(trade_state)、订单号等信息,后需验证签名并更新订单状态。 - 同步回调:用户支付成功后,前端会触发
wx.chooseWXPay的success回调,可在此处跳转至成功页。
测试与上线
-
环境配置
- 测试环境:使用微信支付提供的沙箱环境(商户平台 > 账户中心 > API安全 > 开发者工具 > 沙箱设置),测试接口调用和支付流程。
- 生产环境:关闭沙箱开关,切换为正式环境,确保所有参数为生产环境值。
-
常见问题排查
(图片来源网络,侵删)- 签名错误:检查APIv3密钥是否正确,参数是否按字典序排序。
- prepay_id无效:确认订单号唯一、金额单位为分、IP地址正确。
- 调起支付失败:确保在微信内置浏览器中打开,JS-SDK配置正确。
安全与合规
- 数据加密:敏感信息(如用户手机号)需加密传输,避免明文存储。
- 订单对账:每日登录商户平台下载对账单,核对订单状态与实际支付情况。
- 合规要求:商品需符合微信支付类目规范,避免涉及敏感行业(如虚拟货币、金融产品)。
相关问答FAQs
Q1:网页支付必须使用微信JS-SDK吗?
A1:是的,微信支付网页调起仅支持通过JS-SDK实现,需确保在微信内置浏览器中打开页面,并完成wx.config权限验证,若脱离微信环境,需使用H5支付(需用户手动跳转至微信完成支付)。
Q2:支付异步通知一直未收到怎么办?
A2:首先检查notify_url是否为公网可访问的HTTPS地址,且能正常响应微信的POST请求(需返回<xml><return_code><![CDATA[SUCCESS]]></return_code></xml>),若配置正确仍未收到通知,可登录商户平台在“交易记录 > 通知查询”中手动重发通知,或联系微信支付技术支持排查接口问题。
通过以上步骤,开发者可完成微信支付网页接入的全流程,需注意,微信支付接口可能更新,建议定期查阅官方文档(https://pay.weixin.qq.com/wiki/doc/apiv3/index.shtml),确保接入流程符合最新规范。
