微信小程序开发支付步骤简述

微信小程序开发渐渐发展到支付阶段,对于许多一直以来从事App开发的人员,无疑要舍弃过去的支付流程。但是微信小程序的支付就有点奇怪了,应用的创建是在公众号里,但是文档的介绍却在公众号中无法找到直接入口,这样的设计令人有点匪夷所思,而且小程序到底是属于公众号支付范畴还是app支付范畴也成疑问。

小程序支付步骤:

1,预支付

2,根据预支付数据+签名——>发起支付

3,支付回调

下面对这3个步骤进行简单描述:

1,预支付。该接口通过前端提交需支付的信息(订单号、价格等)给开发者服务器,开发者服务器在提交到微信,而后返回真正前端需要进行支付的一些信息;

开发者服务器的预支付接口:

{

   sign:A2****************A6,

   timestamp:14****************68,

    package:Sign=WXPay,

   partnerId:14****************02,

   appid:wx****************ab,

   nonceStr:9f****************37,

   prepayId:wx****************54

}

2,发起支付(需要注意的是发起支付是不需要上传appid,

 但是签名paySign需要appid ,而且放在第一个)

wx.requestPayment({ 

        nonceStr: res.data.nonceStr, 

        package: prepay_id=+res.data.prepayId, 

        signType: \'MD5\', 

        timeStamp: res.data.timestamp,     

        paySign: sign,//

五个字段参与签名(区分大小写):appId,nonceStr,package,signType,timeStamp(需要注意的是,这5个参数签名排序的顺序按照ASCII字典序排序)

        success: function(res){ 

          console.log(支付成功); 

        }, 

        fail: function() { 

        }, 

        complete: function() { 

        } 

      }) 

生成签名sign

假设传送的参数如下:

appid: wxd930ea5d5a258f4f(需要注意的是appid 在wx.requestPayment({})发起支付是不上传,但是签名时需要)

mch_id: 10000100

device_info: 1000

body: test

nonce_str: ibuaiVcKdpRxkhJA

第一步:对参数按照key=value的格式,并按照参数名ASCII字典序排序如下:

stringA=appid=wxd930ea5d5a258f4f&body=test&device_info=1000&mch_id=10000100&nonce_str=ibuaiVcKdpRxkhJA;

第二步:拼接API密钥:

stringSignTemp=stringA&key=192006250b4c09247ec02edce69f6a2d

sign=MD5(stringSignTemp).toUpperCase()=9A0A8659F005D6984697E2CA0A9CF3B7

此时的sign 用于wx.requestPayment 上传参数paySign。

最终得到最终发送的数据:


wxd930ea5d5a258f4f 

10000100 

1000 

test 

ibuaiVcKdpRxkhJA 

9A0A8659F005D6984697E2CA0A9CF3B7 


推荐阅读      微信小程序      微信小程序开发教程

你可能感兴趣的:(微信小程序开发支付步骤简述)