@pisell/private-materials 6.3.26 → 6.3.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/build/lowcode/assets-daily.json +11 -11
  2. package/build/lowcode/assets-dev.json +2 -2
  3. package/build/lowcode/assets-prod.json +11 -11
  4. package/build/lowcode/index.js +1 -1
  5. package/build/lowcode/meta.js +1 -1
  6. package/build/lowcode/preview.js +8 -8
  7. package/build/lowcode/render/default/view.css +1 -1
  8. package/build/lowcode/render/default/view.js +7 -7
  9. package/build/lowcode/view.css +1 -1
  10. package/build/lowcode/view.js +7 -7
  11. package/es/components/eftposPay/linkly/index.js +64 -2
  12. package/es/components/pay/toC/PaymentMethods/ApplePay/index.js +68 -35
  13. package/es/components/pay/toC/PaymentMethods/GooglePay/index.js +70 -42
  14. package/es/components/pay/toC/PaymentMethods/SuperPayAliPayH5/index.js +72 -41
  15. package/es/components/pay/toC/PaymentMethods/components/PaymentReturnContent/index.d.ts +15 -0
  16. package/es/components/pay/toC/PaymentMethods/components/PaymentReturnContent/index.js +143 -0
  17. package/es/components/pay/toC/PaymentMethods/components/PaymentReturnContent/index.less +34 -0
  18. package/es/components/pay/toC/PaymentMethods/hooks/index.d.ts +19 -0
  19. package/es/components/pay/toC/PaymentMethods/hooks/index.js +126 -0
  20. package/es/components/pay/toC/index.js +3 -2
  21. package/es/components/pay/toC/locales.d.ts +9 -0
  22. package/es/components/pay/toC/locales.js +12 -3
  23. package/es/components/pay/toC/model.d.ts +1 -0
  24. package/es/components/pay/toC/serve.d.ts +5 -0
  25. package/es/components/pay/toC/serve.js +9 -1
  26. package/lib/components/eftposPay/linkly/index.js +31 -1
  27. package/lib/components/pay/toC/PaymentMethods/ApplePay/index.js +27 -7
  28. package/lib/components/pay/toC/PaymentMethods/GooglePay/index.js +32 -8
  29. package/lib/components/pay/toC/PaymentMethods/SuperPayAliPayH5/index.js +30 -4
  30. package/lib/components/pay/toC/PaymentMethods/components/PaymentReturnContent/index.d.ts +15 -0
  31. package/lib/components/pay/toC/PaymentMethods/components/PaymentReturnContent/index.js +88 -0
  32. package/lib/components/pay/toC/PaymentMethods/components/PaymentReturnContent/index.less +34 -0
  33. package/lib/components/pay/toC/PaymentMethods/hooks/index.d.ts +19 -0
  34. package/lib/components/pay/toC/PaymentMethods/hooks/index.js +90 -0
  35. package/lib/components/pay/toC/index.js +2 -1
  36. package/lib/components/pay/toC/locales.d.ts +9 -0
  37. package/lib/components/pay/toC/locales.js +12 -3
  38. package/lib/components/pay/toC/model.d.ts +1 -0
  39. package/lib/components/pay/toC/serve.d.ts +5 -0
  40. package/lib/components/pay/toC/serve.js +3 -0
  41. package/package.json +4 -4
@@ -1,4 +1,7 @@
1
1
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
3
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
4
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
2
5
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
6
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
7
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
@@ -6,7 +9,7 @@ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol"
6
9
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
10
  import React, { useEffect, useRef } from 'react';
8
11
  import { Button } from 'antd';
9
- import { locales } from '@pisell/utils';
12
+ import { locales, sendWarningLog } from '@pisell/utils';
10
13
  import { useContextData, useDispatch, updateCustom, updateState, updateNextStep } from "../store";
11
14
  import { useFail, useStoreRef } from "../hooks";
12
15
  import useEngineContext from "../../../hooks/useEngineContext";
@@ -101,6 +104,7 @@ var Linkly = function Linkly(_ref) {
101
104
  failRef.current = fail;
102
105
  }, [fail]);
