调用支付jsapi缺少参数appid_小程序微信支付

1538e3379eb7afe5a8becc47d03ecf02.png

今天有个朋友问我小程序微信支付的事儿,因为以前没做过,所以就抽时间了解一下文档,看看能不能帮上这位朋友。发现小程序支付和jsapi还有jssdk的支付非常类似(文档也这么说了)。

2958e2f171320ef98220d56264d15584.png

所以呢,就写了一份简单的说明给朋友发过去,内容如下:

  1. 获取订单信息:例如价格(total_fee),订单号(out_trade_no)这些字段,发送给服务器。

2. 服务器根据所有必要字段生成签名:字段包括appid,openid,total_fee,out_trade_no这些等等,如下所示:

{
      appid: config.appId,
      sub_appid: config.sub_appid,
      body: body,
      mch_id: config.mchId,
      sub_mch_id: config.sub_mch_id,
      nonce_str: Math.random().toString(36).substr(2, 15),
      notify_url: notify_url,
      openid: openid, 
      out_trade_no: out_trade_no,
      spbill_create_ip: spbill_create_ip,
      total_fee: total_fee,
      trade_type: 'JSAPI'
  }

3. 网上有各种语言的签名算法,成功获取签名之后,继续。

4. 再把2中的字段和3中生成的签名放在一起,转换成xml格式,发送给统一下单接口。

5. 统一下单接口:https://api.mch.weixin.qq.com/pay/unifiedorder

6. 统一下单接口会响应一个xml格式的数据,其中包括一个prepay_id字段,这个是调取支付需要的字段。

7. 然后再用prepay_id等字段,再用签名算法生成一个签名,字段如下所示:

{
   appId: config.appId,
   timeStamp: new Date().getTime(),
   nonceStr: Math.random().toString(36).substr(2, 15),
   package: `prepay_id=${prepay_id}`,
   signType: 'MD5',
}

8. 然后把数据7中的字段和签名发送给小程序(前端)。

9. 小程序调用支付接口:所有必要字段在第8步已经获取到了

wx.requestPayment(
{
'timeStamp': '',
'nonceStr': '',
'package': '',
'signType': 'MD5',
'paySign': '',
'success':function(res){},
'fail':function(res){},
'complete':function(res){}
})

写着写着东西就多了,所以就发到知乎上,看看能不能帮到更多的朋友。

有问题也可以留言一起沟通。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值