小程序实现微信支付的实现方法介绍及问题解答
编辑时间:2019-11-13 10:51 浏览次数:
伴随小程序迅速发现,小程序的支付接口也已经很一般的利用了,下面直接讲小程序支付的实现功能(接口采取的是thinkphp代码):需求留意的是,这里需求要用到md5.js文件。Openid 是通过顾客表的字段获得到小程序的唯一标识openid,$notifi_url是异步回调的地址,这个回调地址能够自己定义,不需求在商户账号那里设立。$data就是返回到小程序的JSON数据.
假如设立恰当,没会弹出微信支付的窗口,提醒支付完结,并跳转到订单列表页面。提早条件是必须把小程序APPID,小程序的APPSECRET,商户号MCHID和商户支付密钥KEY设立恰当,缺一不可,假如商户号已经接入过微信支付接口了,就需求问客户提供商户支付密钥,否则能够自己重置商户支付密钥,留意公众号和小程序是能够采取同1个商户的,因为小程序的回调地址能够在代码里填写,不需求在商户账号那里授权地址才能采取。
问题回答部分:
1.调用支付JSAPI缺少参数:total_fee
t小程序的Console里出现这个提醒,许多人以为是金额有问题,其实是pkg犯错了,其中pkg='prepay_id=' +res_pay.data.pay_arr.prepay_id; 假如用 console.log(pkg),会出现prepay_id=undefined,即res_pay.data.pay_arr.prepay_id为空,那么哪些参数会引致这种情形呢?最经典的是openid获得不恰当,因为小程序支付时需求获取会员的openid。
还有一种也许是订单号的问题,假如订单在该商户已经支付过了,就不能再采取,这个问题出现的几率比较低。支付检验签名失败这个基础是由商户支付密钥key犯错引起的,不要以为接口的配置文件填写恰当的key就能够用了,还要知道小程序里也要把商户的key传递到接口里:
var paySign = md5.hexMD5('appId=' + appId + '&nonceStr=' + nonceStr + '&package=' + pkg + '&signType=MD5&timeStamp=' + timeStamp + "&key=" + app.configData.wxpay_secret).toUpperCase();其中的app.configData.wxpay_secret就是与接口里的商户支付密钥KEY是一样的,要填写恰当,否则出现签名失败的问题。
本文地址:http://app.qd-ljr.com/opertion/xcx2728.html