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,) => {
var data = {
phoneNumber:phoneNumber,
orderNumber:orderNumber,
export const userindent = (phoneNumber,orderNumber,page,rows) => {
var data = {};
if(phoneNumber) {
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,) => {
@ -468,16 +475,18 @@ export const goodsmessage = (productCode) => {
//微信支付
export const generateOrderWX = (list,isH5Pay) => {
if(!isH5Pay)
export const generateOrderWX = (list,payType) => {
//Dictionary : 1: scan qrcode, 2:redirect 3: raise local app
if(payType==1)
return fetch('generateOrderWX', list, 'POST' )
else
return fetch('generateOrderWXH5', list, 'POST' )
}
//再次支付
export const repayOrde = (ordernumber,isH5Pay) => {
if(!isH5Pay)
export const repayOrde = (ordernumber,payType) => {
//Dictionary : 1: scan qrcode, 2:redirect 3: raise local app
if(payType==1)
return fetch('repayOrderWX?orderNo='+ordernumber,'', 'POST' )
else
return fetch('repayOrderWXH5?orderNo='+ordernumber,'', 'POST' )

View File

@ -1,28 +1,4 @@
/*
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 {
let util = {
isMobile(){
var sUserAgent = navigator.userAgent.toLowerCase();
var bIsIpad = sUserAgent.match(/ipad/i) == "ipad";
@ -38,27 +14,25 @@ export default {
} else {
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;
}
}
}
*/
/*
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 }
*/
export default util;

View File

@ -178,9 +178,12 @@ import {
repayOrde
} from "../../ajax/getData";
import util from "@/ajax/util";
export default {
data() {
return {
util,
goldmedal: [],
userproductId: "",
logisticsDate: "",
@ -332,8 +335,8 @@ export default {
}
},
async repayOrde(ordernumber) {
let mobileResult = this.isMobile();
let res = await repayOrde(ordernumber, mobileResult);
let payType = this.util.pickPaytype();
let res = await repayOrde(ordernumber, payType);
if (res) {
return res;
}
@ -353,22 +356,6 @@ export default {
// 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() {
this.checkIsLogin();

View File

@ -195,6 +195,7 @@
<script>
import Myheader from "~/components/header.vue";
import { userin, memberAddress, generateOrderWX, getdraw } from "../../ajax/getData";
import util from "@/ajax/util";
import tabs from "@/components/tabs.vue";
import myAddress from "~/components/address.vue";
import { mapMutations } from "vuex";
@ -204,6 +205,7 @@ export default {
meta: { title: "订单结算" },
data() {
return {
util,
crumbs:[
{
path:'/productdetails/productlist/',
@ -588,8 +590,8 @@ export default {
// // },
// // },
// ];
let isMobile = this.isMobile();
let res = await generateOrderWX(postData,isMobile);
let payType = this.util.pickPaytype();
let res = await generateOrderWX(postData,payType);
if (res.success) {
let userPayData = {
orderId: res.data.orderNumber,
@ -617,23 +619,7 @@ export default {
},
async canceldanhao(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() {
this.goldmedal = JSON.parse(this.$route.query.list);

View File

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

View File

@ -93,6 +93,9 @@
<p>请返回商品结算页面重新支付</p>
</div>
</el-dialog>
<div style="display:none">
<form :action="this.h5PayUrl" method="post" ref="h5SubmitForm"></form>
</div>
</div>
</template>
@ -103,39 +106,40 @@ import vueQr from 'vue-qr'
import { generateOrderAlipay, updateOrderWX, monitorOrderNotify,repayOrde } from "../../ajax/getData";
//import { isMobile } from "@/ajax/util";
import util from "@/ajax/util";
export default {
data() {
return {
activeIndex: 0,
paymentTimer:undefined,
isSucess: false,
data() {
return {
util,
activeIndex: 0,
paymentTimer:undefined,
isSucess: false,
h5PayUrl:"",
dialogSuccess: false,
paytype: "微信",
userpaystype: [
{
paytype: "微信",
payimage: require("../../assets/pay/wx.png"),
type:'wechat'
},
dialogSuccess: false,
paytype: "微信",
userpaystype: [
{
paytype: "微信",
payimage: require("../../assets/pay/wx.png"),
type:'wechat'
},
{
paytype: "支付宝",
payimage: require("../../assets/pay/zfb.png"),
type:'alipay'
},
],
dialogFail: false,
userPayData: {},
qrtext:'',
userData:'',
disableAlipay:true,
disableQrcode:false,
};
},
{
paytype: "支付宝",
payimage: require("../../assets/pay/zfb.png"),
type:'alipay'
},
],
dialogFail: false,
userPayData: {},
qrtext:'',
userData:'',
disableAlipay:true,
disableQrcode:false,
};
},
created(){
@ -144,65 +148,42 @@ export default {
let stype=this.$route.query.stype;
this.userPayData = JSON.parse(this.$route.query.userPayData);
this.defaultHandlePayment();
this.defaultHandlePayment();
},
methods: {
defaultHandlePayment() {
let isMobile = this.isMobile();
let isWx = this.isWX();
if(isWx && this.userPayData.wxPay && this.userPayData.wxPay.length>4) {
//Desktop, use native pay
this.disableQrcode=false;
this.qrtext=this.userPayData.wxPay;
} else if(isWx) {
let isMobile = this.util.isMobile();
let isWx = this.util.isWX();
let payType = this.util.pickPaytype();
if(!this.userPayData.wxPay || this.userPayData.wxPay.length<4)
throw new Error("订单信息错误,请删除商品后再次购买");
}
if(!isWx) {
if(this.userPayData.wxPay && !isMobile) {
//Desktop, use native pay
//Dictionary : 1: scan qrcode, 2:redirect 3: raise local app
switch(payType) {
case 1:
this.disableQrcode=false;
this.qrtext=this.userPayData.wxPay;
this.payOrderWX();
this.disableQrcode=false;
} else if (this.userPayData.wxPay && isMobile) {
//Mobile, use H5 pay
break;
case 2:
this.disableQrcode=true;
} else if(!this.userPayData.wxPay || this.userPayData.wxPay.length<=4) {
throw new Error("订单信息错误,请删除商品后再次购买");
}
break;
case 3:
//TODO raise WX jsapi pay
break;
}
},
goPayH5() {
let isMobile = this.isMobile();
let isMobile = this.util.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;
} else {
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() {
this.qrtext = '';
this.$router.push({