uniapp 电商账号绑定(支付宝账号/银行卡校验)
程序员文章站
2024-02-02 11:30:16
...
账号绑定
支付宝账号校验
// 支付宝账号分为手机号和邮箱两种,可以通过正则表达式进行校验
let reg = /^(?:1[3-9]\d{9}|[a-zA-Z\d._-]*\@[a-zA-Z\d.-]{1,10}\.[a-zA-Z\d]{1,20})$/;
reg.test(账号);
//如果reg.test(账号) 为true,则表示为支付宝账号
//如果reg.test(账号) 为false,则表示不是支付宝账号
银行卡号码校验
由于银行卡账号有位数和数字的校验,则可以通过阿里的银行卡号码api校验方式。
uni.request({
url: 'https://ccdcapi.alipay.com/validateAndCacheCardInfo.json?cardNo='+this.account+'&cardBinCheck=true', //仅为示例,并非真实接口地址。
success: (res) => {
console.log(res.data.validated,typeof res.data.validated);
this.kaFlag = res.data.validated;
if(!this.kaFlag){
uni.showToast({
title:"请输入正确的银行卡号",
duration:1500,
icon:"none"
})
}
}
});
银行卡号码校验成功后,才可以进行添加银行卡接口的调用。也就是接口调用成功后再执行另一个接口的调用。为了能够解决异步的问题,可以使用promise来处理。
promise的使用步骤
首先,promise是一个对象,然后创建一个promise对象之后,进行接口的调用,调用完成后,根据返回的结果进行不同函数的处理。
代码如下:
checkCard(){
return new Promise((resolve, reject)=>{
uni.request({
url: 'https://ccdcapi.alipay.com/validateAndCacheCardInfo.json?cardNo='+this.account+'&cardBinCheck=true', //仅为示例,并非真实接口地址。
success: (res) => {
console.log(res.data.validated,typeof res.data.validated);
this.kaFlag = res.data.validated;
if(!this.kaFlag){
uni.showToast({
title:"请输入正确的银行卡号",
duration:1500,
icon:"none"
})
reject()
}else{
resolve(true)
}
}
});
})
},
// 添加银行卡的接口
submit(){
// promise对象.then(成功执行的函数)
this.checkCard().then(()=>{
// 此处的this.$request.urlRequest是一个封装好的request.js文件
this.$request.urlRequest(
"/wallet/WithdrawChannel/"+this.userId, {
realName:this.realName,
bankName:this.bankName,
account:this.account,
bankAddress:this.bankAddress,
mobile:this.mobile,
type:2
},
'put',
(res) => {
if(res.code === 200){
if(this.item){
uni.showToast({
title:"修改成功",
duration:1000
})
}else{
uni.showToast({
title:"添加成功",
duration:1000
})
}
setTimeout(()=>{
uni.navigateBack();
},1000)
}else{
uni.showToast({
title:"添加失败",
duration:1000,
icon:"none"
})
}
}
)
});
}