index.js 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. import wxpay from '@service.wxpay';
  2. import alipay from '@service.alipay';
  3. import { getConfigOfWxPay, getConfigOfAliPay } from "../api";
  4. export const pageLoad = (meta, fn, params) => {
  5. return new Promise(async (resolve, reject) => {
  6. if (meta.current_page) {
  7. if (meta.next_page_url) {
  8. let ret = await fn(params);
  9. resolve(ret);
  10. } else reject("last page");
  11. } else {
  12. console.log("first page");
  13. let ret = await fn(params);
  14. resolve(ret);
  15. }
  16. })
  17. }
  18. // 支付配置
  19. export const configWxPay = async (params) => {
  20. let config = await getConfigOfWxPay(params);
  21. console.log("pay config", config);
  22. let prepayid = config.prepay_id;
  23. // app中的配置信息
  24. let extraAppConfig = {
  25. app_id: config.appId,
  26. partner_id: "",
  27. package_value: "",
  28. nonce_str: config.nonce_str,
  29. time_stamp: "",
  30. order_sign: config.sign
  31. }
  32. // web端的配置信息
  33. let extraWebConfig = {
  34. mweb_url: "http://www.baidu.com"
  35. }
  36. let payType = wxpay.getType();
  37. let ret = null;
  38. console.log(payType);
  39. // return;
  40. switch (payType) {
  41. case "APP": ret = await useWxPay(prepayid, extraAppConfig); break;
  42. case "MWEB": ret = await useWxPay(prepayid, extraWebConfig); break;
  43. default: ret = "app not install or wx pay is not avaliable";
  44. }
  45. console.log(ret);
  46. }
  47. let useWxPay = (prepayid, extra) => {
  48. return new Promise((resolve, reject) => {
  49. console.log(prepayid);
  50. console.log(extra);
  51. wxpay.pay({
  52. prepayid: prepayid,
  53. extra: extra,
  54. success: (data) => {
  55. console.log("success", data);
  56. // app中返回prepayid web中返回final_url
  57. resolve(data);
  58. },
  59. fail: (data, code) => {
  60. console.log("error");
  61. console.log(data, code);
  62. reject({ data, code });
  63. },
  64. cancel: () => {
  65. console.log("user cancel");
  66. reject({ message: "user cancel" });
  67. }
  68. })
  69. })
  70. }
  71. // 配置支付宝支付
  72. export const configAliPay = (params) => {
  73. return new Promise(async (resolve) => {
  74. let orderInfo = await getConfigOfAliPay(params);
  75. alipay.pay({
  76. orderInfo: orderInfo,
  77. callback: (ret) => {
  78. console.log("alipay cb", ret);
  79. resolve({ code: ret.resultStatus, result: ret.result ? JSON.parse(ret.result) : "" })
  80. }
  81. })
  82. })
  83. }