# 微信支付

QQ 小程序微信支付功基于微信 H5 支付,QQ小程序后台仅对统一下单和支付回调两种接口进行透明转发。 其它接口(查询订单,关闭订单,申请退款,查询退款等)需开发者直接请求微信支付后台。

# 接入步骤

  1. 在微信支付商户平台开通具备 H5 支付能力的微信支付商户号
  • 开通路径:微信支付商户平台 - 产品中心 - 我的产品 - H5支付
  • 微信支付商户号绑定微信 AppID,绑定路径:微信支付商户平台 – 产品中心 – AppID账号管理
  1. 在QQ小程序管理端开通微信支付能力并绑定微信支付商户号
  • 开通路径:QQ小程序开发者管理端 - 支付接入 - 微信支付
  • 绑定微信支付商户号,设置接收微信支付结果通知的回调地址
  1. 调用 QQ 小程序微信 H5 支付统一下单代理接口获取 H5 支付跳转连接

  2. QQ小程序内使用 qq.requestWxPayment 呼起微信支付

# 允许接入的服务类目

目前微信支付按类目开放给包含以下一个或多个类目的小程序:电商平台、教育、生活服务、工具、旅游、餐饮、商家自营、商业服务、体育、汽车、社交红包。 只有允许开通的类目才可以在开发者管理端看到开通入口。

# 版本选择

微信 H5 支付有 V2 版和 V3 版,两种版本的区别参见微信支付官网。官方文档

# 已支持的 API 列表

# 微信H5支付V2版

# 微信H5支付V3版

# QQ小程序代理微信支付流程

  • 在QQ小程序中使用微信支付,必须经过QQ小程序后台的代理转发,否则即使下单成功也无法在手Q中呼起微信支付。
  • 在QQ小程序中使用微信支付,支付回调必须经过QQ小程序后台代理转发,否则QQ小程序后台拒绝代理下单请求。
  • 在QQ小程序中使用的微信支付商户号必须先在QQ小程序开发者管理端绑定,否则QQ小程序后台拒绝代理下单请求。
    • 直连模式:绑定普通商户号
    • 服务商模式:绑定服务商商户号
    • 合单下单:绑定合单商户号

QQ小程序代理微信支付流程图如下: QQ小程序微信支付代理流程图

# V2 版 H5支付统一下单

# V2版 H5 支付

微信支付原统一下单 API 为:

https://api.mch.weixin.qq.com/pay/unifiedorder

QQ 小程序后台对应的代理下单 API 为:

https://api.q.qq.com/wxpay/unifiedorder?appid=YourQQAppID&access_token=YourAccessToken&&real_notify_url=UrlEncodedNotifyUrl

# V3 版 H5支付下单API

# H5下单API(直连模式)

微信支付原统一下单 API 为:

https://api.mch.weixin.qq.com/v3/pay/transactions/h5

QQ 小程序后台对应的代理下单 API 为:

https://api.q.qq.com/wxpay/v3/pay/transactions/h5?appid=YourQQAppID&access_token=YourAccessToken&&real_notify_url=UrlEncodedNotifyUrl

# H5下单API(服务商模式)

微信支付原统一下单 API 为:

https://api.mch.weixin.qq.com/v3/pay/partner/transactions/h5

QQ 小程序后台对应的代理下单 API 为:

https://api.q.qq.com/wxpay/v3/pay/partner/transactions/h5?appid=YourQQAppID&access_token=YourAccessToken&&real_notify_url=UrlEncodedNotifyUrl

# 合单支付API

微信支付原统一下单 API 为:

https://api.mch.weixin.qq.com/v3/combine-transactions/h5

QQ 小程序后台对应的代理下单 API 为:

https://api.q.qq.com/wxpay/v3/combine-transactions/h5?appid=YourQQAppID&access_token=YourAccessToken&&real_notify_url=UrlEncodedNotifyUrl

# 请求参数填写说明

# 参数类型

  • path 指该参数需在请求URL传参
  • query 指该参数需在请求URL的query传参
  • body 指该参数需在请求Body传参

# 请求参数

参数 是否必须 参数类型 填写说明
appid query 填写 QQ 小程序 appid, 区别于 body 中的 appid,body 中填写的是微信的 APPID
access_token query QQ 小程序后台接口调用凭证,通过getAccessToken 获得
real_notify_url query 填写直接调用微信支付下单接口时的 notify_url 参数,接收微信支付异步通知回调地址,通知url必须为直接可访问的url,不能携带参数。可选参数,若不填写,则取QQ小程序开发者管理端绑定的回调地址。
request body body 和直接请求微信支付后台的统一下单接口一样,但 notify_url 参数必须填写 QQ 小程序平台支付回调代理地址
# notify_url 参数填写说明
API 版本 参数名称 参数类型 说明
V2 notify_url body https://api.q.qq.com/wxpay/notify QQ 小程序平台 V2 版 支付回调代理地址
V3 notify_url body https://api.q.qq.com/wxpay/v3/notify/MCH_ID/OUT_TRADE_NO QQ 小程序平台 V3 版 支付回调代理地址, 其中 MCH_ID 和 OUT_TRADE_NO 分别为下单时的商户号和订单号。直连模式填普通商户号和订单号;服务商模式填服务商商户号和订单号;合单下单填合单商户号和订单号。
# 注意事项
  • 微信支付 V3 版 API 的签名信息包含了 URL,这里签名时应使用微信支付原版 URL。不要携带 appid, access_token, real_notify_url 这些参数。
    • 如H5下单API(直连模式) 下,参与签名的 URL 应为 /v3/pay/transactions/h5
  • QQ小程序后台仅对统一下单和支付回调两种接口进行透明转发。建议先直接请求微信支付后台调试接口,待接口调试成功后再转到QQ小程序后台代理接口。

# 错误码

错误码 含义 解决方法
9030 商户号没绑定 去 QQ 小程序开发者管理端绑定使用的商户号
9031 notify_url 设置错误 按照上面 notify_url 参数填写说明检查参数
9032 没有开通微信支付 去 QQ 小程序开发者管理端开通微信支付接入权限
9034 请求 body 解析失败 检查请求 body

# QQ小程序内呼起微信支付

下单成功后开发者会拿到用于呼起微信支付的跳转链接, 在 QQ 小程序中不允许直接呼起微信支付,需通过调用qq.requestWxPayment接口呼起

# 支付体验

  • 扫码体验

QQ小程序微信支付扫码体验