103
106
  useEffect(function () {
107
+ var _utils$isTerminal, _utils$interaction;
104
108
  if (statusRef.current === StatusEnum.Success || statusRef.current === StatusEnum.Fail) {
105
109
  return;
106
110
  }
@@ -114,7 +118,65 @@ var Linkly = function Linkly(_ref) {
114
118
  resultQuery();
115
119
  return;
116
120
  }
117
- payOrRefund(resultQuery, handleLinklySuccess);
121
+
122
+ // 如果是terminal环境,判定当前页面是否处于活跃状态
123
+ if (utils !== null && utils !== void 0 && (_utils$isTerminal = utils.isTerminal) !== null && _utils$isTerminal !== void 0 && _utils$isTerminal.call(utils) && utils !== null && utils !== void 0 && (_utils$interaction = utils.interaction) !== null && _utils$interaction !== void 0 && (_utils$interaction = _utils$interaction.utils) !== null && _utils$interaction !== void 0 && _utils$interaction.asyncDataManager) {
124
+ var _payOrRefund = /*#__PURE__*/function () {
125
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
126
+ var _utils$interaction2, _utils$interaction2$a, activeStatus;
127
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
128
+ while (1) switch (_context.prev = _context.next) {
129
+ case 0:
130
+ _context.prev = 0;
131
+ _context.next = 3;
132
+ return utils === null || utils === void 0 || (_utils$interaction2 = utils.interaction) === null || _utils$interaction2 === void 0 || (_utils$interaction2 = _utils$interaction2.utils) === null || _utils$interaction2 === void 0 || (_utils$interaction2$a = _utils$interaction2.asyncDataManager) === null || _utils$interaction2$a === void 0 ? void 0 : _utils$interaction2$a.call(_utils$interaction2, {
133
+ module: 'get',
134
+ key: 'pay_webview_active'
135
+ });
136
+ case 3:
137
+ activeStatus = _context.sent;
138
+ // 强判定不为 unActive 则进行支付,为了兼容老版本
139
+ if (activeStatus !== 'unActive') {
140
+ payOrRefund(resultQuery, handleLinklySuccess);
141
+ } else {
142
+ sendWarningLog({
143
+ title: 'Linkly-支付-当前页面非活跃状态,无法进行支付',
144
+ content: [{
145
+ key: 'response',
146
+ value: JSON.stringify({
147
+ activeStatus: activeStatus
148
+ })
149
+ }]
150
+ });
151
+ }
152
+ _context.next = 11;
153
+ break;
154
+ case 7:
155
+ _context.prev = 7;
156
+ _context.t0 = _context["catch"](0);
157
+ sendWarningLog({
158
+ title: 'Linkly-支付-获取当前页面活跃状态失败',
159
+ content: [{
160
+ key: 'error',
161
+ value: JSON.stringify(_context.t0)
162
+ }]
163
+ });
164
+ // 如果获取活跃状态失败,则进行支付,防止流程卡死
165
+ payOrRefund(resultQuery, handleLinklySuccess);
166
+ case 11:
167
+ case "end":
168
+ return _context.stop();
169
+ }
170
+ }, _callee, null, [[0, 7]]);
171
+ }));
172
+ return function _payOrRefund() {
173
+ return _ref2.apply(this, arguments);
174
+ };
175
+ }();
176
+ _payOrRefund();
177
+ } else {
178
+ payOrRefund(resultQuery, handleLinklySuccess);
179
+ }
118
180
  }, []);
