@pisell/private-materials 6.8.83 → 6.8.84
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.
- package/build/lowcode/assets-daily.json +11 -11
- package/build/lowcode/assets-dev.json +2 -2
- package/build/lowcode/assets-prod.json +11 -11
- package/build/lowcode/index.js +1 -1
- package/build/lowcode/meta.js +1 -1
- package/build/lowcode/preview.js +8 -8
- package/build/lowcode/render/default/view.css +1 -1
- package/build/lowcode/render/default/view.js +10 -10
- package/build/lowcode/view.css +1 -1
- package/build/lowcode/view.js +9 -9
- package/es/components/booking/components/footer/index.d.ts +1 -0
- package/es/components/booking/info/index.d.ts +1 -0
- package/es/components/checkout/PaymentModal.js +4 -2
- package/es/components/checkout/components/PaymentOptionsModule/index.js +1 -1
- package/es/components/eftposPay/aggregatePayment/hooks/useMicropay.d.ts +7 -0
- package/es/components/eftposPay/aggregatePayment/hooks/useMicropay.js +120 -0
- package/es/components/eftposPay/aggregatePayment/index.d.ts +3 -0
- package/es/components/eftposPay/aggregatePayment/index.js +3 -0
- package/es/components/eftposPay/aggregatePayment/service.d.ts +24 -0
- package/es/components/eftposPay/aggregatePayment/service.js +69 -0
- package/es/components/eftposPay/aggregatePayment/types.d.ts +106 -0
- package/es/components/eftposPay/aggregatePayment/types.js +65 -0
- package/es/components/eftposPay/aggregatePayment/utils/logs.d.ts +110 -0
- package/es/components/eftposPay/aggregatePayment/utils/logs.js +371 -0
- package/es/components/eftposPay/aggregatePayment/utils/payment.d.ts +139 -0
- package/es/components/eftposPay/aggregatePayment/utils/payment.js +1138 -0
- package/es/components/eftposPay/amount.d.ts +1 -1
- package/es/components/eftposPay/app.d.ts +1 -1
- package/es/components/eftposPay/app.js +5 -0
- package/es/components/eftposPay/component/fail/failCustom.js +16 -12
- package/es/components/eftposPay/component/fail/index.js +12 -5
- package/es/components/eftposPay/const.d.ts +6 -1
- package/es/components/eftposPay/const.js +3 -0
- package/es/components/eftposPay/device.d.ts +1 -1
- package/es/components/eftposPay/hooks.d.ts +3 -2
- package/es/components/eftposPay/hooks.js +12 -0
- package/es/components/eftposPay/huifu/Action.d.ts +8 -0
- package/es/components/eftposPay/huifu/Action.js +146 -0
- package/es/components/eftposPay/huifu/const.d.ts +5 -0
- package/es/components/eftposPay/huifu/const.js +70 -0
- package/es/components/eftposPay/huifu/hooks.d.ts +25 -0
- package/es/components/eftposPay/huifu/hooks.js +184 -0
- package/es/components/eftposPay/huifu/index.d.ts +5 -0
- package/es/components/eftposPay/huifu/index.js +196 -0
- package/es/components/eftposPay/huifu/index.less +180 -0
- package/es/components/eftposPay/huifu/types.d.ts +14 -0
- package/es/components/eftposPay/huifu/types.js +1 -0
- package/es/components/eftposPay/index.js +5 -1
- package/es/components/eftposPay/locales.d.ts +36 -0
- package/es/components/eftposPay/locales.js +42 -3
- package/es/components/eftposPay/manufacturer.d.ts +1 -0
- package/es/components/eftposPay/manufacturer.js +5 -0
- package/es/components/eftposPay/pay.js +6 -2
- package/es/components/eftposPay/store/index.d.ts +11 -4
- package/es/components/kioskSkuDetail/index.d.ts +3 -0
- package/es/components/kioskSkuDetail/index.js +266 -173
- package/es/components/kioskSkuDetail/index.less +49 -7
- package/es/components/kioskSkuDetail/locales.d.ts +6 -0
- package/es/components/kioskSkuDetail/locales.js +9 -3
- package/es/components/pay/toB/components/Cache/index.d.ts +1 -0
- package/es/components/pay/toB/components/EFTPOS/index.js +8 -1
- package/es/components/pay/toB/types/index.d.ts +1 -0
- package/es/components/pay/toC/PaymentList/serve.js +14 -0
- package/es/components/pay/toC/PaymentMethods/MWCreditCard/tds2.js +7 -6
- package/es/components/ticketBooking/components/ticketBooking/index.d.ts +1 -0
- package/es/components/ticketBooking/index.d.ts +16 -0
- package/es/plus/skuOptionsSelection/components/VariantCard/index.js +1 -1
- package/es/plus/skuOptionsSelection/locales.d.ts +3 -0
- package/es/plus/skuOptionsSelection/locales.js +3 -0
- package/es/pro/Login2.0/components/LoginCodeInput.js +36 -3
- package/es/pro/Login2.0/steps/CodeInput.js +37 -7
- package/lib/components/booking/components/footer/index.d.ts +1 -0
- package/lib/components/booking/info/index.d.ts +1 -0
- package/lib/components/checkout/PaymentModal.js +5 -2
- package/lib/components/checkout/components/PaymentOptionsModule/index.js +2 -1
- package/lib/components/eftposPay/aggregatePayment/hooks/useMicropay.d.ts +7 -0
- package/lib/components/eftposPay/aggregatePayment/hooks/useMicropay.js +133 -0
- package/lib/components/eftposPay/aggregatePayment/index.d.ts +3 -0
- package/lib/components/eftposPay/aggregatePayment/index.js +42 -0
- package/lib/components/eftposPay/aggregatePayment/service.d.ts +24 -0
- package/lib/components/eftposPay/aggregatePayment/service.js +81 -0
- package/lib/components/eftposPay/aggregatePayment/types.d.ts +106 -0
- package/lib/components/eftposPay/aggregatePayment/types.js +74 -0
- package/lib/components/eftposPay/aggregatePayment/utils/logs.d.ts +110 -0
- package/lib/components/eftposPay/aggregatePayment/utils/logs.js +294 -0
- package/lib/components/eftposPay/aggregatePayment/utils/payment.d.ts +139 -0
- package/lib/components/eftposPay/aggregatePayment/utils/payment.js +752 -0
- package/lib/components/eftposPay/amount.d.ts +1 -1
- package/lib/components/eftposPay/app.d.ts +1 -1
- package/lib/components/eftposPay/app.js +5 -0
- package/lib/components/eftposPay/component/fail/failCustom.js +15 -9
- package/lib/components/eftposPay/component/fail/index.js +4 -1
- package/lib/components/eftposPay/const.d.ts +6 -1
- package/lib/components/eftposPay/const.js +3 -0
- package/lib/components/eftposPay/device.d.ts +1 -1
- package/lib/components/eftposPay/hooks.d.ts +3 -2
- package/lib/components/eftposPay/hooks.js +16 -0
- package/lib/components/eftposPay/huifu/Action.d.ts +8 -0
- package/lib/components/eftposPay/huifu/Action.js +174 -0
- package/lib/components/eftposPay/huifu/const.d.ts +5 -0
- package/lib/components/eftposPay/huifu/const.js +86 -0
- package/lib/components/eftposPay/huifu/hooks.d.ts +25 -0
- package/lib/components/eftposPay/huifu/hooks.js +186 -0
- package/lib/components/eftposPay/huifu/index.d.ts +5 -0
- package/lib/components/eftposPay/huifu/index.js +200 -0
- package/lib/components/eftposPay/huifu/index.less +180 -0
- package/lib/components/eftposPay/huifu/types.d.ts +14 -0
- package/lib/components/eftposPay/huifu/types.js +17 -0
- package/lib/components/eftposPay/index.js +5 -1
- package/lib/components/eftposPay/locales.d.ts +36 -0
- package/lib/components/eftposPay/locales.js +42 -3
- package/lib/components/eftposPay/manufacturer.d.ts +1 -0
- package/lib/components/eftposPay/manufacturer.js +7 -0
- package/lib/components/eftposPay/pay.js +3 -2
- package/lib/components/eftposPay/store/index.d.ts +11 -4
- package/lib/components/kioskSkuDetail/index.d.ts +3 -0
- package/lib/components/kioskSkuDetail/index.js +180 -113
- package/lib/components/kioskSkuDetail/index.less +49 -7
- package/lib/components/kioskSkuDetail/locales.d.ts +6 -0
- package/lib/components/kioskSkuDetail/locales.js +9 -3
- package/lib/components/pay/toB/components/Cache/index.d.ts +1 -0
- package/lib/components/pay/toB/components/EFTPOS/index.js +8 -1
- package/lib/components/pay/toB/types/index.d.ts +1 -0
- package/lib/components/pay/toC/PaymentList/serve.js +15 -0
- package/lib/components/pay/toC/PaymentMethods/MWCreditCard/tds2.js +7 -6
- package/lib/components/ticketBooking/components/ticketBooking/index.d.ts +1 -0
- package/lib/components/ticketBooking/index.d.ts +16 -0
- package/lib/plus/skuOptionsSelection/components/VariantCard/index.js +2 -0
- package/lib/plus/skuOptionsSelection/locales.d.ts +3 -0
- package/lib/plus/skuOptionsSelection/locales.js +3 -0
- package/lib/pro/Login2.0/components/LoginCodeInput.js +26 -4
- package/lib/pro/Login2.0/steps/CodeInput.js +27 -5
- package/lowcode/kiosk-sku-detail/meta.ts +229 -94
- package/package.json +1 -1
|
@@ -0,0 +1,1138 @@
|
|
|
1
|
+
var _excluded = ["pay_param_base64"],
|
|
2
|
+
_excluded2 = ["pay_param_base64"];
|
|
3
|
+
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); }
|
|
4
|
+
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; }
|
|
5
|
+
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; }
|
|
6
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
7
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
8
|
+
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; }
|
|
9
|
+
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); } }
|
|
10
|
+
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); }); }; }
|
|
11
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
12
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
13
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
14
|
+
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; }
|
|
15
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
16
|
+
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); }
|
|
17
|
+
/**
|
|
18
|
+
* 聚合支付方法类
|
|
19
|
+
* 核心点:
|
|
20
|
+
* 1.发起支付/退款,在十秒钟后发起轮询操作,两个接口谁先返回成功用谁的结果,如果返回的失败是存在明确code信息的则全部失败
|
|
21
|
+
* 2.轮询操作总查询时间2分钟,超时直接失败,单次轮询超时时间5秒,超时直接abort本次请求,间隔两秒后发起新的请求
|
|
22
|
+
* 3.最终成功或者失败都需要把定时器给清理掉,并将未完成的接口abort掉
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
import { PayStatus } from "../../const";
|
|
26
|
+
import paymentLog from "./logs";
|
|
27
|
+
import { AGPTPayApi, AGPTQueryApi, AGPTActionApi, AGPTRefundApi, AGPTRefundQueryApi, AGPTRefundActionApi } from "../service";
|
|
28
|
+
import { getUuid } from "../../helper";
|
|
29
|
+
import { EPaymentStatus, ActionType, QUERY_START_DELAY, REQUEST_TIMEOUT, QUERY_INTERVAL, GLOBAL_TIMEOUT } from "../types";
|
|
30
|
+
var PaymentMethod = /*#__PURE__*/function () {
|
|
31
|
+
function PaymentMethod(options) {
|
|
32
|
+
_classCallCheck(this, PaymentMethod);
|
|
33
|
+
/** 初始化参数 */
|
|
34
|
+
_defineProperty(this, "initOptions", void 0);
|
|
35
|
+
// 交易号
|
|
36
|
+
_defineProperty(this, "paymentNum", void 0);
|
|
37
|
+
// 订单ID
|
|
38
|
+
_defineProperty(this, "orderId", void 0);
|
|
39
|
+
// 设备ID
|
|
40
|
+
_defineProperty(this, "deviceId", void 0);
|
|
41
|
+
// 统一回调函数
|
|
42
|
+
_defineProperty(this, "callback", void 0);
|
|
43
|
+
// 检查是否应该继续处理结果
|
|
44
|
+
_defineProperty(this, "shouldContinue", void 0);
|
|
45
|
+
// 配置
|
|
46
|
+
_defineProperty(this, "config", {});
|
|
47
|
+
// 主请求的 AbortController(支付/退款等)
|
|
48
|
+
_defineProperty(this, "controller", null);
|
|
49
|
+
// 查询请求的 AbortController
|
|
50
|
+
_defineProperty(this, "queryController", null);
|
|
51
|
+
// 开始轮询的定时器
|
|
52
|
+
_defineProperty(this, "queryStartTimer", null);
|
|
53
|
+
// 全局超时定时器
|
|
54
|
+
_defineProperty(this, "globalTimeoutTimer", null);
|
|
55
|
+
// 单次请求超时定时器
|
|
56
|
+
_defineProperty(this, "requestTimeoutTimer", null);
|
|
57
|
+
// 轮询间隔定时器
|
|
58
|
+
_defineProperty(this, "queryIntervalTimer", null);
|
|
59
|
+
// 是否已经完成(成功或失败)
|
|
60
|
+
_defineProperty(this, "isFinished", false);
|
|
61
|
+
// 是否正在轮询中
|
|
62
|
+
_defineProperty(this, "isQuerying", false);
|
|
63
|
+
// 当前操作类型
|
|
64
|
+
_defineProperty(this, "currentActionType", null);
|
|
65
|
+
// 当前查询的唯一ID(时间戳),用于防止过期响应被处理
|
|
66
|
+
_defineProperty(this, "currentQueryId", '');
|
|
67
|
+
// 当前执行的唯一ID(时间戳),用于防止旧的请求响应被处理
|
|
68
|
+
_defineProperty(this, "currentRunId", '');
|
|
69
|
+
// 当前查询API
|
|
70
|
+
_defineProperty(this, "currentQueryApi", null);
|
|
71
|
+
this.initOptions = options;
|
|
72
|
+
this.paymentNum = options.paymentNum;
|
|
73
|
+
this.orderId = options.orderId;
|
|
74
|
+
this.deviceId = options.deviceId;
|
|
75
|
+
this.callback = options.callback;
|
|
76
|
+
this.shouldContinue = options.shouldContinue || function () {
|
|
77
|
+
return true;
|
|
78
|
+
};
|
|
79
|
+
this.config = options.config || {};
|
|
80
|
+
|
|
81
|
+
// 初始化日志(只需要初始化一次)
|
|
82
|
+
paymentLog.init(this.paymentNum, {
|
|
83
|
+
orderId: this.orderId,
|
|
84
|
+
deviceId: this.deviceId,
|
|
85
|
+
paymentCode: (options === null || options === void 0 ? void 0 : options.paymentCode) || ''
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* 判断请求是否需要等待轮询结果
|
|
91
|
+
* 1. 有明确错误code且不是超时和支付超时,则直接失败
|
|
92
|
+
* @param code 错误码
|
|
93
|
+
*/
|
|
94
|
+
_createClass(PaymentMethod, [{
|
|
95
|
+
key: "isRequestFailed",
|
|
96
|
+
value: function isRequestFailed(code) {
|
|
97
|
+
return code && "".concat(code) !== PayStatus.Timeout && "".concat(code) !== PayStatus.PayTimeout;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* 清理定时器和请求控制器
|
|
102
|
+
*/
|
|
103
|
+
}, {
|
|
104
|
+
key: "cleanupTimersAndControllers",
|
|
105
|
+
value: function cleanupTimersAndControllers() {
|
|
106
|
+
// 取消主请求
|
|
107
|
+
if (this.controller) {
|
|
108
|
+
this.controller.abort();
|
|
109
|
+
this.controller = null;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// 取消查询请求
|
|
113
|
+
if (this.queryController) {
|
|
114
|
+
this.queryController.abort();
|
|
115
|
+
this.queryController = null;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// 清理所有定时器
|
|
119
|
+
if (this.queryStartTimer) {
|
|
120
|
+
clearTimeout(this.queryStartTimer);
|
|
121
|
+
this.queryStartTimer = null;
|
|
122
|
+
}
|
|
123
|
+
if (this.globalTimeoutTimer) {
|
|
124
|
+
clearTimeout(this.globalTimeoutTimer);
|
|
125
|
+
this.globalTimeoutTimer = null;
|
|
126
|
+
}
|
|
127
|
+
if (this.requestTimeoutTimer) {
|
|
128
|
+
clearTimeout(this.requestTimeoutTimer);
|
|
129
|
+
this.requestTimeoutTimer = null;
|
|
130
|
+
}
|
|
131
|
+
if (this.queryIntervalTimer) {
|
|
132
|
+
clearTimeout(this.queryIntervalTimer);
|
|
133
|
+
this.queryIntervalTimer = null;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* 清理资源并重置状态
|
|
139
|
+
* @param markAsFinished 是否标记为已完成(true: 操作完成; false: 准备新操作)
|
|
140
|
+
*/
|
|
141
|
+
}, {
|
|
142
|
+
key: "clean",
|
|
143
|
+
value: function clean() {
|
|
144
|
+
var markAsFinished = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
145
|
+
console.log('🧹 清理资源', {
|
|
146
|
+
markAsFinished: markAsFinished
|
|
147
|
+
});
|
|
148
|
+
|
|
149
|
+
// 清理定时器和控制器
|
|
150
|
+
this.cleanupTimersAndControllers();
|
|
151
|
+
|
|
152
|
+
// 重置状态标志
|
|
153
|
+
this.isQuerying = false;
|
|
154
|
+
this.isFinished = markAsFinished;
|
|
155
|
+
this.currentQueryApi = null;
|
|
156
|
+
this.currentActionType = null;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* 开始新的操作流程(统一的流程初始化)
|
|
161
|
+
* @param actionType 操作类型
|
|
162
|
+
* @returns 本次流程的唯一ID
|
|
163
|
+
*/
|
|
164
|
+
}, {
|
|
165
|
+
key: "startNewOperation",
|
|
166
|
+
value: function startNewOperation(actionType) {
|
|
167
|
+
// 生成新的流程ID
|
|
168
|
+
var runId = getUuid();
|
|
169
|
+
this.currentRunId = runId;
|
|
170
|
+
paymentLog.addLog({
|
|
171
|
+
title: "\u89E6\u53D1\u65B0\u7684\u64CD\u4F5C\uFF1A".concat(actionType),
|
|
172
|
+
content: {
|
|
173
|
+
actionType: actionType,
|
|
174
|
+
runId: runId
|
|
175
|
+
}
|
|
176
|
+
});
|
|
177
|
+
|
|
178
|
+
// 清理旧流程的资源,准备新流程
|
|
179
|
+
this.clean(false);
|
|
180
|
+
|
|
181
|
+
// 设置当前操作类型
|
|
182
|
+
this.currentActionType = actionType;
|
|
183
|
+
return runId;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* 处理操作过程
|
|
188
|
+
*/
|
|
189
|
+
}, {
|
|
190
|
+
key: "handleOperationProcess",
|
|
191
|
+
value: function handleOperationProcess(res) {
|
|
192
|
+
if (!this.currentActionType) {
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
var actionType = this.currentActionType;
|
|
196
|
+
try {
|
|
197
|
+
this.callback(this, {
|
|
198
|
+
status: EPaymentStatus.Processing,
|
|
199
|
+
actionType: actionType,
|
|
200
|
+
data: res
|
|
201
|
+
});
|
|
202
|
+
} catch (error) {
|
|
203
|
+
console.error('⚠️ 回调执行出错:', error);
|
|
204
|
+
paymentLog.addLog({
|
|
205
|
+
title: '回调执行出错',
|
|
206
|
+
content: error
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* 处理成功结果
|
|
213
|
+
*/
|
|
214
|
+
}, {
|
|
215
|
+
key: "handleOperationSuccess",
|
|
216
|
+
value: function handleOperationSuccess(res) {
|
|
217
|
+
if (this.isFinished || !this.shouldContinue() || !this.currentActionType) {
|
|
218
|
+
paymentLog.addLog({
|
|
219
|
+
title: '操作结果:已完成或不应继续处理,忽略操作成功结果',
|
|
220
|
+
content: {
|
|
221
|
+
actionType: this.currentActionType,
|
|
222
|
+
res: res
|
|
223
|
+
}
|
|
224
|
+
});
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
var actionType = this.currentActionType;
|
|
228
|
+
paymentLog.addLog({
|
|
229
|
+
title: '操作结果:成功',
|
|
230
|
+
content: {
|
|
231
|
+
actionType: actionType,
|
|
232
|
+
res: res
|
|
233
|
+
}
|
|
234
|
+
});
|
|
235
|
+
|
|
236
|
+
// 停止当前操作(清理定时器和请求,标记为已完成)
|
|
237
|
+
this.clean(true);
|
|
238
|
+
|
|
239
|
+
// 执行统一回调(放在最后,避免回调中的错误影响清理)
|
|
240
|
+
try {
|
|
241
|
+
this.callback(this, {
|
|
242
|
+
status: EPaymentStatus.Success,
|
|
243
|
+
actionType: actionType,
|
|
244
|
+
data: res
|
|
245
|
+
});
|
|
246
|
+
} catch (error) {
|
|
247
|
+
console.error('⚠️ 回调执行出错:', error);
|
|
248
|
+
paymentLog.addLog({
|
|
249
|
+
title: '回调执行出错',
|
|
250
|
+
content: error
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* 处理错误(最终失败)
|
|
257
|
+
* @param error 错误信息
|
|
258
|
+
*/
|
|
259
|
+
}, {
|
|
260
|
+
key: "handleOperationError",
|
|
261
|
+
value: function handleOperationError(error) {
|
|
262
|
+
if (this.isFinished || !this.shouldContinue() || !this.currentActionType) {
|
|
263
|
+
console.log("\u26A0\uFE0F \u5DF2\u5B8C\u6210\u6216\u4E0D\u5E94\u7EE7\u7EED\u5904\u7406\uFF0C\u5FFD\u7565\u64CD\u4F5C\u9519\u8BEF");
|
|
264
|
+
return;
|
|
265
|
+
}
|
|
266
|
+
var actionType = this.currentActionType;
|
|
267
|
+
paymentLog.addLog({
|
|
268
|
+
title: '操作结果:失败',
|
|
269
|
+
content: {
|
|
270
|
+
actionType: actionType,
|
|
271
|
+
error: error
|
|
272
|
+
}
|
|
273
|
+
});
|
|
274
|
+
|
|
275
|
+
// 停止当前操作(清理定时器和请求,标记为已完成)
|
|
276
|
+
this.clean(true);
|
|
277
|
+
|
|
278
|
+
// 执行统一回调(放在最后,避免回调中的错误影响清理)
|
|
279
|
+
try {
|
|
280
|
+
this.callback(this, {
|
|
281
|
+
status: EPaymentStatus.Failed,
|
|
282
|
+
actionType: actionType,
|
|
283
|
+
data: error
|
|
284
|
+
});
|
|
285
|
+
} catch (err) {
|
|
286
|
+
console.error('⚠️ 回调执行出错:', err);
|
|
287
|
+
paymentLog.addLog({
|
|
288
|
+
title: '回调执行出错',
|
|
289
|
+
content: err
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
/**
|
|
295
|
+
* 处理接口响应
|
|
296
|
+
*/
|
|
297
|
+
}, {
|
|
298
|
+
key: "handleResponse",
|
|
299
|
+
value: function handleResponse(res) {
|
|
300
|
+
var _res$data;
|
|
301
|
+
if (!this.currentActionType) {
|
|
302
|
+
return;
|
|
303
|
+
}
|
|
304
|
+
var needContinue = true;
|
|
305
|
+
var _ref = (res === null || res === void 0 || (_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.external_unified_response) || {},
|
|
306
|
+
external_unified_status = _ref.external_unified_status;
|
|
307
|
+
// 第三方支付结果:success成功 fail失败 processing处理中
|
|
308
|
+
switch (external_unified_status) {
|
|
309
|
+
case EPaymentStatus.Success:
|
|
310
|
+
this.handleOperationSuccess(res);
|
|
311
|
+
needContinue = false;
|
|
312
|
+
break;
|
|
313
|
+
case EPaymentStatus.Failed:
|
|
314
|
+
this.handleOperationError(res);
|
|
315
|
+
needContinue = false;
|
|
316
|
+
break;
|
|
317
|
+
case EPaymentStatus.Processing:
|
|
318
|
+
default:
|
|
319
|
+
this.handleOperationProcess(res);
|
|
320
|
+
needContinue = true;
|
|
321
|
+
break;
|
|
322
|
+
}
|
|
323
|
+
return needContinue;
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
/**
|
|
327
|
+
* 创建超时 Promise
|
|
328
|
+
*/
|
|
329
|
+
}, {
|
|
330
|
+
key: "createTimeoutPromise",
|
|
331
|
+
value: function createTimeoutPromise(timeoutMs) {
|
|
332
|
+
var _this = this;
|
|
333
|
+
return new Promise(function (_, reject) {
|
|
334
|
+
_this.requestTimeoutTimer = setTimeout(function () {
|
|
335
|
+
console.log("\u23F1\uFE0F \u5355\u6B21\u67E5\u8BE2\u8D85\u65F6\uFF08".concat(timeoutMs / 1000, "\u79D2\uFF09\uFF0C\u5F3A\u5236\u7EC8\u6B62"));
|
|
336
|
+
// 取消请求
|
|
337
|
+
if (_this.queryController) {
|
|
338
|
+
_this.queryController.abort();
|
|
339
|
+
}
|
|
340
|
+
reject(new Error('REQUEST_TIMEOUT'));
|
|
341
|
+
}, timeoutMs);
|
|
342
|
+
});
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
/**
|
|
346
|
+
* 单次查询请求
|
|
347
|
+
*/
|
|
348
|
+
}, {
|
|
349
|
+
key: "performQuery",
|
|
350
|
+
value: (function () {
|
|
351
|
+
var _performQuery = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(actionType) {
|
|
352
|
+
var queryId, signal, _this$initOptions, _res$data2, res, needContinue;
|
|
353
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
354
|
+
while (1) switch (_context.prev = _context.next) {
|
|
355
|
+
case 0:
|
|
356
|
+
if (!(this.isFinished || !this.shouldContinue())) {
|
|
357
|
+
_context.next = 3;
|
|
358
|
+
break;
|
|
359
|
+
}
|
|
360
|
+
paymentLog.addLog({
|
|
361
|
+
title: '查询前置校验:已完成或不应继续处理,取消查询'
|
|
362
|
+
});
|
|
363
|
+
return _context.abrupt("return");
|
|
364
|
+
case 3:
|
|
365
|
+
if (this.currentQueryApi) {
|
|
366
|
+
_context.next = 6;
|
|
367
|
+
break;
|
|
368
|
+
}
|
|
369
|
+
paymentLog.addLog({
|
|
370
|
+
title: '查询API未设置,取消查询'
|
|
371
|
+
});
|
|
372
|
+
return _context.abrupt("return");
|
|
373
|
+
case 6:
|
|
374
|
+
// 清理之前的查询控制器和超时定时器
|
|
375
|
+
if (this.queryController) {
|
|
376
|
+
this.queryController.abort();
|
|
377
|
+
this.queryController = null;
|
|
378
|
+
}
|
|
379
|
+
if (this.requestTimeoutTimer) {
|
|
380
|
+
clearTimeout(this.requestTimeoutTimer);
|
|
381
|
+
this.requestTimeoutTimer = null;
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
// 生成新的查询ID(使用时间戳确保全局唯一)
|
|
385
|
+
queryId = getUuid();
|
|
386
|
+
this.currentQueryId = queryId;
|
|
387
|
+
|
|
388
|
+
// 创建新的控制器
|
|
389
|
+
this.queryController = new AbortController();
|
|
390
|
+
signal = this.queryController.signal;
|
|
391
|
+
paymentLog.addLog({
|
|
392
|
+
title: '查询轮询:开始单次查询'
|
|
393
|
+
});
|
|
394
|
+
_context.prev = 13;
|
|
395
|
+
_context.next = 16;
|
|
396
|
+
return Promise.race([this.currentQueryApi({
|
|
397
|
+
order_id: this.orderId,
|
|
398
|
+
unique_payment_number: this.paymentNum,
|
|
399
|
+
payment_code: (_this$initOptions = this.initOptions) === null || _this$initOptions === void 0 ? void 0 : _this$initOptions.paymentCode,
|
|
400
|
+
request_version: queryId,
|
|
401
|
+
is_outer_response_info: 1
|
|
402
|
+
}, {
|
|
403
|
+
signal: signal
|
|
404
|
+
}), this.createTimeoutPromise(REQUEST_TIMEOUT)]);
|
|
405
|
+
case 16:
|
|
406
|
+
res = _context.sent;
|
|
407
|
+
paymentLog.addLog({
|
|
408
|
+
title: '查询轮询:单次查询返回',
|
|
409
|
+
content: {
|
|
410
|
+
actionType: actionType,
|
|
411
|
+
res: res
|
|
412
|
+
}
|
|
413
|
+
});
|
|
414
|
+
|
|
415
|
+
// 清理超时定时器
|
|
416
|
+
if (this.requestTimeoutTimer) {
|
|
417
|
+
clearTimeout(this.requestTimeoutTimer);
|
|
418
|
+
this.requestTimeoutTimer = null;
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
// 检查是否是过期的响应(新查询的 ID 一定大于旧查询)
|
|
422
|
+
if (!((res === null || res === void 0 || (_res$data2 = res.data) === null || _res$data2 === void 0 ? void 0 : _res$data2.request_version) !== this.currentQueryId)) {
|
|
423
|
+
_context.next = 22;
|
|
424
|
+
break;
|
|
425
|
+
}
|
|
426
|
+
paymentLog.addLog({
|
|
427
|
+
title: '查询轮询结果:过期的查询响应,忽略'
|
|
428
|
+
});
|
|
429
|
+
return _context.abrupt("return");
|
|
430
|
+
case 22:
|
|
431
|
+
if (!(this.isFinished || !this.shouldContinue())) {
|
|
432
|
+
_context.next = 25;
|
|
433
|
+
break;
|
|
434
|
+
}
|
|
435
|
+
paymentLog.addLog({
|
|
436
|
+
title: '查询轮询结果:已完成或不应继续处理'
|
|
437
|
+
});
|
|
438
|
+
return _context.abrupt("return");
|
|
439
|
+
case 25:
|
|
440
|
+
if (!(res && "".concat(res.code) === '200')) {
|
|
441
|
+
_context.next = 30;
|
|
442
|
+
break;
|
|
443
|
+
}
|
|
444
|
+
paymentLog.addLog({
|
|
445
|
+
title: '查询轮询结果:查询成功'
|
|
446
|
+
});
|
|
447
|
+
needContinue = this.handleResponse(res);
|
|
448
|
+
if (needContinue) {
|
|
449
|
+
this.scheduleNextQuery(actionType);
|
|
450
|
+
}
|
|
451
|
+
return _context.abrupt("return");
|
|
452
|
+
case 30:
|
|
453
|
+
// 查询返回失败但没有明确code或超时code,继续轮询
|
|
454
|
+
if (this.isRequestFailed(res === null || res === void 0 ? void 0 : res.code)) {
|
|
455
|
+
// 有明确错误code,停止轮询
|
|
456
|
+
paymentLog.addLog({
|
|
457
|
+
title: '查询轮询结果:有明确错误code,停止轮询',
|
|
458
|
+
content: res
|
|
459
|
+
});
|
|
460
|
+
this.handleOperationError(res);
|
|
461
|
+
} else {
|
|
462
|
+
paymentLog.addLog({
|
|
463
|
+
title: '查询轮询结果:查询返回失败但没有明确code或超时code,继续轮询',
|
|
464
|
+
content: res
|
|
465
|
+
});
|
|
466
|
+
this.scheduleNextQuery(actionType);
|
|
467
|
+
}
|
|
468
|
+
_context.next = 46;
|
|
469
|
+
break;
|
|
470
|
+
case 33:
|
|
471
|
+
_context.prev = 33;
|
|
472
|
+
_context.t0 = _context["catch"](13);
|
|
473
|
+
// 清理超时定时器
|
|
474
|
+
if (this.requestTimeoutTimer) {
|
|
475
|
+
clearTimeout(this.requestTimeoutTimer);
|
|
476
|
+
this.requestTimeoutTimer = null;
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
// 检查是否是过期的响应(新查询的 ID 一定大于旧查询)
|
|
480
|
+
if (!(queryId !== this.currentQueryId)) {
|
|
481
|
+
_context.next = 39;
|
|
482
|
+
break;
|
|
483
|
+
}
|
|
484
|
+
paymentLog.addLog({
|
|
485
|
+
title: '查询轮询结果:error-过期的查询异常,忽略'
|
|
486
|
+
});
|
|
487
|
+
return _context.abrupt("return");
|
|
488
|
+
case 39:
|
|
489
|
+
if (!(this.isFinished || !this.shouldContinue())) {
|
|
490
|
+
_context.next = 41;
|
|
491
|
+
break;
|
|
492
|
+
}
|
|
493
|
+
return _context.abrupt("return");
|
|
494
|
+
case 41:
|
|
495
|
+
if (!((_context.t0 === null || _context.t0 === void 0 ? void 0 : _context.t0.name) === 'AbortError' || (_context.t0 === null || _context.t0 === void 0 ? void 0 : _context.t0.message) === 'REQUEST_TIMEOUT')) {
|
|
496
|
+
_context.next = 45;
|
|
497
|
+
break;
|
|
498
|
+
}
|
|
499
|
+
paymentLog.addLog({
|
|
500
|
+
title: '查询轮询结果:error-请求被取消或超时,继续轮询'
|
|
501
|
+
});
|
|
502
|
+
this.scheduleNextQuery(actionType);
|
|
503
|
+
return _context.abrupt("return");
|
|
504
|
+
case 45:
|
|
505
|
+
// 无明确code或者code是超时或支付超时,继续轮询
|
|
506
|
+
if (this.isRequestFailed(_context.t0 === null || _context.t0 === void 0 ? void 0 : _context.t0.code)) {
|
|
507
|
+
paymentLog.addLog({
|
|
508
|
+
title: '查询轮询结果:error-有明确错误code,停止轮询',
|
|
509
|
+
content: _context.t0
|
|
510
|
+
});
|
|
511
|
+
this.handleOperationError(_context.t0);
|
|
512
|
+
} else {
|
|
513
|
+
paymentLog.addLog({
|
|
514
|
+
title: '查询轮询结果:error-无明确code或者code不是超时,继续轮询',
|
|
515
|
+
content: _context.t0
|
|
516
|
+
});
|
|
517
|
+
this.scheduleNextQuery(actionType);
|
|
518
|
+
}
|
|
519
|
+
case 46:
|
|
520
|
+
case "end":
|
|
521
|
+
return _context.stop();
|
|
522
|
+
}
|
|
523
|
+
}, _callee, this, [[13, 33]]);
|
|
524
|
+
}));
|
|
525
|
+
function performQuery(_x) {
|
|
526
|
+
return _performQuery.apply(this, arguments);
|
|
527
|
+
}
|
|
528
|
+
return performQuery;
|
|
529
|
+
}()
|
|
530
|
+
/**
|
|
531
|
+
* 安排下一次查询
|
|
532
|
+
*/
|
|
533
|
+
)
|
|
534
|
+
}, {
|
|
535
|
+
key: "scheduleNextQuery",
|
|
536
|
+
value: function scheduleNextQuery(actionType) {
|
|
537
|
+
var _this$config,
|
|
538
|
+
_this2 = this;
|
|
539
|
+
if (this.isFinished || !this.shouldContinue()) {
|
|
540
|
+
return;
|
|
541
|
+
}
|
|
542
|
+
if (this.queryIntervalTimer) {
|
|
543
|
+
clearTimeout(this.queryIntervalTimer);
|
|
544
|
+
}
|
|
545
|
+
if (((_this$config = this.config) === null || _this$config === void 0 ? void 0 : _this$config.hasQueryInterval) === false) {
|
|
546
|
+
paymentLog.addLog({
|
|
547
|
+
title: '查询轮询:立即安排下一次查询',
|
|
548
|
+
content: {
|
|
549
|
+
actionType: actionType
|
|
550
|
+
}
|
|
551
|
+
});
|
|
552
|
+
this.performQuery(actionType);
|
|
553
|
+
} else {
|
|
554
|
+
this.queryIntervalTimer = setTimeout(function () {
|
|
555
|
+
paymentLog.addLog({
|
|
556
|
+
title: '查询轮询:安排下一次查询',
|
|
557
|
+
content: {
|
|
558
|
+
actionType: actionType
|
|
559
|
+
}
|
|
560
|
+
});
|
|
561
|
+
_this2.performQuery(actionType);
|
|
562
|
+
}, QUERY_INTERVAL);
|
|
563
|
+
}
|
|
564
|
+
}
|
|
565
|
+
|
|
566
|
+
/**
|
|
567
|
+
* 开始轮询
|
|
568
|
+
*/
|
|
569
|
+
}, {
|
|
570
|
+
key: "startQuery",
|
|
571
|
+
value: function startQuery(actionType) {
|
|
572
|
+
var _this3 = this;
|
|
573
|
+
if (this.isFinished || !this.shouldContinue() || this.isQuerying) {
|
|
574
|
+
return;
|
|
575
|
+
}
|
|
576
|
+
this.isQuerying = true;
|
|
577
|
+
paymentLog.addLog({
|
|
578
|
+
title: '开始轮询',
|
|
579
|
+
content: {
|
|
580
|
+
actionType: actionType
|
|
581
|
+
}
|
|
582
|
+
});
|
|
583
|
+
// 设置轮询的全局超时(2分钟,从开始轮询时计算)
|
|
584
|
+
this.globalTimeoutTimer = setTimeout(function () {
|
|
585
|
+
if (_this3.isFinished) {
|
|
586
|
+
return;
|
|
587
|
+
}
|
|
588
|
+
paymentLog.addLog({
|
|
589
|
+
title: '轮询全局超时(2分钟),终止所有请求',
|
|
590
|
+
content: {
|
|
591
|
+
actionType: actionType
|
|
592
|
+
}
|
|
593
|
+
});
|
|
594
|
+
_this3.handleOperationError({
|
|
595
|
+
code: PayStatus.Timeout,
|
|
596
|
+
message: '交易超时'
|
|
597
|
+
});
|
|
598
|
+
}, GLOBAL_TIMEOUT);
|
|
599
|
+
this.performQuery(actionType);
|
|
600
|
+
}
|
|
601
|
+
|
|
602
|
+
/**
|
|
603
|
+
* 获取操作API和查询API
|
|
604
|
+
*/
|
|
605
|
+
}, {
|
|
606
|
+
key: "getActionApi",
|
|
607
|
+
value: function getActionApi(actionType) {
|
|
608
|
+
// 操作API
|
|
609
|
+
var actionApi = null;
|
|
610
|
+
// 查询API
|
|
611
|
+
var queryApi = null;
|
|
612
|
+
switch (actionType) {
|
|
613
|
+
case ActionType.Pay:
|
|
614
|
+
actionApi = AGPTPayApi;
|
|
615
|
+
queryApi = AGPTQueryApi;
|
|
616
|
+
break;
|
|
617
|
+
case ActionType.PayAction:
|
|
618
|
+
actionApi = AGPTActionApi;
|
|
619
|
+
queryApi = AGPTQueryApi;
|
|
620
|
+
break;
|
|
621
|
+
case ActionType.PayQuery:
|
|
622
|
+
queryApi = AGPTQueryApi;
|
|
623
|
+
break;
|
|
624
|
+
case ActionType.Refund:
|
|
625
|
+
actionApi = AGPTRefundApi;
|
|
626
|
+
queryApi = AGPTRefundQueryApi;
|
|
627
|
+
break;
|
|
628
|
+
case ActionType.RefundAction:
|
|
629
|
+
actionApi = AGPTRefundActionApi;
|
|
630
|
+
queryApi = AGPTRefundQueryApi;
|
|
631
|
+
break;
|
|
632
|
+
case ActionType.RefundQuery:
|
|
633
|
+
queryApi = AGPTRefundQueryApi;
|
|
634
|
+
break;
|
|
635
|
+
}
|
|
636
|
+
return {
|
|
637
|
+
actionApi: actionApi,
|
|
638
|
+
queryApi: queryApi
|
|
639
|
+
};
|
|
640
|
+
}
|
|
641
|
+
|
|
642
|
+
/**
|
|
643
|
+
* 执行纯查询操作(不需要先调用支付/退款接口)
|
|
644
|
+
*/
|
|
645
|
+
}, {
|
|
646
|
+
key: "runQuery",
|
|
647
|
+
value: (function () {
|
|
648
|
+
var _runQuery = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(options) {
|
|
649
|
+
var actionType, _this$getActionApi, queryApi, error;
|
|
650
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
651
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
652
|
+
case 0:
|
|
653
|
+
actionType = options.actionType; // 开始新的操作流程
|
|
654
|
+
this.startNewOperation(actionType);
|
|
655
|
+
|
|
656
|
+
// 根据操作类型选择查询API
|
|
657
|
+
_this$getActionApi = this.getActionApi(actionType), queryApi = _this$getActionApi.queryApi;
|
|
658
|
+
if (queryApi) {
|
|
659
|
+
_context2.next = 7;
|
|
660
|
+
break;
|
|
661
|
+
}
|
|
662
|
+
error = new Error("".concat(actionType, "\u67E5\u8BE2\u63A5\u53E3\u4E0D\u5B58\u5728"));
|
|
663
|
+
this.handleOperationError(error);
|
|
664
|
+
return _context2.abrupt("return");
|
|
665
|
+
case 7:
|
|
666
|
+
// 设置当前查询API
|
|
667
|
+
this.currentQueryApi = queryApi;
|
|
668
|
+
|
|
669
|
+
// 立即开始轮询(不需要等待10秒)
|
|
670
|
+
paymentLog.addLog({
|
|
671
|
+
title: "\u5F00\u59CB".concat(actionType, "\u67E5\u8BE2\u8F6E\u8BE2")
|
|
672
|
+
});
|
|
673
|
+
this.startQuery(actionType);
|
|
674
|
+
case 10:
|
|
675
|
+
case "end":
|
|
676
|
+
return _context2.stop();
|
|
677
|
+
}
|
|
678
|
+
}, _callee2, this);
|
|
679
|
+
}));
|
|
680
|
+
function runQuery(_x2) {
|
|
681
|
+
return _runQuery.apply(this, arguments);
|
|
682
|
+
}
|
|
683
|
+
return runQuery;
|
|
684
|
+
}()
|
|
685
|
+
/**
|
|
686
|
+
* 执行操作的核心方法
|
|
687
|
+
*/
|
|
688
|
+
)
|
|
689
|
+
}, {
|
|
690
|
+
key: "run",
|
|
691
|
+
value: (function () {
|
|
692
|
+
var _run = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(runOptions) {
|
|
693
|
+
var _this4 = this;
|
|
694
|
+
var actionType, params, runId, _ref2, pay_param_base64, otherParams, _this$getActionApi2, actionApi, queryApi, error, signal, _res$data3, res, needContinue;
|
|
695
|
+
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
696
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
697
|
+
case 0:
|
|
698
|
+
actionType = runOptions.actionType, params = runOptions.params; // 开始新的操作流程
|
|
699
|
+
runId = this.startNewOperation(actionType); // 记录请求参数(过滤敏感信息)
|
|
700
|
+
_ref2 = params || {}, pay_param_base64 = _ref2.pay_param_base64, otherParams = _objectWithoutProperties(_ref2, _excluded);
|
|
701
|
+
if (Object.keys(otherParams).length > 0) {
|
|
702
|
+
paymentLog.addLog({
|
|
703
|
+
title: '请求参数',
|
|
704
|
+
content: {
|
|
705
|
+
params: otherParams
|
|
706
|
+
}
|
|
707
|
+
});
|
|
708
|
+
}
|
|
709
|
+
|
|
710
|
+
// 根据操作类型选择对应的API和查询API
|
|
711
|
+
_this$getActionApi2 = this.getActionApi(actionType), actionApi = _this$getActionApi2.actionApi, queryApi = _this$getActionApi2.queryApi;
|
|
712
|
+
if (actionApi) {
|
|
713
|
+
_context3.next = 9;
|
|
714
|
+
break;
|
|
715
|
+
}
|
|
716
|
+
error = new Error("".concat(actionType, "\u63A5\u53E3\u4E0D\u5B58\u5728"));
|
|
717
|
+
this.handleOperationError(error);
|
|
718
|
+
return _context3.abrupt("return");
|
|
719
|
+
case 9:
|
|
720
|
+
// 设置当前查询API
|
|
721
|
+
this.currentQueryApi = queryApi;
|
|
722
|
+
|
|
723
|
+
// 10秒后开始轮询(全局超时将在开始轮询时启动)
|
|
724
|
+
if (queryApi !== null) {
|
|
725
|
+
this.queryStartTimer = setTimeout(function () {
|
|
726
|
+
paymentLog.addLog({
|
|
727
|
+
title: '操作后10秒开始轮询',
|
|
728
|
+
content: {
|
|
729
|
+
actionType: actionType
|
|
730
|
+
}
|
|
731
|
+
});
|
|
732
|
+
_this4.startQuery(actionType);
|
|
733
|
+
}, QUERY_START_DELAY);
|
|
734
|
+
}
|
|
735
|
+
|
|
736
|
+
// 创建主请求控制器
|
|
737
|
+
this.controller = new AbortController();
|
|
738
|
+
signal = this.controller.signal;
|
|
739
|
+
_context3.prev = 13;
|
|
740
|
+
paymentLog.addLog({
|
|
741
|
+
title: "\u53D1\u8D77".concat(actionType, "\u8BF7\u6C42"),
|
|
742
|
+
content: {
|
|
743
|
+
actionType: actionType,
|
|
744
|
+
params: params
|
|
745
|
+
}
|
|
746
|
+
});
|
|
747
|
+
_context3.next = 17;
|
|
748
|
+
return actionApi(_objectSpread(_objectSpread({}, params), {}, {
|
|
749
|
+
request_version: runId,
|
|
750
|
+
is_outer_response_info: 1
|
|
751
|
+
}), {
|
|
752
|
+
signal: signal
|
|
753
|
+
});
|
|
754
|
+
case 17:
|
|
755
|
+
res = _context3.sent;
|
|
756
|
+
paymentLog.addLog({
|
|
757
|
+
title: '请求返回',
|
|
758
|
+
content: {
|
|
759
|
+
params: params,
|
|
760
|
+
actionType: actionType,
|
|
761
|
+
res: res
|
|
762
|
+
}
|
|
763
|
+
});
|
|
764
|
+
|
|
765
|
+
// 检查是否是过期的响应(新执行的 ID 一定大于旧执行)
|
|
766
|
+
if (!(runId != (res === null || res === void 0 || (_res$data3 = res.data) === null || _res$data3 === void 0 ? void 0 : _res$data3.request_version))) {
|
|
767
|
+
_context3.next = 22;
|
|
768
|
+
break;
|
|
769
|
+
}
|
|
770
|
+
paymentLog.addLog({
|
|
771
|
+
title: '响应过期,忽略',
|
|
772
|
+
content: {
|
|
773
|
+
actionType: actionType
|
|
774
|
+
}
|
|
775
|
+
});
|
|
776
|
+
return _context3.abrupt("return");
|
|
777
|
+
case 22:
|
|
778
|
+
if (!(this.isFinished || !this.shouldContinue())) {
|
|
779
|
+
_context3.next = 25;
|
|
780
|
+
break;
|
|
781
|
+
}
|
|
782
|
+
paymentLog.addLog({
|
|
783
|
+
title: '返回时已完成或不应继续处理',
|
|
784
|
+
content: {
|
|
785
|
+
actionType: actionType
|
|
786
|
+
}
|
|
787
|
+
});
|
|
788
|
+
return _context3.abrupt("return");
|
|
789
|
+
case 25:
|
|
790
|
+
if (!(res && "".concat(res.code) === '200')) {
|
|
791
|
+
_context3.next = 30;
|
|
792
|
+
break;
|
|
793
|
+
}
|
|
794
|
+
paymentLog.addLog({
|
|
795
|
+
title: "".concat(actionType, "\u63A5\u53E3\u6210\u529F"),
|
|
796
|
+
content: {
|
|
797
|
+
actionType: actionType,
|
|
798
|
+
res: res
|
|
799
|
+
}
|
|
800
|
+
});
|
|
801
|
+
needContinue = this.handleResponse(res);
|
|
802
|
+
if (needContinue) {
|
|
803
|
+
// 如果状态是processing,则开始轮询
|
|
804
|
+
paymentLog.addLog({
|
|
805
|
+
title: "".concat(actionType, "\u63A5\u53E3\u8FD4\u56DEprocessing\uFF0C\u5F00\u59CB\u8F6E\u8BE2")
|
|
806
|
+
});
|
|
807
|
+
if (this.queryStartTimer) {
|
|
808
|
+
clearTimeout(this.queryStartTimer);
|
|
809
|
+
this.queryStartTimer = null;
|
|
810
|
+
}
|
|
811
|
+
this.startQuery(actionType);
|
|
812
|
+
}
|
|
813
|
+
return _context3.abrupt("return");
|
|
814
|
+
case 30:
|
|
815
|
+
// 接口返回失败
|
|
816
|
+
// 如果有明确的错误code且不是超时,则直接失败
|
|
817
|
+
if (this.isRequestFailed(res === null || res === void 0 ? void 0 : res.code)) {
|
|
818
|
+
paymentLog.addLog({
|
|
819
|
+
title: "".concat(actionType, "\u63A5\u53E3\u8FD4\u56DE\u5931\u8D25"),
|
|
820
|
+
content: {
|
|
821
|
+
actionType: actionType,
|
|
822
|
+
res: res
|
|
823
|
+
}
|
|
824
|
+
});
|
|
825
|
+
this.handleOperationError(res);
|
|
826
|
+
} else {
|
|
827
|
+
paymentLog.addLog({
|
|
828
|
+
title: "".concat(actionType, "\u8D85\u65F6\u6216\u65E0\u660E\u786E\u9519\u8BEF\uFF0C\u7B49\u5F85\u8F6E\u8BE2\u7ED3\u679C"),
|
|
829
|
+
content: {
|
|
830
|
+
actionType: actionType,
|
|
831
|
+
res: res
|
|
832
|
+
}
|
|
833
|
+
});
|
|
834
|
+
// 直接开始轮询,不等待10秒,startQuery内部会处理竞态问题
|
|
835
|
+
if (this.queryStartTimer) {
|
|
836
|
+
clearTimeout(this.queryStartTimer);
|
|
837
|
+
this.queryStartTimer = null;
|
|
838
|
+
}
|
|
839
|
+
this.startQuery(actionType);
|
|
840
|
+
}
|
|
841
|
+
_context3.next = 42;
|
|
842
|
+
break;
|
|
843
|
+
case 33:
|
|
844
|
+
_context3.prev = 33;
|
|
845
|
+
_context3.t0 = _context3["catch"](13);
|
|
846
|
+
if (!(runId !== this.currentRunId)) {
|
|
847
|
+
_context3.next = 38;
|
|
848
|
+
break;
|
|
849
|
+
}
|
|
850
|
+
paymentLog.addLog({
|
|
851
|
+
title: '响应过期,忽略',
|
|
852
|
+
content: {
|
|
853
|
+
actionType: actionType
|
|
854
|
+
}
|
|
855
|
+
});
|
|
856
|
+
return _context3.abrupt("return");
|
|
857
|
+
case 38:
|
|
858
|
+
if (!(this.isFinished || !this.shouldContinue())) {
|
|
859
|
+
_context3.next = 41;
|
|
860
|
+
break;
|
|
861
|
+
}
|
|
862
|
+
paymentLog.addLog({
|
|
863
|
+
title: '异常时已完成或不应继续处理',
|
|
864
|
+
content: {
|
|
865
|
+
actionType: actionType
|
|
866
|
+
}
|
|
867
|
+
});
|
|
868
|
+
return _context3.abrupt("return");
|
|
869
|
+
case 41:
|
|
870
|
+
// 接口异常
|
|
871
|
+
// 如果有明确的错误code且不是超时,则直接失败
|
|
872
|
+
if (this.isRequestFailed(_context3.t0 === null || _context3.t0 === void 0 ? void 0 : _context3.t0.code)) {
|
|
873
|
+
paymentLog.addLog({
|
|
874
|
+
title: "".concat(actionType, "\u63A5\u53E3\u5F02\u5E38"),
|
|
875
|
+
content: {
|
|
876
|
+
actionType: actionType,
|
|
877
|
+
error: _context3.t0
|
|
878
|
+
}
|
|
879
|
+
});
|
|
880
|
+
this.handleOperationError(_context3.t0);
|
|
881
|
+
} else {
|
|
882
|
+
paymentLog.addLog({
|
|
883
|
+
title: "".concat(actionType, "\u8D85\u65F6\u6216\u65E0\u660E\u786E\u9519\u8BEF\uFF0C\u7B49\u5F85\u8F6E\u8BE2\u7ED3\u679C"),
|
|
884
|
+
content: {
|
|
885
|
+
actionType: actionType,
|
|
886
|
+
error: _context3.t0
|
|
887
|
+
}
|
|
888
|
+
});
|
|
889
|
+
}
|
|
890
|
+
case 42:
|
|
891
|
+
case "end":
|
|
892
|
+
return _context3.stop();
|
|
893
|
+
}
|
|
894
|
+
}, _callee3, this, [[13, 33]]);
|
|
895
|
+
}));
|
|
896
|
+
function run(_x3) {
|
|
897
|
+
return _run.apply(this, arguments);
|
|
898
|
+
}
|
|
899
|
+
return run;
|
|
900
|
+
}()
|
|
901
|
+
/**
|
|
902
|
+
* 执行操作
|
|
903
|
+
*/
|
|
904
|
+
)
|
|
905
|
+
}, {
|
|
906
|
+
key: "runAction",
|
|
907
|
+
value: (function () {
|
|
908
|
+
var _runAction = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(actionOptions) {
|
|
909
|
+
var actionType, params, runActionId, _ref3, pay_param_base64, otherParams, _this$getActionApi3, actionApi, queryApi, error, signal, _res$data4, res;
|
|
910
|
+
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
911
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
912
|
+
case 0:
|
|
913
|
+
actionType = actionOptions.actionType, params = actionOptions.params; // 开始新的操作流程
|
|
914
|
+
runActionId = this.startNewOperation(actionType); // 记录请求参数(过滤敏感信息)
|
|
915
|
+
_ref3 = params || {}, pay_param_base64 = _ref3.pay_param_base64, otherParams = _objectWithoutProperties(_ref3, _excluded2);
|
|
916
|
+
if (Object.keys(otherParams).length > 0) {
|
|
917
|
+
paymentLog.addLog({
|
|
918
|
+
title: '请求参数',
|
|
919
|
+
content: {
|
|
920
|
+
params: otherParams
|
|
921
|
+
}
|
|
922
|
+
});
|
|
923
|
+
}
|
|
924
|
+
|
|
925
|
+
// 根据操作类型选择对应的API和查询API
|
|
926
|
+
_this$getActionApi3 = this.getActionApi(actionType), actionApi = _this$getActionApi3.actionApi, queryApi = _this$getActionApi3.queryApi;
|
|
927
|
+
if (actionApi) {
|
|
928
|
+
_context4.next = 9;
|
|
929
|
+
break;
|
|
930
|
+
}
|
|
931
|
+
error = new Error("".concat(actionType, "\u64CD\u4F5C\u63A5\u53E3\u4E0D\u5B58\u5728"));
|
|
932
|
+
this.handleOperationError(error);
|
|
933
|
+
return _context4.abrupt("return");
|
|
934
|
+
case 9:
|
|
935
|
+
this.currentQueryApi = queryApi;
|
|
936
|
+
// 创建主请求控制器
|
|
937
|
+
this.controller = new AbortController();
|
|
938
|
+
signal = this.controller.signal; // action行为无需使用接口结果,只要等接口回来开启轮询即可
|
|
939
|
+
_context4.prev = 12;
|
|
940
|
+
_context4.next = 15;
|
|
941
|
+
return actionApi(_objectSpread(_objectSpread({}, params || {}), {}, {
|
|
942
|
+
request_version: runActionId,
|
|
943
|
+
is_outer_response_info: 1
|
|
944
|
+
}), {
|
|
945
|
+
signal: signal
|
|
946
|
+
});
|
|
947
|
+
case 15:
|
|
948
|
+
res = _context4.sent;
|
|
949
|
+
if (!(this.isFinished || !this.shouldContinue())) {
|
|
950
|
+
_context4.next = 19;
|
|
951
|
+
break;
|
|
952
|
+
}
|
|
953
|
+
paymentLog.addLog({
|
|
954
|
+
title: 'Action返回时已完成或不应继续处理,忽略',
|
|
955
|
+
content: {
|
|
956
|
+
actionType: actionType
|
|
957
|
+
}
|
|
958
|
+
});
|
|
959
|
+
return _context4.abrupt("return");
|
|
960
|
+
case 19:
|
|
961
|
+
if (!(runActionId !== (res === null || res === void 0 || (_res$data4 = res.data) === null || _res$data4 === void 0 ? void 0 : _res$data4.request_version))) {
|
|
962
|
+
_context4.next = 22;
|
|
963
|
+
break;
|
|
964
|
+
}
|
|
965
|
+
paymentLog.addLog({
|
|
966
|
+
title: 'Action响应过期,忽略',
|
|
967
|
+
content: {
|
|
968
|
+
actionType: actionType
|
|
969
|
+
}
|
|
970
|
+
});
|
|
971
|
+
return _context4.abrupt("return");
|
|
972
|
+
case 22:
|
|
973
|
+
paymentLog.addLog({
|
|
974
|
+
title: 'Action请求返回,开始轮询',
|
|
975
|
+
content: {
|
|
976
|
+
actionType: actionType
|
|
977
|
+
}
|
|
978
|
+
});
|
|
979
|
+
this.startQuery(actionType);
|
|
980
|
+
_context4.next = 36;
|
|
981
|
+
break;
|
|
982
|
+
case 26:
|
|
983
|
+
_context4.prev = 26;
|
|
984
|
+
_context4.t0 = _context4["catch"](12);
|
|
985
|
+
if (!(this.isFinished || !this.shouldContinue())) {
|
|
986
|
+
_context4.next = 31;
|
|
987
|
+
break;
|
|
988
|
+
}
|
|
989
|
+
paymentLog.addLog({
|
|
990
|
+
title: 'Action异常时已完成或不应继续处理,忽略',
|
|
991
|
+
content: {
|
|
992
|
+
actionType: actionType
|
|
993
|
+
}
|
|
994
|
+
});
|
|
995
|
+
return _context4.abrupt("return");
|
|
996
|
+
case 31:
|
|
997
|
+
if (!(runActionId !== this.currentRunId)) {
|
|
998
|
+
_context4.next = 34;
|
|
999
|
+
break;
|
|
1000
|
+
}
|
|
1001
|
+
paymentLog.addLog({
|
|
1002
|
+
title: 'Action响应过期,忽略',
|
|
1003
|
+
content: {
|
|
1004
|
+
actionType: actionType
|
|
1005
|
+
}
|
|
1006
|
+
});
|
|
1007
|
+
return _context4.abrupt("return");
|
|
1008
|
+
case 34:
|
|
1009
|
+
paymentLog.addLog({
|
|
1010
|
+
title: 'Action请求异常,开始轮询',
|
|
1011
|
+
content: {
|
|
1012
|
+
actionType: actionType,
|
|
1013
|
+
error: _context4.t0
|
|
1014
|
+
}
|
|
1015
|
+
});
|
|
1016
|
+
this.startQuery(actionType);
|
|
1017
|
+
case 36:
|
|
1018
|
+
case "end":
|
|
1019
|
+
return _context4.stop();
|
|
1020
|
+
}
|
|
1021
|
+
}, _callee4, this, [[12, 26]]);
|
|
1022
|
+
}));
|
|
1023
|
+
function runAction(_x4) {
|
|
1024
|
+
return _runAction.apply(this, arguments);
|
|
1025
|
+
}
|
|
1026
|
+
return runAction;
|
|
1027
|
+
}()
|
|
1028
|
+
/**
|
|
1029
|
+
* 支付
|
|
1030
|
+
* @param params 支付参数
|
|
1031
|
+
*/
|
|
1032
|
+
)
|
|
1033
|
+
}, {
|
|
1034
|
+
key: "pay",
|
|
1035
|
+
value: function pay(params) {
|
|
1036
|
+
this.run({
|
|
1037
|
+
actionType: ActionType.Pay,
|
|
1038
|
+
params: params
|
|
1039
|
+
});
|
|
1040
|
+
}
|
|
1041
|
+
|
|
1042
|
+
/**
|
|
1043
|
+
* 支付取消
|
|
1044
|
+
* @param params 取消参数
|
|
1045
|
+
*/
|
|
1046
|
+
}, {
|
|
1047
|
+
key: "payAction",
|
|
1048
|
+
value: function payAction(params) {
|
|
1049
|
+
this.runAction({
|
|
1050
|
+
actionType: ActionType.PayAction,
|
|
1051
|
+
params: params
|
|
1052
|
+
});
|
|
1053
|
+
}
|
|
1054
|
+
|
|
1055
|
+
/**
|
|
1056
|
+
* 退款
|
|
1057
|
+
* @param params 退款参数
|
|
1058
|
+
*/
|
|
1059
|
+
}, {
|
|
1060
|
+
key: "refund",
|
|
1061
|
+
value: function refund(params) {
|
|
1062
|
+
this.run({
|
|
1063
|
+
actionType: ActionType.Refund,
|
|
1064
|
+
params: params
|
|
1065
|
+
});
|
|
1066
|
+
}
|
|
1067
|
+
|
|
1068
|
+
/**
|
|
1069
|
+
* 退款取消
|
|
1070
|
+
* @param params 取消参数
|
|
1071
|
+
*/
|
|
1072
|
+
}, {
|
|
1073
|
+
key: "refundAction",
|
|
1074
|
+
value: function refundAction(params) {
|
|
1075
|
+
this.runAction({
|
|
1076
|
+
actionType: ActionType.RefundAction,
|
|
1077
|
+
params: params
|
|
1078
|
+
});
|
|
1079
|
+
}
|
|
1080
|
+
|
|
1081
|
+
/**
|
|
1082
|
+
* 支付查询(直接查询,带2分钟超时和轮询机制)
|
|
1083
|
+
*/
|
|
1084
|
+
}, {
|
|
1085
|
+
key: "payQuery",
|
|
1086
|
+
value: function payQuery() {
|
|
1087
|
+
this.runQuery({
|
|
1088
|
+
actionType: ActionType.PayQuery
|
|
1089
|
+
});
|
|
1090
|
+
}
|
|
1091
|
+
|
|
1092
|
+
/**
|
|
1093
|
+
* 退款查询(直接查询,带2分钟超时和轮询机制)
|
|
1094
|
+
*/
|
|
1095
|
+
}, {
|
|
1096
|
+
key: "refundQuery",
|
|
1097
|
+
value: function refundQuery() {
|
|
1098
|
+
this.runQuery({
|
|
1099
|
+
actionType: ActionType.RefundQuery
|
|
1100
|
+
});
|
|
1101
|
+
}
|
|
1102
|
+
|
|
1103
|
+
/**
|
|
1104
|
+
* 停止操作,后续依然可以重新发起操作
|
|
1105
|
+
*/
|
|
1106
|
+
}, {
|
|
1107
|
+
key: "stop",
|
|
1108
|
+
value: function stop() {
|
|
1109
|
+
paymentLog.addLog({
|
|
1110
|
+
title: '停止操作',
|
|
1111
|
+
content: {
|
|
1112
|
+
actionType: this.currentActionType
|
|
1113
|
+
}
|
|
1114
|
+
});
|
|
1115
|
+
this.clean(true);
|
|
1116
|
+
}
|
|
1117
|
+
|
|
1118
|
+
/**
|
|
1119
|
+
* 销毁实例(完全清理并上传日志)
|
|
1120
|
+
* 注意:销毁后实例不可再使用
|
|
1121
|
+
*/
|
|
1122
|
+
}, {
|
|
1123
|
+
key: "destroy",
|
|
1124
|
+
value: function destroy() {
|
|
1125
|
+
paymentLog.addLog({
|
|
1126
|
+
title: '销毁实例,完成所有流程'
|
|
1127
|
+
});
|
|
1128
|
+
|
|
1129
|
+
// 清理资源并标记为已完成
|
|
1130
|
+
this.clean(true);
|
|
1131
|
+
|
|
1132
|
+
// 清理日志(会上传到飞书)
|
|
1133
|
+
paymentLog.clearLogs();
|
|
1134
|
+
}
|
|
1135
|
+
}]);
|
|
1136
|
+
return PaymentMethod;
|
|
1137
|
+
}();
|
|
1138
|
+
export default PaymentMethod;
|