|
@@ -1,7 +1,7 @@
|
|
|
|
|
|
import wxpay from '@service.wxpay';
|
|
|
import alipay from '@service.alipay';
|
|
|
-import { getConfigOfWxPay, getConfigOfAliPay } from "../api";
|
|
|
+import { getConfigOfWxH5Pay, getConfigOfWxAppPay, getConfigOfAliPay } from "../api";
|
|
|
|
|
|
export const pageLoad = (meta, fn, params) => {
|
|
|
return new Promise(async (resolve, reject) => {
|
|
@@ -20,55 +20,91 @@ export const pageLoad = (meta, fn, params) => {
|
|
|
|
|
|
// 支付配置
|
|
|
export const configWxPay = async (params) => {
|
|
|
- let config = await getConfigOfWxPay(params);
|
|
|
- console.log("pay config", config);
|
|
|
- let prepayid = config.prepay_id;
|
|
|
- // app中的配置信息
|
|
|
- let extraAppConfig = {
|
|
|
- app_id: config.appId,
|
|
|
- partner_id: "",
|
|
|
- package_value: "",
|
|
|
- nonce_str: config.nonce_str,
|
|
|
- time_stamp: "",
|
|
|
- order_sign: config.sign
|
|
|
- }
|
|
|
- // web端的配置信息
|
|
|
- let extraWebConfig = {
|
|
|
- mweb_url: "http://www.baidu.com"
|
|
|
- }
|
|
|
let payType = wxpay.getType();
|
|
|
let ret = null;
|
|
|
console.log(payType);
|
|
|
// return;
|
|
|
switch (payType) {
|
|
|
- case "APP": ret = await useWxPay(prepayid, extraAppConfig); break;
|
|
|
- case "MWEB": ret = await useWxPay(prepayid, extraWebConfig); break;
|
|
|
+ case "APP":
|
|
|
+ try {
|
|
|
+ ret = await useWxAppPay(params);
|
|
|
+ } catch (e) {
|
|
|
+ ret = e;
|
|
|
+ };
|
|
|
+ break;
|
|
|
+ case "MWEB":
|
|
|
+ try {
|
|
|
+ ret = await useWxH5Pay(params);
|
|
|
+ } catch (e) {
|
|
|
+ console.log("e", e);
|
|
|
+ ret = e;
|
|
|
+ };
|
|
|
+ break;
|
|
|
default: ret = "app not install or wx pay is not avaliable";
|
|
|
}
|
|
|
|
|
|
- console.log(ret);
|
|
|
+ return ret;
|
|
|
+}
|
|
|
+
|
|
|
+// h5支付
|
|
|
+let useWxH5Pay = (params) => {
|
|
|
+ return new Promise(async (resolve, reject) => {
|
|
|
+ let config = await getConfigOfWxH5Pay(params);
|
|
|
+ let extra = {
|
|
|
+ mweb_url: config.mweb_url + "&redirect_url=" + encodeURIComponent("https://kyy.aizhuishu.com/testp")
|
|
|
+ }
|
|
|
+ console.log(extra);
|
|
|
+ wxpay.pay({
|
|
|
+ prepayid: config.prepay_id,
|
|
|
+ referer: "https://kyy.aizhuishu.com",
|
|
|
+ extra: extra,
|
|
|
+ success: (data) => {
|
|
|
+ console.log("success", data);
|
|
|
+ // app中返回prepayid web中返回final_url
|
|
|
+ resolve({ code: "0", data: data, order: config.trade_no, message: "订单已经提交" });
|
|
|
+ },
|
|
|
+ fail: (data, code) => {
|
|
|
+ console.log("error");
|
|
|
+ console.log(data, code);
|
|
|
+ reject({ code: code, data: data, message: data });
|
|
|
+ },
|
|
|
+ cancel: () => {
|
|
|
+ console.log("user cancel");
|
|
|
+ reject({ code: "-1", data: "", message: "user cancel" });
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
}
|
|
|
|
|
|
-let useWxPay = (prepayid, extra) => {
|
|
|
- return new Promise((resolve, reject) => {
|
|
|
- console.log(prepayid);
|
|
|
+// app支付
|
|
|
+let useWxAppPay = (params) => {
|
|
|
+ return new Promise(async (resolve, reject) => {
|
|
|
+ let config = await getConfigOfWxAppPay(params);
|
|
|
+ let extra = {
|
|
|
+ app_id: config.appId,
|
|
|
+ partner_id: "",
|
|
|
+ package_value: "",
|
|
|
+ nonce_str: config.nonce_str,
|
|
|
+ time_stamp: "",
|
|
|
+ order_sign: config.sign
|
|
|
+ }
|
|
|
console.log(extra);
|
|
|
wxpay.pay({
|
|
|
- prepayid: prepayid,
|
|
|
+ prepayid: config.prepay_id,
|
|
|
extra: extra,
|
|
|
success: (data) => {
|
|
|
console.log("success", data);
|
|
|
// app中返回prepayid web中返回final_url
|
|
|
- resolve(data);
|
|
|
+ resolve({ code: "0", data: data, order: config.trade_no, message: "订单已经提交" });
|
|
|
},
|
|
|
fail: (data, code) => {
|
|
|
console.log("error");
|
|
|
console.log(data, code);
|
|
|
- reject({ data, code });
|
|
|
+ reject({ code: code, data: data, message: data });
|
|
|
},
|
|
|
cancel: () => {
|
|
|
console.log("user cancel");
|
|
|
- reject({ message: "user cancel" });
|
|
|
+ reject({ code: "-1", data: "", message: "user cancel" });
|
|
|
}
|
|
|
})
|
|
|
})
|
|
@@ -79,10 +115,10 @@ export const configAliPay = (params) => {
|
|
|
return new Promise(async (resolve) => {
|
|
|
let orderInfo = await getConfigOfAliPay(params);
|
|
|
alipay.pay({
|
|
|
- orderInfo: orderInfo,
|
|
|
+ orderInfo: orderInfo.order_info,
|
|
|
callback: (ret) => {
|
|
|
console.log("alipay cb", ret);
|
|
|
- resolve({ code: ret.resultStatus, result: ret.result ? JSON.parse(ret.result) : "" })
|
|
|
+ resolve({ code: ret.resultStatus, order: orderInfo.trade_no, result: ret.result ? JSON.parse(ret.result) : "" })
|
|
|
}
|
|
|
})
|
|
|
})
|