119
181
  useEffect(function () {
120
182
  return function () {
@@ -11,11 +11,13 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
11
11
  import React, { useState, useImperativeHandle, forwardRef, useContext } from 'react';
12
12
  import { PisellModal } from '@pisell/materials';
13
13
  import ThreedsLoading from "../MWCreditCard/TDSPay/ThreedsLoading";
14
+ import PaymentReturnContent from "../components/PaymentReturnContent";
14
15
  import { Context } from "../../model";
15
16
  import { locales } from '@pisell/utils';
16
17
  import { getPayGroupParamsFromStorage } from "../../payGroup";
17
18
  import useEngineContext from "../../../../../hooks/useEngineContext";
18
19
  import usePaymentLogger from "../../../../../hooks/usePaymentLogger";
20
+ import { usePaymentRedirect } from "../hooks";
19
21
  import "./index.less";
20
22
  import { formatFranchiseeRoute } from "../../utils";
21
23
  /**
@@ -28,7 +30,7 @@ import { formatFranchiseeRoute } from "../../utils";
28
30
  * @Date: 2024-08-16 10:58
29
31
  */
30
32
  var ApplePay = function ApplePay(props, ref) {
31
- var _context$appHelper, _state$payGroup;
33
+ var _context$appHelper, _state$payGroup, _state$payGroup2, _state$payGroup4;
32
34
  var _useContext = useContext(Context),
33
35
  state = _useContext.state;
34
36
  var _useState = useState(false),
@@ -45,6 +47,15 @@ var ApplePay = function ApplePay(props, ref) {
45
47
  step: '2'
46
48
  });
47
49
 
50
+ // 使用支付跳转 hooks
51
+ var _usePaymentRedirect = usePaymentRedirect({
52
+ orderId: (_state$payGroup2 = state.payGroup) === null || _state$payGroup2 === void 0 ? void 0 : _state$payGroup2.order_id,
53
+ paymentType: 'applePay'
54
+ }),
55
+ isReturned = _usePaymentRedirect.isReturned,
56
+ handleRedirect = _usePaymentRedirect.handleRedirect,
57
+ resetState = _usePaymentRedirect.resetState;
58
+
48
59
  /**
49
60
  * @title: 初始化
50
61
  * @description:
@@ -56,7 +67,7 @@ var ApplePay = function ApplePay(props, ref) {
56
67
  var init = /*#__PURE__*/function () {
57
68
  var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref2) {
58
69
  var _utils$getStore;
59
- var payGroup, utils, dvaStore, values, _dvaStore$core, _dvaStore$core2, _state$payGroup2, locale, shopId, currentURL, linkElement, shop_domain, _href;
70
+ var payGroup, utils, dvaStore, values, _dvaStore$core, _dvaStore$core2, _state$payGroup3, locale, shopId, currentURL, linkElement, shop_domain, _href;
60
71
  return _regeneratorRuntime().wrap(function _callee$(_context) {
61
72
  while (1) switch (_context.prev = _context.next) {
62
73
  case 0:
@@ -95,43 +106,50 @@ var ApplePay = function ApplePay(props, ref) {
95
106
  key: 'ApplePay获取支付参数成功',
96
107
  value: ""
97
108
  });
98
- try {
99
- // 语言
100
- locale = ((_dvaStore$core = dvaStore.core) === null || _dvaStore$core === void 0 ? void 0 : _dvaStore$core.translateLocale) || 'en'; // 店铺id
101
- shopId = (_dvaStore$core2 = dvaStore.core) === null || _dvaStore$core2 === void 0 || (_dvaStore$core2 = _dvaStore$core2.core) === null || _dvaStore$core2 === void 0 || (_dvaStore$core2 = _dvaStore$core2.shop) === null || _dvaStore$core2 === void 0 ? void 0 : _dvaStore$core2.id; // 当前url
102
- currentURL = window.location.href; // 创建一个a元素,用于解析URL
103
- linkElement = document.createElement('a');
104
- linkElement.href = currentURL;
109
+ _context.prev = 12;
110
+ // 语言
111
+ locale = ((_dvaStore$core = dvaStore.core) === null || _dvaStore$core === void 0 ? void 0 : _dvaStore$core.translateLocale) || 'en'; // 店铺id
112
+ shopId = (_dvaStore$core2 = dvaStore.core) === null || _dvaStore$core2 === void 0 || (_dvaStore$core2 = _dvaStore$core2.core) === null || _dvaStore$core2 === void 0 || (_dvaStore$core2 = _dvaStore$core2.shop) === null || _dvaStore$core2 === void 0 ? void 0 : _dvaStore$core2.id; // 当前url
113
+ currentURL = window.location.href; // 创建一个a元素,用于解析URL
114
+ linkElement = document.createElement('a');
115
+ linkElement.href = currentURL;
116
+
117
+ // 提取域名
118
+ shop_domain = linkElement.hostname;
119
+ _href = "".concat(config.pay).concat(formatFranchiseeRoute("/apple-pay?order_id=".concat((_state$payGroup3 = state.payGroup) === null || _state$payGroup3 === void 0 ? void 0 : _state$payGroup3.order_id, "&shop_id=").concat(shopId, "&locale=").concat(locale, "&shop_domain=").concat(shop_domain, "&total_amount=").concat(values.amount, "&payment_group_id=").concat(values.payment_group_id, "&front_order_uuid=").concat(state.front_order_uuid), state.history)); // 记录即将跳转到ApplePay
120
+ paymentLogger.addLog({
121
+ key: 'ApplePay准备跳转',
122
+ value: ""
123
+ });
124
+ paymentLogger.sendLogs('ApplePay跳转成功');
105
125
 
106
- // 提取域名
107
- shop_domain = linkElement.hostname;
108
- _href = "".concat(config.pay).concat(formatFranchiseeRoute("/apple-pay?order_id=".concat((_state$payGroup2 = state.payGroup) === null || _state$payGroup2 === void 0 ? void 0 : _state$payGroup2.order_id, "&shop_id=").concat(shopId, "&locale=").concat(locale, "&shop_domain=").concat(shop_domain, "&total_amount=").concat(values.amount, "&payment_group_id=").concat(values.payment_group_id), state.history)); // 记录即将跳转到ApplePay
109
- paymentLogger.addLog({
110
- key: 'ApplePay准备跳转',
111
- value: ""
112
- });
113
- paymentLogger.sendLogs('ApplePay跳转成功');
114
- window.location.href = _href;
115
- } catch (err) {
116
- // 记录ApplePay处理错误
117
- paymentLogger.addLog({
118
- key: 'ApplePay处理错误',
119
- value: {
120
- title: "\u8BA2\u5355".concat(payGroup === null || payGroup === void 0 ? void 0 : payGroup.order_id, " ApplePay\u5904\u7406\u5931\u8D25: ").concat((err === null || err === void 0 ? void 0 : err.message) || '未知错误'),
121
- data: {
122
- payGroup: payGroup,
123
- values: values
124
- }
126
+ // 使用 hooks 提供的跳转方法
127
+ _context.next = 24;
128
+ return handleRedirect(_href);
129
+ case 24:
130
+ _context.next = 31;
131
+ break;
132
+ case 26:
133
+ _context.prev = 26;
134
+ _context.t0 = _context["catch"](12);
135
+ // 记录ApplePay处理错误
136
+ paymentLogger.addLog({
137
+ key: 'ApplePay处理错误',
138
+ value: {
139
+ title: "\u8BA2\u5355".concat(payGroup === null || payGroup === void 0 ? void 0 : payGroup.order_id, " ApplePay\u5904\u7406\u5931\u8D25: ").concat((_context.t0 === null || _context.t0 === void 0 ? void 0 : _context.t0.message) || '未知错误'),
140
+ data: {
141
+ payGroup: payGroup,
142
+ values: values
125
143
  }
126
- });
127
- paymentLogger.sendLogs('ApplePay处理失败', err);
128
- setOpen(false);
129
- }
130
- case 13:
144
+ }
145
+ });
146
+ paymentLogger.sendLogs('ApplePay处理失败', _context.t0);
147
+ setOpen(false);
148
+ case 31:
131
149
  case "end":
132
150
  return _context.stop();
133
151
  }
134
- }, _callee);
152
+ }, _callee, null, [[12, 26]]);
135
153
  }));
