Files

2.3 KiB
Raw Permalink Blame History

微信生态接入契约

元数据

  • Owner支付与微信生态维护人
  • 实现:pkg/wechat/
  • SDKgithub.com/ArtisanCloud/PowerWeChat/v3 v3.4.38
  • 核验日期2026-08-07

当前实际使用范围

系统使用公众号 OAuth、小程序 code2session、微信支付 JSAPI/H5 下单、查单、关单和支付通知。支付同时存在 PowerWeChat/v3 适配与仅配置 APIv2 Key 时使用的 v2 XML 适配;不得仅凭 SDK 文档推断其他微信能力。

端点、配置与关键字段

  • 小程序:GET https://api.weixin.qq.com/sns/jscode2session,参数为 AppID、AppSecret、临时 code 和固定 authorization_code;响应必须含 OpenID、SessionKey可选 UnionID超时 10 秒。
  • 支付 v2POST https://api.mch.weixin.qq.com/pay/unifiedorder/pay/orderqueryXML + MD5 签名关键字段为商户订单号、金额、OpenID、交易类型、通知地址和客户端 IP。
  • 支付 v3/SDK使用 AppID、商户号、APIv3 Key、证书序列号、私钥及通知地址支持 JSAPI/H5、Query、Close 和 Notify。

配置来自支付配置记录不在本文列出具体值。v2 下单同时要求 return_code=SUCCESSresult_code=SUCCESS;查单以商户订单号关联本地支付。

回调、幂等、失败与重试

v2 按 API Key 验签v3 按平台证书验签并解密通知。商户订单号是渠道幂等标识;通知还需核对金额、配置和本地状态,并以状态条件更新避免重复入账。小程序 errcode!=0、关键字段缺失、HTTP/解析失败均映射统一微信错误。

适配器没有对创建支付做盲目自动重试;查单可由业务流程补偿,关单和回调按原商户订单号及状态保持幂等。

安全与验证

AppSecret、API Key、私钥、证书内容、SessionKey、完整 OpenID 和通知原文不得进入文档或普通日志。可复现静态证据:pkg/wechat/miniapp.gopkg/wechat/payment.gopkg/wechat/payment_v2.gointernal/handler/callback/payment.go。真实验收需隔离商户验证 JSAPI/H5、查关单、签名失败、金额不符与重复通知本次不调用真实渠道。

官方参考:https://pay.weixin.qq.com/doc/v3/merchant/4012065342

SDK、API 版本、认证、通知或重试语义变化时更新本文。