@alipay/ams-checkout 0.0.1745390310-dev.6 → 0.0.1746604244-dev.0

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.
@@ -28,9 +28,10 @@ import { EVENT } from "../../../../constant";
28
28
  import { ServiceProvider } from "../../../../foundation/service";
29
29
  import { ApplePaySdk, handleGooglePay, isSkipRenderPaymentMethod } from "../../../../plugin/component/channel";
30
30
  import { LogConfig, Logger } from "../../../../util/logger";
31
+ import { queryParse } from "../../../../util";
31
32
  import { parseSessionData } from "../../index";
32
33
  import { oneAccount, sdkAction } from "../mock";
33
- import { generateIframeSrc as _generateIframeSrc } from "../util";
34
+ import { generateIframeSrc as _generateIframeSrc, isElementPC, isElementPad } from "../util";
34
35
  import BaseElementProcessor from "./baseElementProcessor";
35
36
  var logger = new Logger(LogConfig, true);
36
37
  var PaymentProcessor = /*#__PURE__*/function (_BaseElementProcessor) {
@@ -222,7 +223,7 @@ var PaymentProcessor = /*#__PURE__*/function (_BaseElementProcessor) {
222
223
  pageUrl = "/elements/".concat(version, "/pages/express_checkout/index.html");
223
224
  }
224
225
  } catch (error) {}
225
- return _generateIframeSrc({
226
+ var url = _generateIframeSrc({
226
227
  paymentSession: paymentSession,
227
228
  paymentSessionObj: paymentSessionObj,
228
229
  environment: environment,
@@ -233,13 +234,15 @@ var PaymentProcessor = /*#__PURE__*/function (_BaseElementProcessor) {
233
234
  pageUrl: pageUrl,
234
235
  instanceId: instanceId
235
236
  });
237
+ this.setElementUrl(url);
238
+ return url;
236
239
  }
237
240
  }, {
238
241
  key: "obtainData",
239
242
  value: function () {
240
243
  var _obtainData = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
241
244
  var _paymentSessionObj$co;
242
- var requestService, _this$elementContaine8, paymentSession, paymentSessionObj, displayInfo, merchantAppointParam, _this$options2, environment, locale, _ref4, paymentSessionConfig, hostSign, isConnect, LOCAL_MOCK, generateActionQueryPromise, generateOneAccountQueryPromise, _yield$Promise$all, _yield$Promise$all2, originActionQueryResult, originOneAccountQueryResult;
245
+ var requestService, _this$elementContaine8, paymentSession, paymentSessionObj, displayInfo, merchantAppointParam, _this$options2, environment, locale, _ref4, paymentSessionConfig, hostSign, isConnect, LOCAL_MOCK, _queryParse, appType, terminalType, generateActionQueryPromise, generateOneAccountQueryPromise, _yield$Promise$all, _yield$Promise$all2, originActionQueryResult, originOneAccountQueryResult;
243
246
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
244
247
  while (1) switch (_context2.prev = _context2.next) {
245
248
  case 0:
@@ -251,6 +254,8 @@ var PaymentProcessor = /*#__PURE__*/function (_BaseElementProcessor) {
251
254
  hostSign = paymentSession.split('&&')[1] || '';
252
255
  isConnect = paymentSessionObj === null || paymentSessionObj === void 0 || (_paymentSessionObj$co = paymentSessionObj.connectFactor) === null || _paymentSessionObj$co === void 0 ? void 0 : _paymentSessionObj$co.enableConnect;
253
256
  LOCAL_MOCK = window.location.href.indexOf('LOCAL_MOCK=1') !== -1;
257
+ _queryParse = queryParse(this.getElementUrl()), appType = _queryParse.appType;
258
+ terminalType = isElementPad() ? 'WEB' : appType ? 'APP' : isElementPC() ? 'WEB' : 'WAP';
254
259
  generateActionQueryPromise = function generateActionQueryPromise() {
255
260
  return new Promise(function (resolve, reject) {
256
261
  var _displayInfo$merchant;
@@ -273,7 +278,8 @@ var PaymentProcessor = /*#__PURE__*/function (_BaseElementProcessor) {
273
278
  requestService.request(sdkRequestData, {
274
279
  env: environment,
275
280
  envInfo: {
276
- locale: locale
281
+ locale: locale,
282
+ terminalType: terminalType
277
283
  },
278
284
  hostSign: hostSign,
279
285
  timeout: 300000,
@@ -303,7 +309,8 @@ var PaymentProcessor = /*#__PURE__*/function (_BaseElementProcessor) {
303
309
  }, {
304
310
  env: environment,
305
311
  envInfo: {
306
- locale: locale
312
+ locale: locale,
313
+ terminalType: terminalType
307
314
  },
308
315
  timeout: 300000,
309
316
  // TODO dev环境接口超时
@@ -315,9 +322,9 @@ var PaymentProcessor = /*#__PURE__*/function (_BaseElementProcessor) {
315
322
  });
316
323
  });
317
324
  };
318
- _context2.next = 12;
325
+ _context2.next = 14;
319
326
  return Promise.all(isConnect ? [generateActionQueryPromise(), generateOneAccountQueryPromise()] : [generateActionQueryPromise()]);
320
- case 12:
327
+ case 14:
321
328
  _yield$Promise$all = _context2.sent;
322
329
  _yield$Promise$all2 = _slicedToArray(_yield$Promise$all, 2);
323
330
  originActionQueryResult = _yield$Promise$all2[0];
@@ -330,7 +337,7 @@ var PaymentProcessor = /*#__PURE__*/function (_BaseElementProcessor) {
330
337
  originActionQueryResult: originActionQueryResult,
331
338
  originOneAccountQueryResult: originOneAccountQueryResult
332
339
  });
333
- case 18:
340
+ case 20:
334
341
  case "end":
335
342
  return _context2.stop();
336
343
  }
@@ -1,4 +1,6 @@
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 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
+ 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; }
2
4
  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
5
  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
6
  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); }); }; }
