微信支付native下单生成二维码

欢迎回到哈么尼,让科技为您的生活增添色彩!

微信支付 Native 下单二维码生成

该源码用于微信 Native 支付,在 PC 端生成支付二维码,用户可通过微信扫码完成支付。可直接在控制台调用测试。

  • 所需积分:80
  • 文件类型:js
下载源文件

微信支付native下单生成二维码

1、创建商户API证书

链接地址:商户API证书

2、获取证书序列号

openssl x509 -in xxxxx.pem -noout -serial

其中 xxxxx.pem 是你的私钥证书地址。

3、在商户平台绑定一个appid

需要提前创建一个小程序或者公众号,将您的商户号与其appid进行绑定。

4、生成一个时间戳和随机字符串

下面以node为例:


// 时间戳
 const timestamp = Math.floor(Date.now() / 1000).toString();

// 随机字符串
const nonceStr = crypto.randomBytes(16).toString('hex');

5、订单请求体


const requestBody = {
       "appid": "xxxxxxxxxxxx",    // 示例:您的appid
       "mchid": "xxxxxxxx",        // 示例:商户号
       "description": "测试商品-Native下单",
       "out_trade_no": "order1234567890",
       "notify_url": "https://www.example.com/pay/notify",
       'amount': {
           'total': 1,    // 整数,单位:分
           'currency': "CNY"
       },
}

替换您的自己的appid和mchid。

注意金额单位为

6、构建待签名串

const message = `${method}\n${reqUrlPath}\n${timestamp}\n${nonceStr}\n${bodyString}\n`;

格式为:HTTP请求方法 + "\n" + URL 路径 + "\n" + 时间戳 + "\n" + 随机串 + "\n" + 请求Body + "\n"

接下来使用使用商户私钥签名 该签名传,注意使用RSA-SHA256

7、拼装请求头Authorization

Authorization: WECHATPAY2-SHA256-RSA2048 mchid="xxxx",nonce_str="xxx",signature="xxx",timestamp="xxxx",serial_no="xxxx"

WECHATPAY2-SHA256-RSA2048 是固定内容,无需更改。

  • mchid:商户号
  • nonce_str:随机字符串
  • signature:签名值(构建的签名串)
  • timestamp:时间戳
  • serial_no:证书序列号

8、发起请求

curl -X POST \
https://api.mch.weixin.qq.com/v3/pay/transactions/jsapi \
-H 'Authorization: ${Authorization}'
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '${requestBody}'