欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

uniapp 电商账号绑定(支付宝账号/银行卡校验)

程序员文章站 2024-02-02 11:30:16
...

账号绑定

uniapp 电商账号绑定(支付宝账号/银行卡校验)

支付宝账号校验

//  支付宝账号分为手机号和邮箱两种,可以通过正则表达式进行校验
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校验方式。
uniapp 电商账号绑定(支付宝账号/银行卡校验)

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"
		        	})
		        }
		    }
		)
	});
}