136
154
  return function init(_x) {
137
155
  return _ref3.apply(this, arguments);
@@ -142,6 +160,10 @@ var ApplePay = function ApplePay(props, ref) {
142
160
  init: init
143
161
  };
144
162
  });
163
+ var handleReturn = function handleReturn() {
164
+ setOpen(false);
165
+ resetState();
166
+ };
145
167
  return /*#__PURE__*/React.createElement(PisellModal, {
146
168
  platform: 'h5',
147
169
  open: open,
@@ -153,8 +175,19 @@ var ApplePay = function ApplePay(props, ref) {
153
175
  }
154
176
  }, /*#__PURE__*/React.createElement("div", {
155
177
  className: ""
156
- }, /*#__PURE__*/React.createElement(ThreedsLoading, {
178
+ }, !isReturned &&
179
+ /*#__PURE__*/
180
+ // 跳转前展示 Loading
181
+ React.createElement(ThreedsLoading, {
157
182
  title: locales.getText('tocPay.text.connectingApplePay')
183
+ }), isReturned &&
184
+ /*#__PURE__*/
185
+ // 跳转后返回时展示新组件内容
186
+ React.createElement(PaymentReturnContent, {
187
+ handleReturn: handleReturn,
188
+ state: state,
189
+ orderId: (_state$payGroup4 = state.payGroup) === null || _state$payGroup4 === void 0 ? void 0 : _state$payGroup4.order_id,
190
+ unique_payment_number: state === null || state === void 0 ? void 0 : state.front_order_uuid
158
191
  })));
159
192
  };
