微信公众号支付 jsapi支付

官方文档

https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_3

参考文档

所有资料(缺一不可)

  • 需要资料 :
  • 商户号(mch_id)
  • 商户秘钥:(partner_key)
  • 商户号证书: 公钥 & 私钥

  • 公众号id:(app_id)
  • 公众号秘钥 APPSECEPT

  • 公众号支付目录设置
  • 网页授权域名 设置
  • js网页授权
  • 授权验证文件(.txt文件)

##常见问题

  • 前端 wx.config 配置失败;根据失败提示进行配置,
    一般是 token过期, url配置错误 (js,授权目录)
  • 分清楚 基础token 和 web_token 的区别

开发示例

1.如果采用weixin-pay npm 包,注意:

当 返回结果 prepay_id, 统一下单错误

1
2
3
4
5
6
7
var reqparam = {
appId: _this.options.appid,
timeStamp: Math.floor(Date.now()/1000)+"",
nonceStr: data.nonce_str,
package: "prepay_id=underfind,(这里)
signType: "MD5"
};



### 2.前端示例代码
- 配置weixin-js 代码



- pay 代码



### 统一下单
- 官方文档
https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115
- 异步回调通知
https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_7&index=8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
回调参数xml数据解析后示例:
{"appid":["wx230378b441a84e1b1"],
"bank_type":["CFT"],
"cash_fee":["1"],
"fee_type":["CNY"],
"is_subscribe":["Y"],
"mch_id":["15108183471"],
"nonce_str":["pyY7PLJ5BF9xK6yTH9QUjI2jtUohDtLb"],
"openid":["odv3i0-qsinD4dMv7j-bSQQGo1Fs"],
"out_trade_no":["2019031811118531552879185506"],
"result_code":["SUCCESS"],
"return_code":["SUCCESS"],
"sign":["79A0A73CF6E98414B4FCA0A1BEC5B2640"],
"time_end":["201903181111817"],
"total_fee":["1"],
"trade_type":["JSAPI"],
"transaction_id":["42000010256201903184142657168"]}