继续教程 2,1. 用户限制
用户每天在每个商户使用免密支付的次数是有限制的,新商户一般限制为5次。
用户每天只能进行5次免密支付,超过限制的话扣款会失败,微信会提示已超限,这个需要大家注意,不过可以私下向微信提交申请更改次数,填一些信息就可以了,我们已经改成10次了。
如何查询用户当天支付的次数就不用多说了,每次付款扣款时,订单和用户信息都会存入数据库,委托扣款前先查询用户当天的订单数量(我们在展示二维码的时候会检查,如果超过限制,就不会给二维码,会提示当天支付次数已经超过上限)。
2、检查用户状态(无支付能力、合同无效、用户欠款),这三个是需要注意的。
每次用户要使用免密码支付的时候,商户都要查询用户的状态,并根据不同的状态进行处理。
上一篇文章写的第一个Java请求里,有一个获取用户状态的,大家可以去看一下。
=""; //查询用户状态
接口会返回一些用户状态,小程序需要根据不同的状态展示不同的页面,至于怎么展示,就看你自己了,我主要说一下用户欠费的情况。
用户欠费
当商户发起扣款申请时,若用户微信余额不足,微信会进行预付款(不同商户不同,针对开通了微信预付款功能的商户)。对于该类扣款订单,在展示给用户的微信支付消息中会有还款按钮。
但如果用户没看到,就会忘记还款(因为微信支付和用户还款没有区别,只会在微信支付消息里显示,很多用户都没看),下次查询用户状态时,微信接口就会返回用户欠费,申请扣款会失败。
所以这时候用户就需要点击还款了,微信里面也有开放的还款小程序,直接跳转就行了。
QQ截图255.jpg
跳转至还款小程序
对于微信还款小程序,只需要传递用户信息、商户号、小程序号即可。
HTML 是可选的,只需放一个按钮
跳转到还款小程序
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); // 未成功跳转到签约小程序 } });
但是根据微信的新规定,需要在app.json中配置一些需要跳转的小程序,最多可以配置10个。
"navigateToMiniProgramAppIdList": [ "wxbd687630cd02ce1d", 签约小程序 "wx5e73c65404eee268" 还款小程序 ]