提交 6d7413b5 作者: 王进

增加支付返回接口

上级 aeac786e
...@@ -90,14 +90,21 @@ class WechatSDK { ...@@ -90,14 +90,21 @@ class WechatSDK {
return LoginCallBack return LoginCallBack
} }
} }
public async payOrderStatus(Params) {
let payResult = await this.payOrder(Params, false);
return payResult;
}
// SDK支付接口 // SDK支付接口
public payOrder(Params) { public async payOrder(Params, showSDKAlert = true) {
const _selt = this const _selt = this;
_selt.MidasPaymentParams.offerId = SDKConfig.offerid _selt.MidasPaymentParams.offerId = SDKConfig.offerid;
_selt.LoadingOn(); _selt.LoadingOn();
// 支付前先获取用户订单状态,如果没有未完成订单则继续支付 // 支付前先获取用户订单状态,如果没有未完成订单则继续支付
_selt.sdkRequest(Links.order, _selt.deepCopy({}, _selt.sdkParams, Params)).then(res => { let res = await _selt.sdkRequest(Links.order, _selt.deepCopy({}, _selt.sdkParams, Params)).catch(err => {
console.log("@@订单返回---->", res) _selt.LoadingOff();
console.log("@@SDK异常::payOrder", err);
});
console.log("@@订单返回---->", res);
if (res.code == 0) { if (res.code == 0) {
if (res.data.weixin_mini_program_app_id) { // 跳小程序支付 if (res.data.weixin_mini_program_app_id) { // 跳小程序支付
const postParams = _selt.deepCopy({}, _selt.sdkParams, Params, { const postParams = _selt.deepCopy({}, _selt.sdkParams, Params, {
...@@ -114,20 +121,23 @@ class WechatSDK { ...@@ -114,20 +121,23 @@ class WechatSDK {
success: () => { console.log("跳转成功") }, success: () => { console.log("跳转成功") },
fail: () => { console.log("跳转失败") } fail: () => { console.log("跳转失败") }
} }
_selt.navigateToMiniProgram(params) _selt.navigateToMiniProgram(params);
return 2; // 切支付状态
} else { } else {
// 根据返回的用户订单状态判断是新订单还是未完成订单 // 根据返回的用户订单状态判断是新订单还是未完成订单
if (res.data.order_type == 1) { // 新订单 if (res.data.order_type == 1) { // 新订单
_selt.MidasPaymentParams.buyQuantity = <number>(Params.money / 100) * <number>res.data.weixin_proportion // 充值金额 _selt.MidasPaymentParams.buyQuantity = <number>(Params.money / 100) * <number>res.data.weixin_proportion // 充值金额
console.log("@@SDK -> 发起支付参数:", _selt.MidasPaymentParams); console.log("@@SDK -> 发起支付参数:", _selt.MidasPaymentParams);
// 调微信米大师支付接口 // 调微信米大师支付接口
return new Promise((resolve, reject) => {
(wx as any).requestMidasPayment(_selt.deepCopy({}, _selt.MidasPaymentParams, { (wx as any).requestMidasPayment(_selt.deepCopy({}, _selt.MidasPaymentParams, {
success: function (data) { success: async function (data) {
console.log("@@SDK -> 支付成功:", data) console.log("@@SDK -> 支付成功:", data);
_selt.getCoins(_selt.deepCopy({}, _selt.sdkParams, { order_num: res.data.order_num })) let coinsResult = await _selt.getCoins(_selt.deepCopy({}, _selt.sdkParams, { order_num: res.data.order_num }));
if (coinsResult.code == 0) resolve(1);
else resolve(0);
}, },
fail: function (err) { fail: function (err) {
// console.log("SDK -> 支付失败:", err);
var msg = ''; var msg = '';
switch (err.errCode) { switch (err.errCode) {
case -1: case -1:
...@@ -164,15 +174,17 @@ class WechatSDK { ...@@ -164,15 +174,17 @@ class WechatSDK {
msg = '用户操作系统支付状态异常'; msg = '用户操作系统支付状态异常';
break; break;
} }
_selt.sdkAlert(msg); if (showSDKAlert) _selt.sdkAlert(msg);
resolve(err.errCode);
} }
})); }));
});
} else { // 已有未完成订单,弹窗提示 } else { // 已有未完成订单,弹窗提示
const params = { const params = {
title: SDKConfig.shareTitle, title: SDKConfig.shareTitle,
content: '订单发货中,请稍候下单..' content: '订单发货中,请稍候下单..'
} }
_selt.showModal(params) _selt.showModal(params);
} }
} }
} else if (res.code == 3023) { } else if (res.code == 3023) {
...@@ -180,22 +192,21 @@ class WechatSDK { ...@@ -180,22 +192,21 @@ class WechatSDK {
title: '支付提示', title: '支付提示',
content: res.msg content: res.msg
} }
_selt.showModal(params) _selt.showModal(params);
return 3023;
} else { // 输出订单失败消息 } else { // 输出订单失败消息
const errmsg = res.msg || '支付失败..' const errmsg = res.msg || '支付失败..'
_selt.sdkAlert(errmsg) if(showSDKAlert) _selt.sdkAlert(errmsg);
return 0;
} }
_selt.LoadingOff(); _selt.LoadingOff();
}, err => {
_selt.LoadingOff();
console.log(err)
})
} }
private getCoins(orderParams) { // 通知服务端扣费 private async getCoins(orderParams) { // 通知服务端扣费
console.log("@@SDK通知扣费", orderParams) console.log("@@SDK通知扣费", orderParams)
this.sdkRequest(Links.pay, orderParams).then(res => { let coinsResult = await this.sdkRequest(Links.pay, orderParams).catch(err => {
console.log("@@SDK -> 扣费成功:") console.log("@@SDK异常::getCoins", err);
}) });
return coinsResult;
} }
public async getUserPaymentType(roleInfo) { // 是否支持切支付 public async getUserPaymentType(roleInfo) { // 是否支持切支付
const _selt = this; const _selt = this;
......
/** /**
...@@ -90,14 +90,21 @@ class WechatSDK { ...@@ -90,14 +90,21 @@ class WechatSDK {
return LoginCallBack return LoginCallBack
} }
} }
public async payOrderStatus(Params) {
let payResult = await this.payOrder(Params, false);
return payResult;
}
// SDK支付接口 // SDK支付接口
public payOrder(Params) { public async payOrder(Params, showSDKAlert = true) {
const _selt = this const _selt = this;
_selt.MidasPaymentParams.offerId = SDKConfig.offerid _selt.MidasPaymentParams.offerId = SDKConfig.offerid;
_selt.LoadingOn(); _selt.LoadingOn();
// 支付前先获取用户订单状态,如果没有未完成订单则继续支付 // 支付前先获取用户订单状态,如果没有未完成订单则继续支付
_selt.sdkRequest(Links.order, _selt.deepCopy({}, _selt.sdkParams, Params)).then(res => { let res = await _selt.sdkRequest(Links.order, _selt.deepCopy({}, _selt.sdkParams, Params)).catch(err => {
console.log("@@订单返回---->", res) _selt.LoadingOff();
console.log("@@SDK异常::payOrder", err);
});
console.log("@@订单返回---->", res);
if (res.code == 0) { if (res.code == 0) {
if (res.data.weixin_mini_program_app_id) { // 跳小程序支付 if (res.data.weixin_mini_program_app_id) { // 跳小程序支付
const postParams = _selt.deepCopy({}, _selt.sdkParams, Params, { const postParams = _selt.deepCopy({}, _selt.sdkParams, Params, {
...@@ -114,20 +121,23 @@ class WechatSDK { ...@@ -114,20 +121,23 @@ class WechatSDK {
success: () => { console.log("跳转成功") }, success: () => { console.log("跳转成功") },
fail: () => { console.log("跳转失败") } fail: () => { console.log("跳转失败") }
} }
_selt.navigateToMiniProgram(params) _selt.navigateToMiniProgram(params);
return 2; // 切支付状态
} else { } else {
// 根据返回的用户订单状态判断是新订单还是未完成订单 // 根据返回的用户订单状态判断是新订单还是未完成订单
if (res.data.order_type == 1) { // 新订单 if (res.data.order_type == 1) { // 新订单
_selt.MidasPaymentParams.buyQuantity = <number>(Params.money / 100) * <number>res.data.weixin_proportion // 充值金额 _selt.MidasPaymentParams.buyQuantity = <number>(Params.money / 100) * <number>res.data.weixin_proportion // 充值金额
console.log("@@SDK -> 发起支付参数:", _selt.MidasPaymentParams); console.log("@@SDK -> 发起支付参数:", _selt.MidasPaymentParams);
// 调微信米大师支付接口 // 调微信米大师支付接口
return new Promise((resolve, reject) => {
(wx as any).requestMidasPayment(_selt.deepCopy({}, _selt.MidasPaymentParams, { (wx as any).requestMidasPayment(_selt.deepCopy({}, _selt.MidasPaymentParams, {
success: function (data) { success: async function (data) {
console.log("@@SDK -> 支付成功:", data) console.log("@@SDK -> 支付成功:", data);
_selt.getCoins(_selt.deepCopy({}, _selt.sdkParams, { order_num: res.data.order_num })) let coinsResult = await _selt.getCoins(_selt.deepCopy({}, _selt.sdkParams, { order_num: res.data.order_num }));
if (coinsResult.code == 0) resolve(1);
else resolve(0);
}, },
fail: function (err) { fail: function (err) {
// console.log("SDK -> 支付失败:", err);
var msg = ''; var msg = '';
switch (err.errCode) { switch (err.errCode) {
case -1: case -1:
...@@ -164,15 +174,17 @@ class WechatSDK { ...@@ -164,15 +174,17 @@ class WechatSDK {
msg = '用户操作系统支付状态异常'; msg = '用户操作系统支付状态异常';
break; break;
} }
_selt.sdkAlert(msg); if (showSDKAlert) _selt.sdkAlert(msg);
resolve(err.errCode);
} }
})); }));
});
} else { // 已有未完成订单,弹窗提示 } else { // 已有未完成订单,弹窗提示
const params = { const params = {
title: SDKConfig.shareTitle, title: SDKConfig.shareTitle,
content: '订单发货中,请稍候下单..' content: '订单发货中,请稍候下单..'
} }
_selt.showModal(params) _selt.showModal(params);
} }
} }
} else if (res.code == 3023) { } else if (res.code == 3023) {
...@@ -180,22 +192,21 @@ class WechatSDK { ...@@ -180,22 +192,21 @@ class WechatSDK {
title: '支付提示', title: '支付提示',
content: res.msg content: res.msg
} }
_selt.showModal(params) _selt.showModal(params);
return 3023;
} else { // 输出订单失败消息 } else { // 输出订单失败消息
const errmsg = res.msg || '支付失败..' const errmsg = res.msg || '支付失败..'
_selt.sdkAlert(errmsg) if(showSDKAlert) _selt.sdkAlert(errmsg);
return 0;
} }
_selt.LoadingOff(); _selt.LoadingOff();
}, err => {
_selt.LoadingOff();
console.log(err)
})
} }
private getCoins(orderParams) { // 通知服务端扣费 private async getCoins(orderParams) { // 通知服务端扣费
console.log("@@SDK通知扣费", orderParams) console.log("@@SDK通知扣费", orderParams)
this.sdkRequest(Links.pay, orderParams).then(res => { let coinsResult = await this.sdkRequest(Links.pay, orderParams).catch(err => {
console.log("@@SDK -> 扣费成功:") console.log("@@SDK异常::getCoins", err);
}) });
return coinsResult;
} }
public async getUserPaymentType(roleInfo) { // 是否支持切支付 public async getUserPaymentType(roleInfo) { // 是否支持切支付
const _selt = this; const _selt = this;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论