当前项目借助调用安卓和ios方法跳转第三方支付平台实现微信支付和支付宝支付
涉及到的安卓方法:
window.AndroidFunction.wxpay('传递的参数')
// 点击确认支付
handleSurePay(){
//判断是否在微信内支付,需要在微信外支付
if(this.$utils.isWeiXin()){
this.$toast.fail("请选择在微信外支付");
return;
}else if(this.payType=="1"){
// 微信支付 App
console.log(this.payType,"选择支付方式");
let payParams = {
goodsId:this.goodsId,
buyUserId:this.id,
terminal:this.terminal
}
wxCreateOrder(payParams).then(res=>{
if(res.code == 200){
this.isShowVip= false;
this.isShoosePayType = false;
console.log(res,"支付微信");
// let payData = JSON.stringify(res.data);
let [appId,partnerId,prepayId,nonceStr,timeStamp,packageValue,sign] = [res.data.appId,res.data.partnerId,res.data.prepayId,res.data.nonceStr,res.data.timeStamp,res.data.packageValue,res.data.sign];
// 调用安卓方法
if(this.$utils.isAndroid_ios() == "andriod"){
window.AndroidFunction.wxpay(appId,partnerId,prepayId,nonceStr,timeStamp,packageValue,sign);
this.wxpayBack(payResult);
}
}else{
this.$toast.fail("请求失败");
}
})
}else if(this.payType=="2"){
// 支付宝支付 app 跳转页面
// this.$router.push({path:"/memberCenter/aliPay"});
let alipayParams = {
buyUserId:this.id,
goodsId:this.goodsId,
terminal:this.terminal
}
alipayPay(alipayParams).then(res=>{
this.isShowVip= false;
this.isShoosePayType = false;
console.log(res,"支付宝支付");
if(res.code == 200){
let bizContent = res.data.bizContent;
// 调用安卓方法
let [
timeout_express,
product_code,
total_amount,
subject,
body,
out_trade_no,
timestamp
] = [
bizContent.timeout_express,
bizContent.product_code,
bizContent.total_amount,
bizContent.subject,
bizContent.body,
bizContent.out_trade_no,
bizContent.timeStamp
];
// alert(res.data.notifyUrl)
if(this.$utils.isAndroid_ios() == "andriod"){
window.AndroidFunction.alipay(timeout_express,product_code,total_amount,subject,body,out_trade_no,timestamp,res.data.notifyUrl);
this.alipayBack(payResult,payInfo);
}
}else{
this.$toast.fail("请求失败");
}
})
}
},
// 处理安卓微信支付后返回的结果
wxpayBack(payResult){
if(payResult=="0"){
this.queryMinePageFun();//支付成功后更新页面信息
this.$toast.success("支付成功");
// this.$router.replace({path:"/memberCenter/paySuccess",query:{payResult}});
}else if(payResult=="-2"){
this.$toast.fail("支付取消");
// this.$router.replace({path:"/memberCenter/openMember"});
}else if(payResult=="-1"){
this.$toast.fail("支付失败");
// this.$router.replace({path:"/memberCenter/payError"});
}
},
// 处理安卓支付宝支付后返回的结果
alipayBack(payResult,payInfo){
// let infos = JSON.parse(payInfo);
if(payResult=="9000"){
this.queryMinePageFun();//支付成功后更新页面信息
this.$toast.success("支付成功");
}else if(payResult=="8000"){
this.$toast.fail("正在处理中");
}else if(payResult=="4000"){
this.$toast.fail("支付失败");
}else if(payResult=="6001"){
this.$toast.fail("订单取消");
}else if(payResult=="6002"){
this.$toast.fail("网络连接出错");
}else if(payResult=="5000"){
this.$toast.fail("重复请求");
}else if(payResult=="6004"){
this.$toast.fail("支付完成");
}else{
this.$toast.fail("支付错误");
}
},
如果有疑问,可以评论、留言。
发文不易,点赞、评论、收藏、关注支持一下呗!