160
193
  export default /*#__PURE__*/forwardRef(ApplePay);
@@ -17,6 +17,8 @@ import { getPayGroupParamsFromStorage } from "../../payGroup";
17
17
  import useEngineContext from "../../../../../hooks/useEngineContext";
18
18
  import usePaymentLogger from "../../../../../hooks/usePaymentLogger";
19
19
  import { clientPayment, formatFranchiseeRoute } from "../../utils";
20
+ import { usePaymentRedirect } from "../hooks";
21
+ import PaymentReturnContent from "../components/PaymentReturnContent";
20
22
  /**
21
23
  * @title: 谷歌支付
22
24
  * @description:
@@ -27,7 +29,7 @@ import { clientPayment, formatFranchiseeRoute } from "../../utils";
27
29
  * @Date: 2024-08-16 11:01
28
30
  */
29
31
  var GooglePay = function GooglePay(props, ref) {
30
- var _context$appHelper, _context$appHelper2, _state$payGroup;
32
+ var _context$appHelper, _context$appHelper2, _state$payGroup, _state$payGroup2, _state$payGroup4;
31
33
  var _useContext = useContext(Context),
32
34
  state = _useContext.state;
33
35
  var _useState = useState(false),
@@ -46,6 +48,15 @@ var GooglePay = function GooglePay(props, ref) {
46
48
  step: '2'
47
49
  });
48
50
 
