小程序?qū)崿F(xiàn)微信支付的實(shí)現(xiàn)方法介紹及問題解答
隨著小程序的迅速發(fā)現(xiàn),小程序的支付接口得到了廣泛的應(yīng)用。下面是小程序 payment的實(shí)現(xiàn)函數(shù)(界面使用thinkphp代碼):
下圖顯示了小程序js代碼。
需要注意的是,這里需要md5.js文件。
那么界面代碼如下圖所示:
Openid是通過成員表的字段獲得的小程序的唯一標(biāo)識(shí)openid,$notifi_url是異步回調(diào)的地址。這個(gè)回?fù)艿刂房梢宰约憾x,不需要在商家賬號(hào)里設(shè)置。$data是返回給小程序的JSON數(shù)據(jù)。
接下來,小程序代碼如下:
如果設(shè)置正確,不會(huì)彈出微信支付窗口,提示支付完成,跳轉(zhuǎn)到訂單列表頁面。
進(jìn)階條件是小程序APPID、小程序的APPSECRET、商戶號(hào)MCHID、商戶支付密鑰必須設(shè)置正確,兩者缺一不可。如果商戶號(hào)已經(jīng)接入微信支付接口,則需要要求客戶提供商戶支付密鑰,否則可以自行重置商戶支付密鑰。注意,微信官方賬號(hào)和小程序可以用同一個(gè)商家,因?yàn)?
問答部分:
1.調(diào)用支付JSAPI的參數(shù)缺失:total_fee。
該提示符出現(xiàn)在t 小程序的控制臺(tái)中。很多人覺得金額有問題,其實(shí)pkg搞錯(cuò)了,這里pkg = & # 39prepay _ id = & # 39+RES _ pay . data . pay _ arr . prepay _ id;如果使用console.log(pkg)會(huì)出現(xiàn)prepay_id=undefined,即res_pay.data.pay_arr.prepay_id為空,那么是哪些參數(shù)會(huì)造成這種情況呢?通常不會(huì)正確獲取openid,因?yàn)樾〕绦蛟诟顿M(fèi)時(shí)需要獲取用戶的openid。如下圖所示:
另一種可能是訂單號(hào)的問題。如果訂單已經(jīng)在商家支付,則不能再次使用。這個(gè)問題的概率比較低。
支付簽名驗(yàn)證失敗,基本都是因?yàn)樯碳业闹Ц舵I錯(cuò)誤造成的。不要只為接口的配置文件填寫正確的密鑰,還要知道商家的密鑰要在小程序中傳遞給接口,如下圖所示:
var pay sign = MD5 . hex MD5(& # 39;appId = & # 39+appId+& # 39;& ampnonceStr = & # 39+non centr+& # 39;& amppackage = & # 39+pkg+& # 39;& ampMD5 & amp時(shí)間戳= & # 39;+時(shí)間戳+& quot;& ampkey = & quot+ app.configData.wxpay_secret)。toupper case();
app.configData.wxpay_secret與界面中的商戶支付密鑰相同,所以要正確填寫,否則簽名會(huì)失敗。
云崛起專注于商城開發(fā)小程序在會(huì)員、訂單、支付方面經(jīng)驗(yàn)豐富。歡迎客戶咨詢010-57278867。
寒武紀(jì). render(“尾巴”)
本文由“云崛起”原創(chuàng)發(fā)布,未經(jīng)許可,禁止轉(zhuǎn)載!本文原創(chuàng)鏈接:http://www.xiaoweicao.cn/weixinfenxiao/2470.html