UNPKG

captain-ui

Version:

有赞vue wap业务组件库

369 lines (289 loc) 8.82 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.default = void 0; var _cashier_order_manager = _interopRequireDefault(require("./components/cashier_order_manager")); var _third_party_manager = _interopRequireDefault(require("./components/third_party_manager")); /* * PayManager Class * 使用Facade pattern处理所有支付相关操作和请求。 * Uses Facade pattern to manage all pay-related actions. */ var PayManager = /*#__PURE__*/ function () { /** * @constructor * @params @required {object} options * -cashierRequestUrl @required {string} 创建收单接口地址。 * -payRequestUrl @required {string} 支付接口地址。 * -fail {function} 失败回调 */ function PayManager(options) { if (options === void 0) { options = {}; } this.cashierOrderManager = new _cashier_order_manager.default(options); this.thirdPartyManager = new _third_party_manager.default(options); this.lastPayData = {}; } /** * @public getCashierNo * @return 收单号 or '' */ var _proto = PayManager.prototype; _proto.getCashierNo = function getCashierNo() { return this.cashierOrderManager.getCashierNo(); }; /** * @public getPayWays * @return 支付方式列表 or [] */ _proto.getPayWays = function getPayWays() { return this.cashierOrderManager.getPayWays(); }; /** * @public createCashierOrder * @param @required {object} cashierData 创建收单需要的数据。 * @param {function} 创建成功回调。 */ _proto.createCashierOrder = function createCashierOrder(cashierData, callback) { return this.cashierOrderManager.createCashierOrder(cashierData, callback); }; /** * @public getQrcodePay * @param {function} 获取二维码成功后回调。 */ _proto.getQrcodePay = function getQrcodePay(callback) { this.cashierOrderManager.getQrcodePay(function (qrcodeUrl) { if (typeof callback === 'function') callback(qrcodeUrl); }); }; /** * @public getPayStatus * @param {function} 获取支付状态成功后回调。 */ _proto.validQrcodePay = function validQrcodePay(finish, callback) { var _this = this; this.cashierOrderManager.getPayStatus(function (payStatus) { if (typeof callback === 'function') callback(payStatus); if (finish && payStatus === 'success') { _this.thirdPartyManager.doQrcodePay(_this.lastPayData); } }); }; /** * @public getPayStatus * @param {function} 获取支付状态成功后回调。 */ _proto.getPayStatus = function getPayStatus(callback) { this.cashierOrderManager.getPayStatus(function (payStatus) { if (typeof callback === 'function') callback(payStatus); }); }; /** * @public doPayAction * @param @required {object} data 创建收单需要的数据。 * @param {function} 创建成功回调。 */ _proto.doPayAction = function doPayAction(data, callback) { var _this2 = this; if (data === void 0) { data = {}; } this.cashierOrderManager.doPayAction(data, function (payData) { _this2.lastPayData = payData || {}; if (typeof callback === 'function') callback(payData); _this2.doPayWithChannel(data.payWay.pay_channel, payData); }); }; /** * @public doPayWithPayWay * @param @required {object} data 创建收单需要的数据。 * @param {function} 创建成功回调。 */ _proto.doPayWithPayWay = function doPayWithPayWay(cashierData, payWayData, callback) { var _this3 = this; if (cashierData === void 0) { cashierData = {}; } if (payWayData === void 0) { payWayData = {}; } this.cashierOrderManager.doPayWithPayWay(cashierData, payWayData, function (payData) { _this3.lastPayData = payData || {}; if (typeof callback === 'function') callback(payData); _this3.doPayWithChannel(payWayData.payChannel, payData); }); }; /** * @public doPayActionAllowCancel * @param @required {object} data 支付参数 * @param {function} callback 返回true则继续处理后续,否则中断 */ _proto.doPayActionAllowCancel = function doPayActionAllowCancel(data, callback) { var _this4 = this; if (data === void 0) { data = {}; } this.cashierOrderManager.doPayAction(data, function (payData) { _this4.lastPayData = payData || {}; var notCancel = true; if (typeof callback === 'function') { try { notCancel = callback(payData); } catch (error) { console.error(error); notCancel = false; } } !!notCancel && _this4.doPayWithChannel(data.payWay.pay_channel, payData); }); }; /** * @public isOrderCreated * @return {boolean} True if 收单已创建。 */ _proto.isOrderCreated = function isOrderCreated() { return this.cashierOrderManager.isOrderCreated(); }; /** * @public isPaying * @return {boolean} True if 正在支付过程中。 */ _proto.isPaying = function isPaying() { return this.cashierOrderManager.getIsPaying(); }; /** * @public doWeiXinPay * @param {object} payData 微信支付需要的参数。 */ _proto.doWeixinPay = function doWeixinPay(payData) { if (payData === void 0) { payData = {}; } return this.thirdPartyManager.doWeixinPay(payData); }; /** * @public doWeixinH5Pay * @param {object} payData 微信H5支付需要的参数。 */ _proto.doWeixinH5Pay = function doWeixinH5Pay(payData) { if (payData === void 0) { payData = {}; } return this.thirdPartyManager.doWeixinH5Pay(payData); }; /** * @public doWeixinAppPay * @param {object} payData 微信有赞客户端支付需要的参数。 */ _proto.doWeixinAppPay = function doWeixinAppPay(payData) { if (payData === void 0) { payData = {}; } return this.thirdPartyManager.doWeixinAppPay(payData); }; /** * @public doAlipay * @param {object} payData 支付宝支付需要的参数。 */ _proto.doAliPay = function doAliPay(payData) { if (payData === void 0) { payData = {}; } return this.thirdPartyManager.doAliPay(payData); }; /** * @public doECardpay * @param {object} payData 支付宝支付需要的参数。 */ _proto.doECardPay = function doECardPay(payData) { if (payData === void 0) { payData = {}; } return this.thirdPartyManager.doECardPay(payData); }; /** * @public doGiftCardPay * @param {object} payData 支付需要的参数。 */ _proto.doGiftCardPay = function doGiftCardPay(payData) { if (payData === void 0) { payData = {}; } return this.thirdPartyManager.doGiftCardPay(payData); }; /** * 货到付款 */ _proto.doCODPay = function doCODPay(payData) { if (payData === void 0) { payData = {}; } return this.thirdPartyManager.doCODPay(payData); }; /** * @public doPeerpay * @param {object} payData 支付宝支付需要的参数。 */ _proto.doPeerPay = function doPeerPay(payData) { if (payData === void 0) { payData = {}; } return this.thirdPartyManager.doPeerpay(payData); }; /** * @public doPrepaidPay * @param {object} payData 支付宝支付需要的参数。 */ _proto.doPrepaidPay = function doPrepaidPay(payData) { if (payData === void 0) { payData = {}; } return this.thirdPartyManager.doPrepaidPay(payData); }; /** * @public doPayWithChannel * @param {string} payChannel 支付方式。 * @param {object} payData 支付需要的参数. */ _proto.doPayWithChannel = function doPayWithChannel(payChannel, payData) { switch (payChannel) { // 微信内部支付 case 'WX_JS': this.doWeixinPay(payData); break; // 微信H5支付 case 'WX_H5': this.doWeixinH5Pay(payData); break; // 微信有赞客户端支付 case 'WX_APP': this.doWeixinAppPay(payData); break; // E卡支付 case 'ECARD': this.doECardPay(payData); break; case 'PREPAID_PAY': case 'VALUE_CARD': this.doPrepaidPay(payData); break; case 'GIFT_CARD': case 'ENCHASHMENT_GIFT_CARD': this.doGiftCardPay(payData); break; // 货到付款 case 'CASH_ON_DELIVERY': this.doCODPay(payData); break; // 支付宝、找人代付 default: this.thirdPartyManager.doDefaultPay(payData); } }; return PayManager; }(); var _default = PayManager; exports.default = _default;