51
+ // 使用支付跳转 hooks
52
+ var _usePaymentRedirect = usePaymentRedirect({
53
+ orderId: (_state$payGroup2 = state.payGroup) === null || _state$payGroup2 === void 0 ? void 0 : _state$payGroup2.order_id,
54
+ paymentType: 'googlePay'
55
+ }),
56
+ isReturned = _usePaymentRedirect.isReturned,
57
+ handleRedirect = _usePaymentRedirect.handleRedirect,
58
+ resetState = _usePaymentRedirect.resetState;
59
+
49
60
  /**
50
61
  * @title: 初始化
51
62
  * @description:
@@ -57,7 +68,7 @@ var GooglePay = function GooglePay(props, ref) {
57
68
  var init = /*#__PURE__*/function () {
58
69
  var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref2) {
59
70
  var _utils$getStore, _interaction$utils, _interaction$utils$is, _interaction$utils2, _interaction$utils2$i;
60
- var payGroup, utils, dvaStore, values, _dvaStore$core, _dvaStore$core2, _state$payGroup2, locale, shopId, currentURL, linkElement, shop_domain, _href;
71
+ var payGroup, utils, dvaStore, values, _dvaStore$core, _dvaStore$core2, _state$payGroup3, locale, shopId, currentURL, linkElement, shop_domain, _href;
61
72
  return _regeneratorRuntime().wrap(function _callee$(_context) {
62
73
  while (1) switch (_context.prev = _context.next) {
63
74
  case 0:
@@ -65,13 +76,14 @@ var GooglePay = function GooglePay(props, ref) {
65
76
  // 记录GooglePay初始化开始
66
77
  paymentLogger.addLog({
67
78
  key: 'GooglePay初始化开始',
68
- value: ""
79
+ value: ''
69
80
  });
81
+ setOpen(true);
70
82
  utils = context.appHelper.utils || {};
71
83
  dvaStore = utils === null || utils === void 0 || (_utils$getStore = utils.getStore) === null || _utils$getStore === void 0 || (_utils$getStore = _utils$getStore.call(utils)) === null || _utils$getStore === void 0 ? void 0 : _utils$getStore.getState(); // 获取交易组
72
84
  values = getPayGroupParamsFromStorage(payGroup.order_id);
73
85
  if (values) {
74
- _context.next = 10;
86
+ _context.next = 11;
75
87
  break;
76
88
  }
77
89
  // 记录获取支付参数失败
@@ -87,20 +99,20 @@ var GooglePay = function GooglePay(props, ref) {
87
99
  paymentLogger.sendLogs('GooglePay获取支付参数失败');
88
100
  setOpen(false);
89
101
  return _context.abrupt("return");
90
- case 10:
102
+ case 11:
91
103
  // 记录获取支付参数成功
92
104
  paymentLogger.addLog({
93
105
  key: 'GooglePay获取支付参数成功',
94
- value: ""
106
+ value: ''
95
107
  });
96
108
  if (!(interaction !== null && interaction !== void 0 && (_interaction$utils = interaction.utils) !== null && _interaction$utils !== void 0 && (_interaction$utils$is = _interaction$utils.isAppEnv) !== null && _interaction$utils$is !== void 0 && _interaction$utils$is.call(_interaction$utils) && (interaction === null || interaction === void 0 || (_interaction$utils2 = interaction.utils) === null || _interaction$utils2 === void 0 || (_interaction$utils2$i = _interaction$utils2.isAndroid_ios) === null || _interaction$utils2$i === void 0 ? void 0 : _interaction$utils2$i.call(_interaction$utils2)) === 'android')) {
97
- _context.next = 15;
109
+ _context.next = 16;
98
110
  break;
99
111
  }
100
112
  // 记录Android客户端支付
101
113
  paymentLogger.addLog({
102
114
  key: 'GooglePay使用Android客户端支付',
103
- value: ""
115
+ value: ''
104
116
  });
105
117
  paymentLogger.sendLogs('GooglePay客户端支付');
106
118
  return _context.abrupt("return", clientPayment({
@@ -109,44 +121,48 @@ var GooglePay = function GooglePay(props, ref) {
109
121
  values: values,
110
122
  interaction: interaction
111
123
  }));
112
- case 15:
113
- setOpen(true);
114
- try {
115
- locale = ((_dvaStore$core = dvaStore.core) === null || _dvaStore$core === void 0 ? void 0 : _dvaStore$core.translateLocale) || 'en';
116
- shopId = (_dvaStore$core2 = dvaStore.core) === null || _dvaStore$core2 === void 0 || (_dvaStore$core2 = _dvaStore$core2.core) === null || _dvaStore$core2 === void 0 || (_dvaStore$core2 = _dvaStore$core2.shop) === null || _dvaStore$core2 === void 0 ? void 0 : _dvaStore$core2.id;
117
- currentURL = window.location.href; // 创建一个a元素,用于解析URL
118
- linkElement = document.createElement('a');
119
- linkElement.href = currentURL;
124
+ case 16:
125
+ _context.prev = 16;
126
+ locale = ((_dvaStore$core = dvaStore.core) === null || _dvaStore$core === void 0 ? void 0 : _dvaStore$core.translateLocale) || 'en';
127
+ shopId = (_dvaStore$core2 = dvaStore.core) === null || _dvaStore$core2 === void 0 || (_dvaStore$core2 = _dvaStore$core2.core) === null || _dvaStore$core2 === void 0 || (_dvaStore$core2 = _dvaStore$core2.shop) === null || _dvaStore$core2 === void 0 ? void 0 : _dvaStore$core2.id;
128
+ currentURL = window.location.href; // 创建一个a元素,用于解析URL
129
+ linkElement = document.createElement('a');
130
+ linkElement.href = currentURL;
120
131
 
121
- // 提取域名
122
- shop_domain = linkElement.hostname;
123
- _href = "".concat(config.pay).concat(formatFranchiseeRoute("/google-pay?order_id=".concat((_state$payGroup2 = state.payGroup) === null || _state$payGroup2 === void 0 ? void 0 : _state$payGroup2.order_id, "&shop_id=").concat(shopId, "&locale=").concat(locale, "&shop_domain=").concat(shop_domain, "&total_amount=").concat(values.amount, "&payment_group_id=").concat(values.payment_group_id), state.history)); // 记录即将跳转到GooglePay
124
- paymentLogger.addLog({
125
- key: 'GooglePay准备跳转',
126
- value: ""
127
- });
128
- paymentLogger.sendLogs('GooglePay跳转成功');
129
- window.location.href = _href;
130
- } catch (err) {
131
- // 记录GooglePay处理错误
132
- paymentLogger.addLog({
133
- key: 'GooglePay处理错误',
134
- value: {
135
- title: "\u8BA2\u5355".concat(payGroup === null || payGroup === void 0 ? void 0 : payGroup.order_id, " GooglePay\u5904\u7406\u5931\u8D25: ").concat((err === null || err === void 0 ? void 0 : err.message) || '未知错误'),
136
- data: {
137
- payGroup: payGroup,
138
- values: values
139
- }
132
+ // 提取域名
133
+ shop_domain = linkElement.hostname;
134
+ _href = "".concat(config.pay).concat(formatFranchiseeRoute("/google-pay?order_id=".concat((_state$payGroup3 = state.payGroup) === null || _state$payGroup3 === void 0 ? void 0 : _state$payGroup3.order_id, "&shop_id=").concat(shopId, "&locale=").concat(locale, "&shop_domain=").concat(shop_domain, "&total_amount=").concat(values.amount, "&payment_group_id=").concat(values.payment_group_id, "&front_order_uuid=").concat(state.front_order_uuid), state.history)); // 记录即将跳转到GooglePay
135
+ paymentLogger.addLog({
136
+ key: 'GooglePay准备跳转',
137
+ value: ''
138
+ });
139
+ paymentLogger.sendLogs('GooglePay跳转成功');
140
+ _context.next = 28;
141
+ return handleRedirect(_href);
142
+ case 28:
143
+ _context.next = 35;
144
+ break;
145
+ case 30:
146
+ _context.prev = 30;
147
+ _context.t0 = _context["catch"](16);
148
+ // 记录GooglePay处理错误
149
+ paymentLogger.addLog({
150
+ key: 'GooglePay处理错误',
151
+ value: {
152
+ title: "\u8BA2\u5355".concat(payGroup === null || payGroup === void 0 ? void 0 : payGroup.order_id, " GooglePay\u5904\u7406\u5931\u8D25: ").concat((_context.t0 === null || _context.t0 === void 0 ? void 0 : _context.t0.message) || '未知错误'),
153
+ data: {
154
+ payGroup: payGroup,
155
+ values: values
140
156
  }
141
- });
142
- paymentLogger.sendLogs('GooglePay处理失败', err);
143
- setOpen(false);
144
- }
145
- case 17:
157
+ }
158
+ });
159
+ paymentLogger.sendLogs('GooglePay处理失败', _context.t0);
160
+ setOpen(false);
161
+ case 35:
146
162
  case "end":
147
163
  return _context.stop();
148
164
  }
149
- }, _callee);
165
+ }, _callee, null, [[16, 30]]);
150
166
  }));
