适配paypal支付

master
gongfuxiang 2022-07-16 12:03:17 +08:00
parent 47e45fb653
commit 9b1c84070c
5 changed files with 129 additions and 56 deletions

View File

@ -47,7 +47,7 @@
"/pages/user/user"
],
//
request_url: 'https://d1.shopxo.vip/',
request_url: 'https://dev.shopxo.vip/',
// publicpublichttps://d1.shopxo.vip/public/
static_url: 'https://d1.shopxo.vip/',
// default

View File

@ -594,7 +594,11 @@
uni.hideLoading();
if (res.data.code == 0) {
if (res.data.data.order_status == 1) {
uni.setStorageSync(app.globalData.data.cache_page_pay_key, res.data.data.order_ids.join(','));
var pay_data = {
order_ids: res.data.data.order_ids.join(','),
payment_id: data['payment_id']
};
uni.setStorageSync(app.globalData.data.cache_page_pay_key, pay_data);
}
uni.redirectTo({
url: '/pages/user-order/user-order'

View File

@ -21,7 +21,7 @@
<view class="single-text margin-top-xs">
<text class="cr-gray margin-right-xl">{{fv.name}}</text>
<text class="cr-base">{{item[fv.field]}}</text>
<text v-if="(fv.unit || null) != null" class="cr-gray">{{fv.unit}}</text>
<text v-if="(fv.unit || null) != null" class="cr-gray">{{fv.unit}}</text>
<text v-if="(item[fv.unit_field] || null) != null" class="cr-gray">{{item[fv.unit_field]}}</text>
</view>
</block>
@ -329,6 +329,34 @@
return false;
}
// #endif
//
var payment = null;
for(var i in this.payment_list) {
if(this.payment_list[i]['id'] == this.payment_id) {
payment = this.payment_list[i];
}
}
if(payment == null) {
app.globalData.showToast('支付方式有误');
return false;
}
//
var post_data = {
id: order_id,
payment_id: this.payment_id
};
// h5
// #ifdef H5
post_data['redirect_url'] = encodeURIComponent(base64.encode(app.globalData.get_page_url(false)+(this.nav_status_index > 0 ? '?status='+this.nav_status_index : '')));
// paypal使respond_url
if(payment.payment == 'PayPal') {
post_data['respond_url'] = post_data['redirect_url'];
delete post_data['redirect_url'];
}
// #endif
//
uni.showLoading({
@ -337,13 +365,7 @@
uni.request({
url: app.globalData.get_request_url("pay", "buy", "membershiplevelvip"),
method: "POST",
data: {
// #ifdef H5
redirect_url: encodeURIComponent(base64.encode(app.globalData.get_page_url(false)+(this.nav_status_index > 0 ? '?status='+this.nav_status_index : ''))),
// #endif
id: order_id,
payment_id: this.payment_id
},
data: post_data,
dataType: "json",
success: res => {
uni.hideLoading();
@ -351,9 +373,9 @@
var data = res.data.data;
// #ifdef MP-WEIXIN || MP-ALIPAY || MP-BAIDU || MP-TOUTIAO
this.common_pay_handle(this, data, index);
// #endif
// #ifdef MP-KUAISHOU
this.kuaishou_pay_handle(this, data, index);
// #endif
// #ifdef MP-KUAISHOU
this.kuaishou_pay_handle(this, data, index);
// #endif
// #ifdef MP-QQ
this.qq_pay_handle(this, data, index);
@ -370,26 +392,26 @@
app.globalData.showToast("服务器请求出错");
}
});
},
//
kuaishou_pay_handle(self, data, index) {
uni.pay({
orderInfo: data.data,
serviceId: '1',
success: res => {
//
self.order_item_pay_success_handle(index);
//
uni.navigateTo({
url: "/pages/paytips/paytips?code=9000"
});
},
fail: res => {
app.globalData.showToast('支付失败');
}
});
},
//
kuaishou_pay_handle(self, data, index) {
uni.pay({
orderInfo: data.data,
serviceId: '1',
success: res => {
//
self.order_item_pay_success_handle(index);
//
uni.navigateTo({
url: "/pages/paytips/paytips?code=9000"
});
},
fail: res => {
app.globalData.showToast('支付失败');
}
});
},
// QQ

View File

@ -325,6 +325,34 @@
}
// #endif
//
var payment = null;
for(var i in this.payment_list) {
if(this.payment_list[i]['id'] == this.payment_id) {
payment = this.payment_list[i];
}
}
if(payment == null) {
app.globalData.showToast('支付方式有误');
return false;
}
//
var post_data = {
recharge_id: recharge_id,
payment_id: this.payment_id
};
// h5
// #ifdef H5
post_data['redirect_url'] = encodeURIComponent(base64.encode(app.globalData.get_page_url(false)+(this.nav_status_index > 0 ? '?status='+this.nav_status_index : '')));
// paypal使respond_url
if(payment.payment == 'PayPal') {
post_data['respond_url'] = post_data['redirect_url'];
delete post_data['redirect_url'];
}
// #endif
//
uni.showLoading({
title: "请求中..."
@ -332,13 +360,7 @@
uni.request({
url: app.globalData.get_request_url("pay", "recharge", "wallet"),
method: "POST",
data: {
// #ifdef H5
redirect_url: encodeURIComponent(base64.encode(app.globalData.get_page_url(false)+(this.nav_status_index > 0 ? '?status='+this.nav_status_index : ''))),
// #endif
recharge_id: recharge_id,
payment_id: this.payment_id
},
data: post_data,
dataType: "json",
success: res => {
uni.hideLoading();

View File

@ -290,15 +290,6 @@
if (res.data.data.data.length > 0) {
if (this.data_page <= 1) {
var temp_data_list = res.data.data.data;
//
if (this.load_status == 0) {
var ck = app.globalData.data.cache_page_pay_key;
var cache_ids = uni.getStorageSync(ck) || null;
if (cache_ids != null) {
uni.removeStorageSync(ck);
this.pay_handle(cache_ids);
}
}
} else {
var temp_data_list = this.data_list || [];
var temp_data = res.data.data.data;
@ -307,6 +298,7 @@
}
}
var temp_load_status = this.load_status;
this.setData({
data_list: temp_data_list,
data_total: res.data.data.total,
@ -317,6 +309,17 @@
payment_list: res.data.data.payment_list || []
});
//
if (temp_load_status == 0) {
var ck = app.globalData.data.cache_page_pay_key;
var pay_data = uni.getStorageSync(ck) || null;
if (pay_data != null) {
uni.removeStorageSync(ck);
this.setData({payment_id: parseInt(pay_data.payment_id || 0)});
this.pay_handle(pay_data.order_ids);
}
}
//
this.setData({
data_bottom_line_status: (this.data_page > 1 && this.data_page > this.data_page_total)
@ -393,6 +396,34 @@
}
// #endif
//
var payment = null;
for(var i in this.payment_list) {
if(this.payment_list[i]['id'] == this.payment_id) {
payment = this.payment_list[i];
}
}
if(payment == null) {
app.globalData.showToast('支付方式有误');
return false;
}
//
var post_data = {
ids: order_ids,
payment_id: this.payment_id
};
// h5
// #ifdef H5
post_data['redirect_url'] = encodeURIComponent(base64.encode(app.globalData.get_page_url(false)+(this.nav_status_index > 0 ? '?status='+this.nav_status_index : '')));
// paypal使respond_url
if(payment.payment == 'PayPal') {
post_data['respond_url'] = post_data['redirect_url'];
delete post_data['redirect_url'];
}
// #endif
//
uni.showLoading({
title: "请求中..."
@ -400,13 +431,7 @@
uni.request({
url: app.globalData.get_request_url("pay", "order"),
method: "POST",
data: {
// #ifdef H5
redirect_url: encodeURIComponent(base64.encode(app.globalData.get_page_url(false)+(this.nav_status_index > 0 ? '?status='+this.nav_status_index : ''))),
// #endif
ids: order_ids,
payment_id: this.payment_id
},
data: post_data,
dataType: "json",
success: res => {
uni.hideLoading();