接著教程2寫的
1、用戶限額
用戶使用免密支付,每天在每個(gè)商戶是有次數(shù)限制的,新的商戶一般都是5次,
用戶一天最多只能在你這免密支付5次,超出后再去申請扣費(fèi),就會(huì)失敗,微信返回提示超出限額,這個(gè)需要注意,不過可以私下找微信提交申請改次數(shù),填一些資料就行了。我們改到10次了。
怎么查詢用戶當(dāng)日次數(shù)就不用說了吧,每次發(fā)起扣款把訂單和用戶信息存到數(shù)據(jù)庫,要委托代扣之前先查詢用戶當(dāng)日的訂單次數(shù)(我們是展示二維碼時(shí)候去查詢,如果超出次數(shù),就不給二維碼,顯示超出當(dāng)日最大付款次數(shù)限制提示)
2、查詢用戶狀態(tài), (無支付能力、簽約無效、用戶欠費(fèi)),這三個(gè)需要注意。
當(dāng)用戶每次要使用免密支付之前,商戶都要查詢用戶狀態(tài),針對不同狀態(tài)進(jìn)行處理。
第一篇寫的java請求中,有獲取用戶狀態(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)行顯示不同的頁面,至于怎么顯示看你們自己,我主要說一下 用戶欠費(fèi)這個(gè)。
用戶欠費(fèi)
當(dāng)商戶發(fā)起扣款申請時(shí),用戶如果微信余額不足,那么微信方會(huì)給墊付一次(不同商戶不同,針對開通微信墊付功能商戶),這種扣款訂單用戶那顯示的微信支付消息中會(huì)有還款按鈕。
但是,如果用戶沒看到,就會(huì)忘記還款(因?yàn)槲⑿糯逗陀脩糁Ц稕]區(qū)別,只有微信支付消息中會(huì)顯示,很多用戶不看), 下次查詢用戶狀態(tài),微信接口會(huì)返回用戶欠費(fèi),申請扣款會(huì)失敗。
所以這個(gè)時(shí)候,需要用戶去點(diǎn)擊還款,微信也有開放的還款小程序,跳轉(zhuǎn)過去就行。

跳轉(zhuǎn)至還款小程序
微信還款小程序 appid wx5e73c65404eee268,只需要把用戶的openid傳過去,以及商戶號,小程序號即可。
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)到簽約小程序
}
});
不過小程序跳轉(zhuǎn),微信新規(guī)定,需要在app.json中配置一些需要跳轉(zhuǎn)的小程序appid,做多10個(gè)。
"navigateToMiniProgramAppIdList": [
"wxbd687630cd02ce1d", 簽約小程序
"wx5e73c65404eee268" 還款小程序
]