151
167
  return function init(_x) {
152
168
  return _ref3.apply(this, arguments);
@@ -157,6 +173,10 @@ var GooglePay = function GooglePay(props, ref) {
157
173
  init: init
158
174
  };
159
175
  });
176
+ var handleReturn = function handleReturn() {
177
+ setOpen(false);
178
+ resetState();
179
+ };
160
180
  return /*#__PURE__*/React.createElement(PisellModal, {
161
181
  platform: 'h5',
162
182
  open: open,
@@ -168,8 +188,16 @@ var GooglePay = function GooglePay(props, ref) {
168
188
  }
169
189
  }, /*#__PURE__*/React.createElement("div", {
170
190
  className: ""
171
- }, /*#__PURE__*/React.createElement(ThreedsLoading, {
191
+ }, !isReturned && /*#__PURE__*/React.createElement(ThreedsLoading, {
172
192
  title: locales.getText('tocPay.text.connectingGooglePay')
193
+ }), isReturned &&
194
+ /*#__PURE__*/
195
+ // 跳转后返回时展示新组件内容
196
+ React.createElement(PaymentReturnContent, {
197
+ handleReturn: handleReturn,
198
+ state: state,
199
+ orderId: (_state$payGroup4 = state.payGroup) === null || _state$payGroup4 === void 0 ? void 0 : _state$payGroup4.order_id,
200
+ unique_payment_number: state.front_order_uuid
173
201
  })));
174
202
  };
175
203
  export default /*#__PURE__*/forwardRef(GooglePay);