Payment method consolidated

This commit is contained in:
Vion 2022-01-27 16:55:00 +08:00
parent 7912abdabc
commit 300788a552
6 changed files with 104 additions and 167 deletions

View File

@ -277,12 +277,19 @@ export const searchchanpin = (stype,usertype,curPage,curRow) => {
//查询订单 //查询订单
export const userindent = (phoneNumber,orderNumber,) => { export const userindent = (phoneNumber,orderNumber,page,rows) => {
var data = { var data = {};
phoneNumber:phoneNumber, if(phoneNumber) {
orderNumber:orderNumber, data.phoneNumber = phoneNumber;
} }
return fetch('orderMaster/?type=query', data, 'POST' ) if(orderNumber) {
data.orderNumber = orderNumber;
}
let url='orderMaster/?type=query';
if(page && rows) {
url = url+"&page="+page+"&rows="+rows;
}
return fetch(url, data, 'POST' )
} }
//查询订单详情 //查询订单详情
export const userin = (orderNumber,) => { export const userin = (orderNumber,) => {
@ -468,16 +475,18 @@ export const goodsmessage = (productCode) => {
//微信支付 //微信支付
export const generateOrderWX = (list,isH5Pay) => { export const generateOrderWX = (list,payType) => {
if(!isH5Pay) //Dictionary : 1: scan qrcode, 2:redirect 3: raise local app
if(payType==1)
return fetch('generateOrderWX', list, 'POST' ) return fetch('generateOrderWX', list, 'POST' )
else else
return fetch('generateOrderWXH5', list, 'POST' ) return fetch('generateOrderWXH5', list, 'POST' )
} }
//再次支付 //再次支付
export const repayOrde = (ordernumber,isH5Pay) => { export const repayOrde = (ordernumber,payType) => {
if(!isH5Pay) //Dictionary : 1: scan qrcode, 2:redirect 3: raise local app
if(payType==1)
return fetch('repayOrderWX?orderNo='+ordernumber,'', 'POST' ) return fetch('repayOrderWX?orderNo='+ordernumber,'', 'POST' )
else else
return fetch('repayOrderWXH5?orderNo='+ordernumber,'', 'POST' ) return fetch('repayOrderWXH5?orderNo='+ordernumber,'', 'POST' )

View File

@ -1,28 +1,4 @@
/* let util = {
export const isMobile = () => {
var sUserAgent = navigator.userAgent.toLowerCase();
var bIsIpad = sUserAgent.match(/ipad/i) == "ipad";
var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";
var bIsMidp = sUserAgent.match(/midp/i) == "midp";
var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";
var bIsUc = sUserAgent.match(/ucweb/i) == "ucweb";
var bIsAndroid = sUserAgent.match(/android/i) == "android";
var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";
var bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile";
if (!(bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM)) {
return false;
} else {
return true;
}
}
*/
export default {
isMobile :false
}
/*
export default {
isMobile(){ isMobile(){
var sUserAgent = navigator.userAgent.toLowerCase(); var sUserAgent = navigator.userAgent.toLowerCase();
var bIsIpad = sUserAgent.match(/ipad/i) == "ipad"; var bIsIpad = sUserAgent.match(/ipad/i) == "ipad";
@ -38,27 +14,25 @@ export default {
} else { } else {
return true; return true;
} }
},
isWX(){
var ua = navigator.userAgent.toLowerCase();
return (/micromessenger/.test(ua)) ? true : false;
},
pickPaytype() {
let isMobile = this.isMobile();
let isWx = this.isWX();
//Dictionary : 1: scan qrcode, 2:redirect 3: raise local app
if(isWx) {
//return 3;
return 1;
}
if(!isMobile) {
//Desktop, use native pay
return 1;
} else {
return 2;
}
} }
} }
*/ export default util;
/*
function isMobile() {
var sUserAgent = navigator.userAgent.toLowerCase();
var bIsIpad = sUserAgent.match(/ipad/i) == "ipad";
var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";
var bIsMidp = sUserAgent.match(/midp/i) == "midp";
var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";
var bIsUc = sUserAgent.match(/ucweb/i) == "ucweb";
var bIsAndroid = sUserAgent.match(/android/i) == "android";
var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";
var bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile";
if (!(bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM)) {
return false;
} else {
return true;
}
}
export { isMobile }
*/

View File

@ -178,9 +178,12 @@ import {
repayOrde repayOrde
} from "../../ajax/getData"; } from "../../ajax/getData";
import util from "@/ajax/util";
export default { export default {
data() { data() {
return { return {
util,
goldmedal: [], goldmedal: [],
userproductId: "", userproductId: "",
logisticsDate: "", logisticsDate: "",
@ -332,8 +335,8 @@ export default {
} }
}, },
async repayOrde(ordernumber) { async repayOrde(ordernumber) {
let mobileResult = this.isMobile(); let payType = this.util.pickPaytype();
let res = await repayOrde(ordernumber, mobileResult); let res = await repayOrde(ordernumber, payType);
if (res) { if (res) {
return res; return res;
} }
@ -353,22 +356,6 @@ export default {
// console.log(this.list); // console.log(this.list);
}, },
isMobile () {
var sUserAgent = navigator.userAgent.toLowerCase();
var bIsIpad = sUserAgent.match(/ipad/i) == "ipad";
var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";
var bIsMidp = sUserAgent.match(/midp/i) == "midp";
var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";
var bIsUc = sUserAgent.match(/ucweb/i) == "ucweb";
var bIsAndroid = sUserAgent.match(/android/i) == "android";
var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";
var bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile";
if (!(bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM)) {
return false;
} else {
return true;
}
}
}, },
mounted() { mounted() {
this.checkIsLogin(); this.checkIsLogin();

View File

@ -195,6 +195,7 @@
<script> <script>
import Myheader from "~/components/header.vue"; import Myheader from "~/components/header.vue";
import { userin, memberAddress, generateOrderWX, getdraw } from "../../ajax/getData"; import { userin, memberAddress, generateOrderWX, getdraw } from "../../ajax/getData";
import util from "@/ajax/util";
import tabs from "@/components/tabs.vue"; import tabs from "@/components/tabs.vue";
import myAddress from "~/components/address.vue"; import myAddress from "~/components/address.vue";
import { mapMutations } from "vuex"; import { mapMutations } from "vuex";
@ -204,6 +205,7 @@ export default {
meta: { title: "订单结算" }, meta: { title: "订单结算" },
data() { data() {
return { return {
util,
crumbs:[ crumbs:[
{ {
path:'/productdetails/productlist/', path:'/productdetails/productlist/',
@ -588,8 +590,8 @@ export default {
// // }, // // },
// // }, // // },
// ]; // ];
let isMobile = this.isMobile(); let payType = this.util.pickPaytype();
let res = await generateOrderWX(postData,isMobile); let res = await generateOrderWX(postData,payType);
if (res.success) { if (res.success) {
let userPayData = { let userPayData = {
orderId: res.data.orderNumber, orderId: res.data.orderNumber,
@ -617,23 +619,7 @@ export default {
}, },
async canceldanhao(orderNumber) { async canceldanhao(orderNumber) {
let data = await userin(orderNumber); let data = await userin(orderNumber);
}, }
isMobile () {
var sUserAgent = navigator.userAgent.toLowerCase();
var bIsIpad = sUserAgent.match(/ipad/i) == "ipad";
var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";
var bIsMidp = sUserAgent.match(/midp/i) == "midp";
var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";
var bIsUc = sUserAgent.match(/ucweb/i) == "ucweb";
var bIsAndroid = sUserAgent.match(/android/i) == "android";
var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";
var bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile";
if (!(bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM)) {
return false;
} else {
return true;
}
}
}, },
mounted() { mounted() {
this.goldmedal = JSON.parse(this.$route.query.list); this.goldmedal = JSON.parse(this.$route.query.list);

View File

@ -295,7 +295,7 @@ export default {
}, },
methods: { methods: {
async indet(mobile, stype) { async indet(mobile, stype) {
let data = await userindent(mobile); let data = await userindent(mobile,undefined,1,100);
this.activeIndex = stype; this.activeIndex = stype;
this.goldmedal = data; this.goldmedal = data;
this.alllist=[]; this.alllist=[];

View File

@ -93,6 +93,9 @@
<p>请返回商品结算页面重新支付</p> <p>请返回商品结算页面重新支付</p>
</div> </div>
</el-dialog> </el-dialog>
<div style="display:none">
<form :action="this.h5PayUrl" method="post" ref="h5SubmitForm"></form>
</div>
</div> </div>
</template> </template>
@ -103,39 +106,40 @@ import vueQr from 'vue-qr'
import { generateOrderAlipay, updateOrderWX, monitorOrderNotify,repayOrde } from "../../ajax/getData"; import { generateOrderAlipay, updateOrderWX, monitorOrderNotify,repayOrde } from "../../ajax/getData";
//import { isMobile } from "@/ajax/util"; import util from "@/ajax/util";
export default { export default {
data() { data() {
return { return {
activeIndex: 0, util,
paymentTimer:undefined, activeIndex: 0,
isSucess: false, paymentTimer:undefined,
isSucess: false,
h5PayUrl:"",
dialogSuccess: false,
paytype: "微信",
userpaystype: [
{
paytype: "微信",
payimage: require("../../assets/pay/wx.png"),
type:'wechat'
},
dialogSuccess: false, {
paytype: "微信", paytype: "支付宝",
userpaystype: [ payimage: require("../../assets/pay/zfb.png"),
{ type:'alipay'
paytype: "微信", },
payimage: require("../../assets/pay/wx.png"),
type:'wechat'
},
{ ],
paytype: "支付宝", dialogFail: false,
payimage: require("../../assets/pay/zfb.png"), userPayData: {},
type:'alipay' qrtext:'',
}, userData:'',
disableAlipay:true,
], disableQrcode:false,
dialogFail: false, };
userPayData: {}, },
qrtext:'',
userData:'',
disableAlipay:true,
disableQrcode:false,
};
},
created(){ created(){
@ -148,61 +152,38 @@ export default {
}, },
methods: { methods: {
defaultHandlePayment() { defaultHandlePayment() {
let isMobile = this.isMobile(); let isMobile = this.util.isMobile();
let isWx = this.isWX(); let isWx = this.util.isWX();
if(isWx && this.userPayData.wxPay && this.userPayData.wxPay.length>4) { let payType = this.util.pickPaytype();
//Desktop, use native pay if(!this.userPayData.wxPay || this.userPayData.wxPay.length<4)
this.disableQrcode=false;
this.qrtext=this.userPayData.wxPay;
} else if(isWx) {
throw new Error("订单信息错误,请删除商品后再次购买"); throw new Error("订单信息错误,请删除商品后再次购买");
}
if(!isWx) { //Dictionary : 1: scan qrcode, 2:redirect 3: raise local app
if(this.userPayData.wxPay && !isMobile) { switch(payType) {
//Desktop, use native pay case 1:
this.disableQrcode=false;
this.qrtext=this.userPayData.wxPay; this.qrtext=this.userPayData.wxPay;
this.payOrderWX(); this.payOrderWX();
this.disableQrcode=false; break;
} else if (this.userPayData.wxPay && isMobile) { case 2:
//Mobile, use H5 pay
this.disableQrcode=true; this.disableQrcode=true;
} else if(!this.userPayData.wxPay || this.userPayData.wxPay.length<=4) { break;
throw new Error("订单信息错误,请删除商品后再次购买"); case 3:
} //TODO raise WX jsapi pay
break;
} }
}, },
goPayH5() { goPayH5() {
let isMobile = this.isMobile(); let isMobile = this.util.isMobile();
if(this.userPayData.wxPay && isMobile) { if(this.userPayData.wxPay && isMobile) {
window.location.href=this.userPayData.wxPay; this.$refs["h5SubmitForm"].action=this.userPayData.wxPay;
this.$refs["h5SubmitForm"].submit();
//window.location.href=this.userPayData.wxPay;;
this.disableQrcode=true; this.disableQrcode=true;
} else { } else {
throw new Error("订单信息错误,请删除商品后再次购买"); throw new Error("订单信息错误,请删除商品后再次购买");
} }
}, },
isMobile () {
var sUserAgent = navigator.userAgent.toLowerCase();
var bIsIpad = sUserAgent.match(/ipad/i) == "ipad";
var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";
var bIsMidp = sUserAgent.match(/midp/i) == "midp";
var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";
var bIsUc = sUserAgent.match(/ucweb/i) == "ucweb";
var bIsAndroid = sUserAgent.match(/android/i) == "android";
var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";
var bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile";
if (!(bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM)) {
return false;
} else {
return true;
}
},
/**/
isWX(){
var ua = navigator.userAgent.toLowerCase();
return (/micromessenger/.test(ua)) ? true : false;
},
closeDialogSuccess() { closeDialogSuccess() {
this.qrtext = ''; this.qrtext = '';
this.$router.push({ this.$router.push({