@@ -40,7 +42,10 @@ export var ElementComponent = /*#__PURE__*/function () {
40
42
  }, {
41
43
  key: "mount",
42
44
  value: function mount(renderOptions, sdkSelector) {
43
- return this.controller.mount(renderOptions, sdkSelector);
45
+ var _this$options;
46
+ return this.controller.mount(_objectSpread({
47
+ appearance: this === null || this === void 0 || (_this$options = this.options) === null || _this$options === void 0 ? void 0 : _this$options.appearance
48
+ }, renderOptions), sdkSelector);
44
49
  }
45
50
  }, {
46
51
  key: "mountCashier",
@@ -57,4 +57,10 @@ export declare function redirect(data: {
57
57
  callAppJudgeTime?: number;
58
58
  }): Promise<void>;
59
59
  export declare function showToast(options?: IToastOptions, callback?: Function): void;
60
+ export declare const isElementMobile: () => boolean;
61
+ /**
62
+ * @description judge whether the device is a pad, by userAgent and screen aspect ratio, but not accurate
63
+ */
64
+ export declare const isElementPad: () => boolean;
65
+ export declare const isElementPC: () => boolean;
60
66
  export { formatElementOption };
@@ -448,4 +448,31 @@ export function showToast() {
448
448
  }, 300);
449
449
  }, config.duration);
450
450
  }
451
+ export var isElementMobile = function isElementMobile() {
452
+ var userAgentInfo = navigator.userAgent;
453
+ // webview 容器
454
+ if (userAgentInfo.includes('AlipayWebViewClient')) {
455
+ return true;
456
+ }
457
+ var agents = ['Android', 'iPhone', 'SymbianOS', 'Windows Phone', 'iPod', 'iPad'];
458
+ return agents.some(function (agent) {
459
+ return userAgentInfo.includes(agent);
460
+ });
461
+ };
462
+
463
+ /**
464
+ * @description judge whether the device is a pad, by userAgent and screen aspect ratio, but not accurate
465
+ */
466
+ export var isElementPad = function isElementPad() {
467
+ var userAgent = navigator.userAgent.toLowerCase();
468
+ var width = window.screen.width;
469
+ var height = window.screen.height;
470
+ var aspectRatio = Math.min(width, height) / Math.max(width, height);
471
+ var userAgentCheck = /ipad|tablet|(android(?!.*mobile))/i.test(userAgent);
472
+ var screenCheck = aspectRatio > 0.5 && aspectRatio < 0.75 && width >= 768 && height >= 1024;
473
+ return userAgentCheck || screenCheck;
474
+ };
475
+ export var isElementPC = function isElementPC() {
476
+ return !isElementMobile();
477
+ };
451
478
  export { formatElementOption };
