欢迎您光临深圳塔灯网络科技有限公司!
电话图标 余先生:13699882642

网站百科

为您解码网站建设的点点滴滴

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

发表日期:2018-07 文章编辑:小灯 浏览次数:654

微信小程序开发渐渐发展到支付阶段,对于许多一直以来从事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 


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


本页内容由塔灯网络科技有限公司通过网络收集编辑所得,所有资料仅供用户学习参考,本站不拥有所有权,如您认为本网页中由涉嫌抄袭的内容,请及时与我们联系,并提供相关证据,工作人员会在5工作日内联系您,一经查实,本站立刻删除侵权内容。本文链接:https://dengtar.com/11963.html
相关小程序
    SQL执行错误,请检查