修改从订单列表执行立即付款时的执行逻辑
This commit is contained in:
parent
3c87af65de
commit
a732eab59f
@ -291,7 +291,8 @@ export default {
|
|||||||
goToPay(item) {
|
goToPay(item) {
|
||||||
// 创建转换后的商品数组
|
// 创建转换后的商品数组
|
||||||
const transformedItems = item.commodity_order_item_list.map(goods => ({
|
const transformedItems = item.commodity_order_item_list.map(goods => ({
|
||||||
checked: true,
|
isafterSale: true,
|
||||||
|
orderId: item.id,
|
||||||
commodity_goods_info: {
|
commodity_goods_info: {
|
||||||
commodity_brief: "",
|
commodity_brief: "",
|
||||||
commodity_id: goods.commodity_id,
|
commodity_id: goods.commodity_id,
|
||||||
|
|||||||
@ -292,7 +292,8 @@ export default {
|
|||||||
goToPay(item) {
|
goToPay(item) {
|
||||||
// 创建转换后的商品数组
|
// 创建转换后的商品数组
|
||||||
const transformedItems = item.commodity_order_item_list.map(goods => ({
|
const transformedItems = item.commodity_order_item_list.map(goods => ({
|
||||||
checked: true,
|
isafterSale: true,
|
||||||
|
orderId: item.id,
|
||||||
commodity_goods_info: {
|
commodity_goods_info: {
|
||||||
commodity_brief: "",
|
commodity_brief: "",
|
||||||
commodity_id: goods.commodity_id,
|
commodity_id: goods.commodity_id,
|
||||||
|
|||||||
@ -263,7 +263,8 @@ export default {
|
|||||||
gotoPayment() {
|
gotoPayment() {
|
||||||
// 创建转换后的商品数组
|
// 创建转换后的商品数组
|
||||||
const transformedItems = this.orderInfo.commodity_order_item_list.map(goods => ({
|
const transformedItems = this.orderInfo.commodity_order_item_list.map(goods => ({
|
||||||
checked: true,
|
isafterSale: true,
|
||||||
|
orderId: item.id,
|
||||||
commodity_goods_info: {
|
commodity_goods_info: {
|
||||||
commodity_brief: "",
|
commodity_brief: "",
|
||||||
commodity_id: goods.goods_id,
|
commodity_id: goods.goods_id,
|
||||||
|
|||||||
@ -562,109 +562,130 @@ export default {
|
|||||||
if (!isGroupBuyValid) break;
|
if (!isGroupBuyValid) break;
|
||||||
}
|
}
|
||||||
|
|
||||||
const params = {
|
// 检查是否存在isafterSale属性且值为true
|
||||||
user_id: uni.getStorageSync('userId'),
|
const hasAfterSaleItem = this.carList.some(item => item.isafterSale === true);
|
||||||
is_group_buy: isGroupBuyValid,
|
const orderIdFromAfterSale = hasAfterSaleItem ? this.carList.find(item => item.isafterSale === true)?.orderId : null;
|
||||||
goods_list: Object.keys(this.supplierGroups).map(supplierId => {
|
|
||||||
const group = this.supplierGroups[supplierId];
|
|
||||||
const firstItem = group[0];
|
|
||||||
|
|
||||||
// 团购活动id
|
// 根据平台设置不同的trans_type值
|
||||||
this.group_buy_activity_id = firstItem.commodity_goods_info.group_buy_activity_id;
|
// 小程序: 71, App: 51
|
||||||
|
const systemInfo = uni.getSystemInfoSync();
|
||||||
|
let trans_type = 51; // 默认App环境
|
||||||
|
|
||||||
// 根据供应商id获取自提点信息
|
// 运行时判断是否为小程序环境
|
||||||
const ztAddress = this.defZTAddress.find(adItem => adItem.id == supplierId) || {};
|
if (systemInfo.platform === 'devtools' || systemInfo.platform === 'unknown') {
|
||||||
|
trans_type = 71; // 开发工具或未知环境默认为小程序
|
||||||
return {
|
|
||||||
supplier_id: firstItem.supplier_id,
|
|
||||||
supplier_name: firstItem.supplier_name || '',
|
|
||||||
is_same_day: firstItem.commodity_goods_info.is_same_day,
|
|
||||||
receiving_name: ztAddress.name || '',
|
|
||||||
receiving_phone: ztAddress.phone || '',
|
|
||||||
receiving_address: ztAddress.address || '',
|
|
||||||
group_buy_activity_id: firstItem.commodity_goods_info.group_buy_activity_id,
|
|
||||||
goods_and_count: group.map(item => {
|
|
||||||
const activityInfo = item.commodity_goods_info.group_buy_activity_info;
|
|
||||||
const isGroupBuy = activityInfo &&
|
|
||||||
currentTime >= new Date(activityInfo.start_time).getTime() &&
|
|
||||||
currentTime <= new Date(activityInfo.end_time).getTime();
|
|
||||||
return {
|
|
||||||
goods_id: item.goods_id,
|
|
||||||
count: item.count,
|
|
||||||
price: isGroupBuy ? item.commodity_goods_info.group_buy_price : item.commodity_goods_info.sales_price,
|
|
||||||
freight: item.commodity_goods_info.freight,
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 条件编译:针对不同平台设置不同值
|
||||||
|
// #ifdef MP
|
||||||
|
trans_type = 71; // 所有小程序平台
|
||||||
|
// #endif
|
||||||
|
|
||||||
request(apiArr.createOrder, "POST", params).then(resVal => {
|
// #ifdef APP-PLUS
|
||||||
// 根据平台设置不同的trans_type值
|
trans_type = 51; // App平台
|
||||||
// 小程序: 71, App: 51
|
// #endif
|
||||||
const systemInfo = uni.getSystemInfoSync();
|
|
||||||
let trans_type = 51; // 默认App环境
|
|
||||||
|
|
||||||
// 运行时判断是否为小程序环境
|
|
||||||
if (systemInfo.platform === 'devtools' || systemInfo.platform === 'unknown') {
|
|
||||||
trans_type = 71; // 开发工具或未知环境默认为小程序
|
|
||||||
}
|
|
||||||
|
|
||||||
// 条件编译:针对不同平台设置不同值
|
|
||||||
// #ifdef MP
|
|
||||||
trans_type = 71; // 所有小程序平台
|
|
||||||
// #endif
|
|
||||||
|
|
||||||
// #ifdef APP-PLUS
|
|
||||||
trans_type = 51; // App平台
|
|
||||||
// #endif
|
|
||||||
|
|
||||||
|
// 如果存在isafterSale属性且为true,则跳过createOrder接口调用
|
||||||
|
if (hasAfterSaleItem && orderIdFromAfterSale) {
|
||||||
const param = {
|
const param = {
|
||||||
order_id: resVal.order_id,
|
order_id: orderIdFromAfterSale,
|
||||||
user_id: uni.getStorageSync('userId'),
|
user_id: uni.getStorageSync('userId'),
|
||||||
trans_type: trans_type
|
trans_type: trans_type
|
||||||
}
|
}
|
||||||
request(apiArr.mergePreorder, "POST", param).then(res => {
|
request(apiArr.mergePreorder, "POST", param).then(res => {
|
||||||
|
this.handleMergePreorderResponse(res, orderIdFromAfterSale);
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
// 原始逻辑:创建订单后再进行支付
|
||||||
|
const params = {
|
||||||
|
user_id: uni.getStorageSync('userId'),
|
||||||
|
is_group_buy: isGroupBuyValid,
|
||||||
|
goods_list: Object.keys(this.supplierGroups).map(supplierId => {
|
||||||
|
const group = this.supplierGroups[supplierId];
|
||||||
|
const firstItem = group[0];
|
||||||
|
|
||||||
if (res && res.timeStamp && res.nonceStr && res.package && res.signType && res.paySign) {
|
// 团购活动id
|
||||||
// 调用微信支付
|
this.group_buy_activity_id = firstItem.commodity_goods_info.group_buy_activity_id;
|
||||||
uni.requestPayment({
|
|
||||||
timeStamp: res.timeStamp,
|
// 根据供应商id获取自提点信息
|
||||||
nonceStr: res.nonceStr,
|
const ztAddress = this.defZTAddress.find(adItem => adItem.id == supplierId) || {};
|
||||||
package: res.package,
|
|
||||||
signType: res.signType,
|
return {
|
||||||
paySign: res.paySign,
|
supplier_id: firstItem.supplier_id,
|
||||||
success: (payRes) => {
|
supplier_name: firstItem.supplier_name || '',
|
||||||
const params = {
|
is_same_day: firstItem.commodity_goods_info.is_same_day,
|
||||||
order_id: resVal.order_id,
|
receiving_name: ztAddress.name || '',
|
||||||
from: 2,
|
receiving_phone: ztAddress.phone || '',
|
||||||
group_buy_activity_id: this.group_buy_activity_id,
|
receiving_address: ztAddress.address || '',
|
||||||
|
group_buy_activity_id: firstItem.commodity_goods_info.group_buy_activity_id,
|
||||||
|
goods_and_count: group.map(item => {
|
||||||
|
const activityInfo = item.commodity_goods_info.group_buy_activity_info;
|
||||||
|
const isGroupBuy = activityInfo &&
|
||||||
|
currentTime >= new Date(activityInfo.start_time).getTime() &&
|
||||||
|
currentTime <= new Date(activityInfo.end_time).getTime();
|
||||||
|
return {
|
||||||
|
goods_id: item.goods_id,
|
||||||
|
count: item.count,
|
||||||
|
price: isGroupBuy ? item.commodity_goods_info.group_buy_price : item.commodity_goods_info.sales_price,
|
||||||
|
freight: item.commodity_goods_info.freight,
|
||||||
}
|
}
|
||||||
request(apiArr.queryOrder, "POST", params).then(res => {
|
})
|
||||||
this.verifyCode = res.verification_code
|
}
|
||||||
this.boxshadow1 = true
|
})
|
||||||
})
|
}
|
||||||
},
|
|
||||||
fail: (payErr) => {
|
request(apiArr.createOrder, "POST", params).then(resVal => {
|
||||||
uni.showToast({
|
const param = {
|
||||||
title: payErr.errMsg == 'requestPayment:fail cancel' ? '用户取消支付' : '支付失败',
|
order_id: resVal.order_id,
|
||||||
icon: 'none'
|
user_id: uni.getStorageSync('userId'),
|
||||||
})
|
trans_type: trans_type
|
||||||
},
|
}
|
||||||
complete: () => {
|
request(apiArr.mergePreorder, "POST", param).then(res => {
|
||||||
// 支付完成后的回调,无论成功失败都会执行
|
this.handleMergePreorderResponse(res, resVal.order_id);
|
||||||
}
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// 处理mergePreorder接口的响应
|
||||||
|
handleMergePreorderResponse(res, orderId) {
|
||||||
|
if (res && res.timeStamp && res.nonceStr && res.package && res.signType && res.paySign) {
|
||||||
|
// 调用微信支付
|
||||||
|
uni.requestPayment({
|
||||||
|
timeStamp: res.timeStamp,
|
||||||
|
nonceStr: res.nonceStr,
|
||||||
|
package: res.package,
|
||||||
|
signType: res.signType,
|
||||||
|
paySign: res.paySign,
|
||||||
|
success: (payRes) => {
|
||||||
|
const params = {
|
||||||
|
order_id: orderId,
|
||||||
|
from: 2,
|
||||||
|
group_buy_activity_id: this.group_buy_activity_id,
|
||||||
|
}
|
||||||
|
request(apiArr.queryOrder, "POST", params).then(res => {
|
||||||
|
this.verifyCode = res.verification_code
|
||||||
|
this.boxshadow1 = true
|
||||||
})
|
})
|
||||||
} else {
|
},
|
||||||
console.error("获取支付参数失败,缺少必要参数")
|
fail: (payErr) => {
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: '获取支付信息失败',
|
title: payErr.errMsg == 'requestPayment:fail cancel' ? '用户取消支付' : '支付失败',
|
||||||
icon: 'none'
|
icon: 'none'
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
complete: () => {
|
||||||
|
// 支付完成后的回调,无论成功失败都会执行
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
} else {
|
||||||
|
console.error("获取支付参数失败,缺少必要参数")
|
||||||
|
uni.showToast({
|
||||||
|
title: '获取支付信息失败',
|
||||||
|
icon: 'none'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
// 复制收货地址
|
// 复制收货地址
|
||||||
copyAddress() {
|
copyAddress() {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user