@@ -49,6 +49,6 @@ declare class ApplePayService {
49
49
  /**
50
50
  * Start Pay
51
51
  */
52
- startPay: (param: IPaymentSessionMetaData) => boolean;
52
+ startPay: (param: IPaymentSessionMetaData) => void;
53
53
  }
54
54
  export default ApplePayService;
@@ -133,20 +133,19 @@ var ApplePayService = /*#__PURE__*/function () {
133
133
  recurring: _this.isRecurring
134
134
  })
135
135
  }).send();
136
- console.log(ApplePaySession, '----ApplePaySession---ApplePaySession');
137
136
  if (!ApplePaySession) {
138
137
  _this.logError(eventCodeEnum.SDK_PAYMENT_ERROR, "ApplePaySession is only support in Safari");
139
- return false;
138
+ return;
140
139
  }
141
140
  if (!(extendInfo !== null && extendInfo !== void 0 && extendInfo.merchantCapabilities) || !(extendInfo !== null && extendInfo !== void 0 && extendInfo.supportedNetworks) || !(merchantInfo !== null && merchantInfo !== void 0 && merchantInfo.registeredCountry) || !(paymentAmount !== null && paymentAmount !== void 0 && paymentAmount.currency) || !(paymentAmount !== null && paymentAmount !== void 0 && paymentAmount.value) || !(merchantInfo !== null && merchantInfo !== void 0 && merchantInfo.merchantName)) {
142
141
  _this.logError(eventCodeEnum.SDK_PAYMENT_ERROR, "Abnormal params paymentSessionFactor");
143
- return false;
142
+ return;
144
143
  }
145
144
  if (recurringInfo) {
146
145
  var _recurringInfo$interv;
147
146
  if (!(order !== null && order !== void 0 && order.orderDescription) || !(recurringInfo !== null && recurringInfo !== void 0 && recurringInfo.managementURL)) {
148
147
  _this.logError(eventCodeEnum.SDK_PAYMENT_ERROR, "Abnormal params recurringInfo");
149
- return false;
148
+ return;
150
149
  }
151
150
  var lineItem = {
152
151
  type: 'final',
@@ -214,7 +213,6 @@ var ApplePayService = /*#__PURE__*/function () {
214
213
  recurring: recurringInfo !== null
215
214
  })
216
215
  }).send();
217
- return true;
218
216
  });
219
217
  this.logger = logger;
220
218
  }
@@ -382,7 +382,6 @@ export interface IcheckoutState {
382
382
  paymentMethodType?: string;
383
383
  }
384
384
  export declare enum EnvironmentEnum {
385
- dev = "dev",
386
385
  sandbox = "sandbox",
387
386
  prod = "prod",
388
387
  light_sandbox = "light_sandbox"
@@ -92,7 +92,6 @@ export var networkModeEnum = /*#__PURE__*/function (networkModeEnum) {
92
92
  return networkModeEnum;
93
93
  }({});
94
94
  export var EnvironmentEnum = /*#__PURE__*/function (EnvironmentEnum) {
95
- EnvironmentEnum["dev"] = "dev";
96
95
  EnvironmentEnum["sandbox"] = "sandbox";
97
96
  EnvironmentEnum["prod"] = "prod";
98
97
  EnvironmentEnum["light_sandbox"] = "light_sandbox";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alipay/ams-checkout",
3
- "version": "0.0.1745390310-dev.6",
3
+ "version": "0.0.1746604244-dev.0",
4
4
  "description": "",
5
5
  "author": "",
6
6
  "main": "esm/index.js",