接著教程2寫(xiě)的
1貌踏、用戶限額
用戶使用免密支付,每天在每個(gè)商戶是有次數(shù)限制的丧蘸,新的商戶一般都是5次漂洋,
用戶一天最多只能在你這免密支付5次,超出后再去申請(qǐng)扣費(fèi)力喷,就會(huì)失敗刽漂,微信返回提示超出限額,這個(gè)需要注意弟孟,不過(guò)可以私下找微信提交申請(qǐng)改次數(shù)贝咙,填一些資料就行了。我們改到10次了拂募。
怎么查詢用戶當(dāng)日次數(shù)就不用說(shuō)了吧庭猩,每次發(fā)起扣款把訂單和用戶信息存到數(shù)據(jù)庫(kù),要委托代扣之前先查詢用戶當(dāng)日的訂單次數(shù)(我們是展示二維碼時(shí)候去查詢没讲,如果超出次數(shù)眯娱,就不給二維碼,顯示超出當(dāng)日最大付款次數(shù)限制提示)
2爬凑、查詢用戶狀態(tài)徙缴, (無(wú)支付能力、簽約無(wú)效嘁信、用戶欠費(fèi))于样,這三個(gè)需要注意。
當(dāng)用戶每次要使用免密支付之前潘靖,商戶都要查詢用戶狀態(tài)穿剖,針對(duì)不同狀態(tài)進(jìn)行處理。
第一篇寫(xiě)的java請(qǐng)求中卦溢,有獲取用戶狀態(tài)的那一個(gè)糊余,可以去看下。
private String wxQueryStateUrl="https://api.mch.weixin.qq.com/transit/pay/querystate"; // 查詢用戶狀態(tài)
接口會(huì)返回一些用戶狀態(tài)单寂,小程序需要根據(jù)不同狀態(tài)進(jìn)行顯示不同的頁(yè)面贬芥,至于怎么顯示看你們自己,我主要說(shuō)一下 用戶欠費(fèi)這個(gè)宣决。
用戶欠費(fèi)
當(dāng)商戶發(fā)起扣款申請(qǐng)時(shí)蘸劈,用戶如果微信余額不足,那么微信方會(huì)給墊付一次(不同商戶不同尊沸,針對(duì)開(kāi)通微信墊付功能商戶)威沫,這種扣款訂單用戶那顯示的微信支付消息中會(huì)有還款按鈕贤惯。
但是,如果用戶沒(méi)看到棒掠,就會(huì)忘記還款(因?yàn)槲⑿糯逗陀脩糁Ц稕](méi)區(qū)別孵构,只有微信支付消息中會(huì)顯示,很多用戶不看)烟很, 下次查詢用戶狀態(tài)浦译,微信接口會(huì)返回用戶欠費(fèi),申請(qǐng)扣款會(huì)失敗溯职。
所以這個(gè)時(shí)候,需要用戶去點(diǎn)擊還款帽哑,微信也有開(kāi)放的還款小程序谜酒,跳轉(zhuǎn)過(guò)去就行。
跳轉(zhuǎn)至還款小程序
微信還款小程序 appid wx5e73c65404eee268妻枕,只需要把用戶的openid傳過(guò)去僻族,以及商戶號(hào),小程序號(hào)即可屡谐。
html 隨意述么,放一個(gè)按鈕就行
<button hidden="{{navigatorHidden}}" bindtap='setNavigatorData' class="btn_wxzf" >跳轉(zhuǎn)到還款小程序</button>
js
var nonce_str = util.genNonceStr();
var data = {
appid: app.globalData.appid,
mch_id: app.globalData.mch_id,
nonce_str: nonce_str,
openid: app.globalData.openid,
sign_type:'MD5'
};
data.sign = util.genSign(data, app.globalData.key);
wx.navigateToMiniProgram({
appId: 'wx5e73c65404eee268',
extraData: data,
path: 'pages/invest_list/invest_list',
success(res) {
console.log(1);
},
fail(res) {
console.log(res);
// 未成功跳轉(zhuǎn)到簽約小程序
}
});
不過(guò)小程序跳轉(zhuǎn),微信新規(guī)定愕掏,需要在app.json中配置一些需要跳轉(zhuǎn)的小程序appid度秘,做多10個(gè)。
"navigateToMiniProgramAppIdList": [
"wxbd687630cd02ce1d", 簽約小程序
"wx5e73c65404eee268" 還款小程序
]