155 lines
4.8 KiB
JavaScript
155 lines
4.8 KiB
JavaScript
import { appDypayFun } from './douyin-pay.js';
|
|
import { jumpToPaymentSuccess } from './payment-navigation.js';
|
|
import { feedback } from "@/api/payment.js";
|
|
|
|
/**
|
|
* 微信支付
|
|
* @param {Object} alipay 微信支付的参数
|
|
* @param {Object} orderId 支付的订单ID
|
|
* @param {Object} orderNum 支付的订单编号
|
|
*/
|
|
export function appWxpayFun(alipay, orderId, orderNum) {
|
|
const type = alipay.type;
|
|
const orderStr = alipay.orderStr;
|
|
console.log("微信支付---", alipay, type);
|
|
if (type === "app") {
|
|
// app
|
|
const orderInfo = {
|
|
appid: alipay.appId, // 微信开放平台 - 应用 - AppId,注意和微信小程序、公众号 AppId 可能不一致
|
|
noncestr: alipay.nonceStr, // 随机字符串
|
|
package: "Sign=WXPay", // 固定值
|
|
partnerid: alipay.partnerId, // 微信支付商户号
|
|
prepayid: alipay.prepayId, // 统一下单订单号
|
|
timestamp: alipay.timeStamp, // 时间戳(单位:秒)
|
|
sign: alipay.sign, // 签名,这里用的 MD5/RSA 签名
|
|
};
|
|
uni.requestPayment({
|
|
provider: "wxpay",
|
|
orderInfo: orderInfo,
|
|
success: function (res) {
|
|
console.log("success:" + res);
|
|
payFeedbackFun(orderId, orderNum, 1);
|
|
jumpWayOk();
|
|
},
|
|
fail: function (err) {
|
|
console.log("fail:", err);
|
|
jumpWayError();
|
|
},
|
|
});
|
|
} else if (type === "wechatMiniProgram") {
|
|
const orderInfo = {
|
|
// "appid": alipay.appId, // 微信开放平台 - 应用 - AppId,注意和微信小程序、公众号 AppId 可能不一致
|
|
|
|
nonceStr: alipay.nonceStr, // 微信支付商户号
|
|
package: alipay.packageValue, // 统一下单订单号
|
|
timeStamp: alipay.timeStamp, // 时间戳(单位:秒)
|
|
signType: "RSA",
|
|
paySign: alipay.sign, // 签名,这里用的 MD5/RSA 签名
|
|
};
|
|
|
|
console.log("微信小程序支付---", orderInfo);
|
|
uni.requestPayment({
|
|
...orderInfo,
|
|
success: function (res) {
|
|
console.log("success:" + res);
|
|
payFeedbackFun(orderId, orderNum, 1);
|
|
jumpWayOk();
|
|
},
|
|
fail: function (err) {
|
|
console.log("fail:", err);
|
|
jumpWayError();
|
|
},
|
|
});
|
|
} else if (type === "h5") {
|
|
// h5
|
|
uni.navigateTo({
|
|
url:
|
|
`/pages/other_package/payment_processing/payment_processing?link=${encodeURIComponent(
|
|
orderStr
|
|
)}&orderNum=` + orderNum, // 假设有一个专门的支付页面来处理支付链接
|
|
});
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 支付宝支付
|
|
* @param {Object} alipay 微信支付的参数
|
|
* @param {Object} orderId 支付的订单ID
|
|
* @param {Object} orderNum 支付的订单编号
|
|
*/
|
|
export function zfbPayFun(alipay, orderId, orderNum) {
|
|
console.log("alipay", alipay);
|
|
const type = alipay.type;
|
|
const orderStr = alipay.orderStr;
|
|
if (type === "h5") {
|
|
// h5
|
|
uni.navigateTo({
|
|
url:
|
|
`/pages/other_package/payment_processing/payment_processing?link=${encodeURIComponent(
|
|
orderStr
|
|
)}&orderNum=` + orderNum, // 假设有一个专门的支付页面来处理支付链接
|
|
});
|
|
} else if (type === "app") {
|
|
// app
|
|
uni.requestPayment({
|
|
provider: "alipay",
|
|
orderInfo: orderStr,
|
|
success: function (res) {
|
|
console.log("zfbPayFun res", res);
|
|
payFeedbackFun(orderId, orderNum, 1);
|
|
jumpWayOk();
|
|
},
|
|
fail: function (err) {
|
|
console.error("支付宝支付error", err);
|
|
jumpWayError();
|
|
},
|
|
});
|
|
}
|
|
// return new Promise((resolve, reject) => {
|
|
// resolve(res);
|
|
// // reject(err);
|
|
// });
|
|
}
|
|
|
|
/**
|
|
* Compatibility entry for callers passing ApiResult.data.douyin separately.
|
|
* Native SDK invocation and authoritative result query are handled together.
|
|
*/
|
|
export function douyinPayFun(douyin, orderId, orderNum) {
|
|
return appDypayFun({ douyin, orderId, orderNum });
|
|
}
|
|
|
|
export const dyPayFun = douyinPayFun;
|
|
export const appDyPayFun = douyinPayFun;
|
|
export const appDouyinPayFun = douyinPayFun;
|
|
|
|
// 跳转到支付成功页面
|
|
export function jumpWayOk() {
|
|
return jumpToPaymentSuccess();
|
|
}
|
|
// 跳转到支付失败页面
|
|
export function jumpWayError() {
|
|
uni.navigateTo({
|
|
url: "/pages/order_package/order_submit_error/order_submit_error",
|
|
});
|
|
}
|
|
/**
|
|
* 支付结果回调
|
|
* @param {Object} orderId 支付订单ID
|
|
* @param {Object} orderNum 支付订单编号
|
|
* @param {Object} status 反馈结果【0:失败,1:成功】
|
|
*/
|
|
async function payFeedbackFun(orderId, orderNum, status) {
|
|
const params = {
|
|
orderId,
|
|
orderNum,
|
|
status,
|
|
};
|
|
console.log("params", params);
|
|
const response = await feedback(params);
|
|
console.log("payFeedbackFun response", response);
|
|
if (response && response.bizcode !== 100) {
|
|
console.error("反馈结果", response);
|
|
}
|
|
}
|