UNPKG

mtl-js-sdk

Version:

ynf-fw-mtl-api

200 lines (191 loc) 5.65 kB
"use strict"; function Plugin(options, exports = {}) { const { platform } = options || { platform: window.mtl.platform }; const upesnVersion = window.mtl.upesnVersion || 0 const FAIL_CODE = 1; const notAddError = { code: FAIL_CODE, message: 'module aliPayPlus not added' } function successCallBack(object = {}) { object.success && object.success({}); object.complete && object.complete({}); } function invokeSuccess(object, ret) { object.success && object.success(ret); object.complete && object.complete(ret); } function invokeFail(object, err) { if (err) { if (!err.message) { err.message = err.msg || err.errMsg || err.errDescription; } if (typeof err.code == 'undefined') { err.code = err.errCode; } } object.fail && object.fail(err); object.complete && object.complete(err); } //阿里支付 function alipayPayment(object = {}) { if ( platform === "upesn" && upesnVersion <= 0) { const {parameters} = object; if (!parameters) { let error = { code: FAIL_CODE, message: 'parameters is null' } object.fail && object.fail(error); object.complete && object.complete(error); return; } let data = { ...object, success: function(res) { object.success && object.success(res); object.complete && object.complete(res); }, fail: function(err) { object.fail && object.fail(err); object.complete && object.complete(err); } }; execEsnBridge('alipayPayment', data); } else if (platform === 'APIAndroid' || platform === 'APIIos' || (platform === 'upesn' && upesnVersion > 0)) { let obj = window.api?.require('aliPayPlus'); if (!obj) { obj = window.api?.require('aliPayTradePlus'); } if (!obj) { moduleIsNull(object, 'alipayPayment') return; } let parameters = object.parameters || {}; obj.payOrder(parameters, function(ret, err) { if (ret) { if (ret.code == '9000' || ret.code == 9000) { invokeSuccess(object, {}) } else { invokeFail(object, ret) } } else { invokeFail(object, err) } }); } else { successCallBack(object) } } //微信支付 function wxpayPayment(object = {}) { if ( platform === "upesn" && upesnVersion <= 0) { const {parameters} = object; if (!parameters) { let error = { code: FAIL_CODE, message: 'parameters is null' } object.fail && object.fail(error); object.complete && object.complete(error); return; } let data = { ...object, success: function(res) { object.success && object.success(res); object.complete && object.complete(res); }, fail: function(err) { object.fail && object.fail(err); object.complete && object.complete(err); } }; execEsnBridge('wxpayPayment', data); } else if (platform === 'APIAndroid' || platform === 'APIIos' || (platform === 'upesn' && upesnVersion > 0)) { let obj = window.api?.require('wxPayPlus'); if (!obj) { moduleIsNull(object, 'wxpayPayment') return; } let parameters = param.parameters || {}; parameters.orderId = parameters.prepayId; parameters.mchId = parameters.partnerId; obj.payOrder(parameters, function(ret, err) { if (ret && ret.status) { invokeSuccess(object, {}) } else { invokeFail(object, err) } }); } else { successCallBack(object) } } function execEsnBridge(method, source) { let data = { ...source, fail: function(error) { source.fail(_getErrormsg(method, error)); } }; console.log("exec YYEsnBridge.do method :", method); console.log("data: ", data); YYEsnBridge.do(method, data); } /** * 400 参数不合法 401 用户无权限访问 405 APP无权限进行此项操作,如打开照相机,APP未取得授权 406 文件大小超出限制 500 http请求错误 501 http服务器错误 1001 无网络 1002 解析错误 1003 用户取消 -1 未知错误 -2 界面超时 -1000 未找到对应方法 * @param {*} error */ function _getErrormsg(method, error) { let esnError = { code: -1, message: errmsg }; if (typeof error === "object") { let code = error.errCode; let msg = ""; if (code == 1003) { msg = "by user canceled"; } else if (code == -1000) { msg = "not found function"; } else if (code == 405) { msg = "Unauthorized and unauthorized to perform this operation"; } else if (code == 401) { msg = "User does not have permission to access"; } esnError.code = code; esnError.message = msg || JSON.stringify(error); } let errmsg = `YYZone api ${__start + method}, error message: ${ esnError.message }`; esnError.message = errmsg; return esnError; } /** 插件不存在处理 */ function moduleIsNull(object, name) { if (platform === "upesn" && upesnVersion > 0) { if (api[name]) { api[name](object); return; } } invokeFail(object, notAddError) } exports.module = {alipayPayment, wxpayPayment}; exports.symbolPath = "pay"; return exports; } export default Plugin;