pingpp-js 2.2.21 → 2.2.25
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/CHANGELOG.md +18 -0
- package/README.md +1 -0
- package/dist/pingpp.js +1 -2
- package/dist/pingpp.js.map +1 -1
- package/package.json +1 -1
- package/src/channels/chinaums_alipay_pub.js +15 -0
- package/src/channels/chinaums_alipay_wap.js +15 -0
- package/src/channels/chinaums_upacp_wap.js +15 -0
- package/src/channels/chinaums_wx_pub.js +15 -0
- package/src/channels/chinaums_wx_wap.js +15 -0
- package/src/channels/nucc_b2b_lakala.js +14 -0
- package/src/channels/nucc_b2c_lakala.js +14 -0
- package/src/init.js +0 -18
- package/src/main.js +0 -6
- package/src/mods.js +7 -0
- package/src/testmode.js +1 -1
- package/src/version.js +1 -1
- package/src/collection.js +0 -115
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# ChangeLog
|
|
2
2
|
|
|
3
|
+
## 2.2.25
|
|
4
|
+
|
|
5
|
+
- mock 模拟支付地址修改为 `https`
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 2.2.24
|
|
10
|
+
|
|
11
|
+
- 新增chinaums_alipay_wap, chinaums_upacp_wap, chinaums_wx_wap, chinaums_alipay_pub, chinaums_wx_pub
|
|
12
|
+
|
|
13
|
+
## 2.2.23
|
|
14
|
+
|
|
15
|
+
- 新增 nucc_b2b_lakala,nucc_b2c_lakala
|
|
16
|
+
|
|
17
|
+
### 2.2.22
|
|
18
|
+
|
|
19
|
+
- 修正:在部分“浏览器”无法正常打开的异常
|
|
20
|
+
|
|
3
21
|
### 2.2.21
|
|
4
22
|
|
|
5
23
|
- 新增: 支持 ccb_wap
|
package/README.md
CHANGED
package/dist/pingpp.js
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).pingpp=e()}}(function(){return function i(l,c,o){function s(n,e){if(!c[n]){if(!l[n]){var a="function"==typeof require&&require;if(!e&&a)return a(n,!0);if(u)return u(n,!0);var t=new Error("Cannot find module '"+n+"'");throw t.code="MODULE_NOT_FOUND",t}var r=c[n]={exports:{}};l[n][0].call(r.exports,function(e){return s(l[n][1][e]||e)},r,r.exports,i,l,c,o)}return c[n].exports}for(var u="function"==typeof require&&require,e=0;e<o.length;e++)s(o[e]);return s}({1:[function(e,n,a){var i={}.hasOwnProperty,l=e('./callbacks'),c=e('./utils');n.exports={signAgreement:function(e){var n;if('string'==typeof e)try{n=JSON.parse(e)}catch(e){return l.innerAgreementCallback('fail',l.error('json_decode_fail',e)),!1}else n=e;if(void 0===n)return l.innerAgreementCallback('fail',l.error('json_decode_fail')),!1;if(!i.call(n,'object')||'agreement'!==n.object||!i.call(n,'channel')||!i.call(n,'credential')||'object'!=typeof n.credential)return l.innerAgreementCallback('fail',l.error('invalid_object')),!1;if(!i.call(n.credential,n.channel))return l.innerAgreementCallback('fail',l.error('invalid_credential')),!1;var a,t=n.credential[n.channel];if('string'==typeof t?a=t:i.call(t,'credential')&&'string'==typeof t.credential&&(a=t.credential),void 0===a)return l.innerAgreementCallback('fail',l.error('invalid_credential')),!1;if('alipay'===n.channel.substring(0,6)){var r=new URL(a);a='http://d.alipay.com/i/index.htm?iframeSrc='+encodeURIComponent("alipays://platformapi/startapp?appId=60000157&appClearTop=false&startMultApp=YES&sign_params="+encodeURIComponent(r.search.substring(1)))}return setTimeout(function(){c.redirectTo(a)},0),!0}}},{"./callbacks":2,"./utils":47}],2:[function(a,e,n){e.exports={userCallback:void 0,urlReturnCallback:void 0,urlReturnChannels:['alipay_pc_direct'],userAgreementCallback:void 0,innerCallback:function(e,n){'function'==typeof this.userCallback&&(void 0===n&&(n=this.error()),this.userCallback(e,n),this.userCallback=void 0,a('./payment_elements').clear())},error:function(e,n){return{msg:e=void 0===e?'':e,extra:n=void 0===n?'':n}},triggerUrlReturnCallback:function(e,n){'function'==typeof this.urlReturnCallback&&this.urlReturnCallback(e,n)},shouldReturnUrlByCallback:function(e){return'function'==typeof this.urlReturnCallback&&-1!==this.urlReturnChannels.indexOf(e)},innerAgreementCallback:function(e,n){'function'==typeof this.userAgreementCallback&&(void 0===n&&(n=this.error()),this.userAgreementCallback(e,n),this.userAgreementCallback=void 0)}}},{"./payment_elements":44}],3:[function(e,n,a){var t=e('../callbacks'),r={}.hasOwnProperty;n.exports={PINGPP_NOTIFY_URL_BASE:'https://notify.pingxx.com/notify',handleCharge:function(e){var n=e.credential[e.channel];n||r.call(n,'orderInfo')?this.callpay(n.orderInfo):t.innerCallback('fail',t.error('invalid_credential','missing_alipay'))},alipayLiteEnabled:function(){return'undefined'!=typeof my&&my.tradePay},callpay:function(e){var n=this;if(this.alipayLiteEnabled())return this.alipayLitePay(e);if('undefined'!=typeof navigator&&/AlipayClient/.test(navigator.userAgent||navigator.swuserAgent))return this.waitAlipayJSBridgde(function(){n.alipayJsBridgePay(e)});var a='请在支付宝小程序或者支付宝应用内中打开';console.log(a),t.innerCallback('fail',t.error(a))},waitAlipayJSBridgde:function(e){window.AlipayJSBridge?e&&e():document.addEventListener('AlipayJSBridgeReady',e,!1)},alipayJsBridgePay:function(e){AlipayJSBridge.call('tradePay',{orderStr:e},this.alipayResultHandler)},alipayLitePay:function(e){var n={};n.orderStr=e,n.complete=this.alipayResultHandler,my.tradePay(n)},alipayResultHandler:function(e){var n={resultCode:e.resultCode};r.call(e,'memo')&&(n.memo=e.memo),r.call(e,'result')&&(n.result=e.result),'9000'==e.resultCode?t.innerCallback('success',t.error('',n)):'6001'==e.resultCode?t.innerCallback('cancel',t.error('用户取消支付',n)):t.innerCallback('fail',t.error('支付失败',n))},runTestMode:function(e){var n='/charges/'+e.id;my.httpRequest({url:this.PINGPP_NOTIFY_URL_BASE+n+'?livemode=false',success:function(e){'success'==e.data?t.innerCallback('success'):t.innerCallback('fail',t.error('testmode_notify_fail'))},fail:function(){t.innerCallback('fail',t.error('network_err'))}})}}},{"../callbacks":2}],4:[function(e,n,a){var t=e('../callbacks');n.exports={PINGPP_NOTIFY_URL_BASE:'https://notify.pingxx.com/notify',handleCharge:function(e){var n=e.credential[e.channel];n?this.callpay(n):t.innerCallback('fail',t.error('invalid_credential','missing_alipay_lite'))},alipayLiteEnabled:function(){return'undefined'!=typeof my&&my.tradePay},callpay:function(e){if(this.alipayLiteEnabled()){var n={};n.tradeNO=e,n.complete=function(e){9e3==e.resultCode?t.innerCallback('success'):6001==e.resultCode?t.innerCallback('cancel',t.error('用户取消支付')):t.innerCallback('fail',t.error('支付失败'))},my.tradePay(n)}else console.log('请在支付宝小程序中打开')},runTestMode:function(e){var n='/charges/'+e.id;my.httpRequest({url:this.PINGPP_NOTIFY_URL_BASE+n+'?livemode=false',success:function(e){'success'==e.data?t.innerCallback('success'):t.innerCallback('fail',t.error('testmode_notify_fail'))},fail:function(){t.innerCallback('fail',t.error('network_err'))}})}}},{"../callbacks":2}],5:[function(e,n,a){var i=e('../utils'),l={}.hasOwnProperty;n.exports={ALIPAY_PC_DIRECT_URL:'https://mapi.alipay.com/gateway.do',handleCharge:function(e){var n=e.channel,a=e.credential[n],t=this.ALIPAY_PC_DIRECT_URL;l.call(a,'channel_url')&&(t=a.channel_url),l.call(a,'_input_charset')||l.call(a,'service')&&'create_direct_pay_by_user'===a.service&&(a._input_charset='utf-8');var r=i.stringifyData(a,n,!0);i.redirectTo(t+'?'+r,n)}}},{"../utils":47}],6:[function(e,n,a){var t={}.hasOwnProperty,r=e('../callbacks');n.exports={handleCharge:function(e){var n=e.credential[e.channel];t.call(n,'transaction_no')?this.tradePay(n.transaction_no):r.innerCallback('fail',r.error('invalid_credential','missing_field_transaction_no'))},ready:function(e){window.AlipayJSBridge?e&&e():document.addEventListener('AlipayJSBridgeReady',e,!1)},tradePay:function(e){this.ready(function(){AlipayJSBridge.call('tradePay',{tradeNO:e},function(e){'9000'==e.resultCode?r.innerCallback('success'):'6001'==e.resultCode?r.innerCallback('cancel',r.error(e.result)):r.innerCallback('fail',r.error(e.result))})})}}},{"../callbacks":2}],7:[function(e,n,a){var t=e('./commons/redirect_base');n.exports={handleCharge:function(e){t.handleCharge(e)}}},{"./commons/redirect_base":18}],8:[function(e,n,a){var l=e('../utils'),c=e('../mods'),o={}.hasOwnProperty;n.exports={ALIPAY_WAP_URL_OLD:'https://wappaygw.alipay.com/service/rest.htm',ALIPAY_WAP_URL:'https://mapi.alipay.com/gateway.do',handleCharge:function(e){var n=e.channel,a=e.credential[n],t=this.ALIPAY_WAP_URL;o.call(a,'req_data')?t=this.ALIPAY_WAP_URL_OLD:o.call(a,'channel_url')&&(t=a.channel_url),o.call(a,'_input_charset')||(o.call(a,'service')&&'alipay.wap.create.direct.pay.by.user'===a.service||o.call(a,'req_data'))&&(a._input_charset='utf-8');var r=t+'?'+l.stringifyData(a,n,!0),i=c.getExtraModule('ap');l.inWeixin()&&void 0!==i?i.pay(r):l.redirectTo(r,n)}}},{"../mods":43,"../utils":47}],9:[function(e,n,a){arguments[4][7][0].apply(a,arguments)},{"./commons/redirect_base":18,dup:7}],10:[function(e,n,a){var t=e('../utils'),r=e('../callbacks'),i={}.hasOwnProperty;n.exports={handleCharge:function(e){var n=e.channel,a=e.credential[n];i.call(a,'url')?t.redirectTo(a.url+'?'+t.stringifyData(a,n),n):r.innerCallback('fail',r.error('invalid_credential','missing_field:url'))}}},{"../callbacks":2,"../utils":47}],11:[function(e,n,a){var i=e('../utils'),l={}.hasOwnProperty;n.exports={ALIPAY_PC_DIRECT_URL:'https://intlmapi.alipay.com/gateway.do',handleCharge:function(e){var n=e.channel,a=e.credential[n],t=this.ALIPAY_PC_DIRECT_URL;l.call(a,'channel_url')&&(t=a.channel_url),l.call(a,'_input_charset')||l.call(a,'service')&&'create_forex_trade'===a.service&&(a._input_charset='utf-8');var r=i.stringifyData(a,n,!0);i.redirectTo(t+'?'+r,n)}}},{"../utils":47}],12:[function(e,n,a){var l=e('../utils'),c=e('../mods'),o={}.hasOwnProperty;n.exports={ALIPAY_WAP_URL:'https://intlmapi.alipay.com/gateway.do',handleCharge:function(e){var n=e.channel,a=e.credential[n],t=this.ALIPAY_WAP_URL;o.call(a,'channel_url')&&(t=a.channel_url),o.call(a,'_input_charset')||o.call(a,'service')&&'create_forex_trade_wap'===a.service&&(a._input_charset='utf-8');var r=t+'?'+l.stringifyData(a,n,!0),i=c.getExtraModule('ap');l.inWeixin()&&void 0!==i?i.pay(r):l.redirectTo(r,n)}}},{"../mods":43,"../utils":47}],13:[function(e,n,a){var r=e('../callbacks'),t=e('../utils'),i=e('../stash'),l=e('../mods'),c={}.hasOwnProperty;n.exports={PINGPP_NOTIFY_URL_BASE:'https://notify.pingxx.com/notify',handleCharge:function(e){for(var n=e.credential[e.channel],a=['appId','timeStamp','nonceStr','package','signType','paySign'],t=0;t<a.length;t++)if(!c.call(n,a[t]))return void r.innerCallback('fail',r.error('invalid_credential','missing_field_'+a[t]));i.jsApiParameters=n,this.callpay()},callpay:function(){var e=this,n=l.getExtraModule('wx_jssdk');if(void 0!==n&&n.jssdkEnabled())n.callpay();else if('undefined'==typeof WeixinJSBridge){var a=function(){e.jsApiCall()};document.addEventListener?document.addEventListener('WeixinJSBridgeReady',a,!1):document.attachEvent&&(document.attachEvent('WeixinJSBridgeReady',a),document.attachEvent('onWeixinJSBridgeReady',a))}else this.jsApiCall()},jsApiCall:function(){c.call(i,'jsApiParameters')&&WeixinJSBridge.invoke('getBrandWCPayRequest',i.jsApiParameters,function(e){delete i.jsApiParameters,'get_brand_wcpay_request:ok'==e.err_msg?r.innerCallback('success'):'get_brand_wcpay_request:cancel'==e.err_msg?r.innerCallback('cancel'):r.innerCallback('fail',r.error('wx_result_fail',e.err_msg))})},runTestMode:function(e){if(confirm('模拟付款?')){var n='/charges/'+e.id;t.request(this.PINGPP_NOTIFY_URL_BASE+n+'?livemode=false','GET',null,function(e,n){if(200<=n&&n<400&&'success'==e)r.innerCallback('success');else{var a='http_code:'+n+';response:'+e;r.innerCallback('fail',r.error('testmode_notify_fail',a))}},function(){r.innerCallback('fail',r.error('network_err'))})}}}},{"../callbacks":2,"../mods":43,"../stash":45,"../utils":47}],14:[function(e,n,a){arguments[4][7][0].apply(a,arguments)},{"./commons/redirect_base":18,dup:7}],15:[function(e,n,a){var r=e('../utils'),i={}.hasOwnProperty,l=e('../callbacks');n.exports={CCB_WAP_URL_BASE:'https://ibsbjstar.ccb.com.cn/CCBIS/ccbMain?',handleCharge:function(e){var n=e.channel,a=e.credential[n];if(i.call(a,'orderinfo')){var t=this.CCB_WAP_URL_BASE+a.orderinfo;r.redirectTo(t,n)}else l.innerCallback('fail',l.error('invalid_credential','missing_field:orderinfo'))}}},{"../callbacks":2,"../utils":47}],16:[function(e,n,a){var r=e('../utils'),i={}.hasOwnProperty;n.exports={handleCharge:function(e){var n,a=e.channel,t=e.credential[a];i.call(t,'channel_url')&&(n=t.channel_url,delete t.channel_url),r.formSubmit(n,'post',t)}}},{"../utils":47}],17:[function(e,n,a){var t=e('../utils'),r={}.hasOwnProperty;n.exports={CMB_WALLET_URL:'https://netpay.cmbchina.com/netpayment/BaseHttp.dll?MB_EUserPay',handleCharge:function(e){var n=e.credential[e.channel],a=this.CMB_WALLET_URL;r.call(n,'ChannelUrl')&&(a=n.ChannelUrl,delete n.ChannelUrl),r.call(n,'channelVersion')&&delete n.channelVersion,t.formSubmit(a,'post',n)}}},{"../utils":47}],18:[function(e,n,a){var t=e('../../utils'),r=e('../../callbacks'),i={}.hasOwnProperty;n.exports={handleCharge:function(e){var n,a=e.credential[e.channel];if('string'==typeof a)n=a;else{if(!i.call(a,'url'))return void r.innerCallback('fail',r.error('invalid_credential','credential format is incorrect'));n=a.url}t.redirectTo(n,e.channel)}}},{"../../callbacks":2,"../../utils":47}],19:[function(e,n,a){var t=e('../utils');n.exports={handleCharge:function(e){var n=e.credential[e.channel];t.formSubmit(n.request_url,'post',n.request_data)}}},{"../utils":47}],20:[function(e,n,a){var t=e('../utils');n.exports={CP_B2B_URL:'https://payment.chinapay.com/CTITS/service/rest/page/nref/000000000017/0/0/0/0/0',handleCharge:function(e){var n=e.credential[e.channel];t.formSubmit(this.CP_B2B_URL,'post',n)}}},{"../utils":47}],21:[function(e,n,a){var t,o,r=e('../../stash'),i={}.hasOwnProperty;o={PADCHAR:'=',ALPHA:'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',makeDOMException:function(){try{return new DOMException(DOMException.INVALID_CHARACTER_ERR)}catch(e){var n=new Error('DOM Exception 5');return n.code=n.number=5,n.name=n.description='INVALID_CHARACTER_ERR',n.toString=function(){return'Error: '+n.name+': '+n.message},n}},getbyte64:function(e,n){var a=o.ALPHA.indexOf(e.charAt(n));if(-1===a)throw o.makeDOMException();return a},decode:function(e){e=''+e;var n,a,t,r=o.getbyte64,i=e.length;if(0===i)return e;if(i%4!=0)throw o.makeDOMException();n=0,e.charAt(i-1)===o.PADCHAR&&(n=1,e.charAt(i-2)===o.PADCHAR&&(n=2),i-=4);var l=[];for(a=0;a<i;a+=4)t=r(e,a)<<18|r(e,a+1)<<12|r(e,a+2)<<6|r(e,a+3),l.push(String.fromCharCode(t>>16,t>>8&255,255&t));switch(n){case 1:t=r(e,a)<<18|r(e,a+1)<<12|r(e,a+2)<<6,l.push(String.fromCharCode(t>>16,t>>8&255));break;case 2:t=r(e,a)<<18|r(e,a+1)<<12,l.push(String.fromCharCode(t>>16))}return l.join('')},getbyte:function(e,n){var a=e.charCodeAt(n);if(255<a)throw o.makeDOMException();return a},encode:function(e){if(1!==arguments.length)throw new SyntaxError('Not enough arguments');var n,a,t=o.PADCHAR,r=o.ALPHA,i=o.getbyte,l=[],c=(e=''+e).length-e.length%3;if(0===e.length)return e;for(n=0;n<c;n+=3)a=i(e,n)<<16|i(e,n+1)<<8|i(e,n+2),l.push(r.charAt(a>>18)),l.push(r.charAt(a>>12&63)),l.push(r.charAt(a>>6&63)),l.push(r.charAt(63&a));switch(e.length-c){case 1:a=i(e,n)<<16,l.push(r.charAt(a>>18)+r.charAt(a>>12&63)+t+t);break;case 2:a=i(e,n)<<16|i(e,n+1)<<8,l.push(r.charAt(a>>18)+r.charAt(a>>12&63)+r.charAt(a>>6&63)+t)}return l.join('')}},(t={}).url='pay.htm',t.pay=function(e){var n=encodeURIComponent(o.encode(e));i.call(r,'APURL')&&(t.url=r.APURL),location.href=t.url+'?goto='+n},t.decode=function(e){return o.decode(decodeURIComponent(e))},n.exports=t},{"../../stash":45}],22:[function(e,n,a){var t=e('./wx_lite');n.exports=t},{"./wx_lite":31}],23:[function(e,n,a){var t=e('./commons/redirect_base'),r=e('../callbacks'),i=e('../utils'),l={}.hasOwnProperty;n.exports={handleCharge:function(e){var n=e.extra;if(l.call(n,'pay_channel')){var a=n.pay_channel;'wx'!==a||i.inWeixin()?'alipay'!==a||i.inAlipay()?t.handleCharge(e):r.innerCallback('fail',r.error('Not in the Alipay browser')):r.innerCallback('fail',r.error('Not in the WeChat browser'))}else r.innerCallback('fail',r.error('invalid_charge','charge 格式不正确'))}}},{"../callbacks":2,"../utils":47,"./commons/redirect_base":18}],24:[function(e,n,a){var t=e('../utils'),r={}.hasOwnProperty;n.exports={JDPAY_WAP_URL_OLD:'https://m.jdpay.com/wepay/web/pay',JDPAY_H5_URL:'https://h5pay.jd.com/jdpay/saveOrder',JDPAY_PC_URL:'https://wepay.jd.com/jdpay/saveOrder',handleCharge:function(e){var n=e.credential[e.channel],a=this.JDPAY_H5_URL;r.call(n,'channelUrl')?(a=n.channelUrl,delete n.channelUrl):r.call(n,'merchantRemark')&&(a=this.JDPAY_WAP_URL_OLD),t.formSubmit(a,'post',n)}}},{"../utils":47}],25:[function(e,n,a){var t=e('../utils');n.exports={handleCharge:function(e){var n=e.credential[e.channel],a=n.channelUrl;delete n.channelUrl,t.formSubmit(a,'post',n)}}},{"../utils":47}],26:[function(e,n,a){var t=e('../utils');n.exports={handleCharge:function(e){var n=e.credential[e.channel];t.redirectTo(n,e.channel)}}},{"../utils":47}],27:[function(e,n,a){var t=e('../callbacks'),r=e('../utils'),i=e('../stash'),l={}.hasOwnProperty;n.exports={SRC_URL:'https://open.mobile.qq.com/sdk/qqapi.js?_bid=152',ID:'mqq_api',handleCharge:function(e){var n=e.credential[e.channel];l.call(n,'token_id')?(i.tokenId=n.token_id,r.loadUrlJs(this.ID,this.SRC_URL,this.callpay)):t.innerCallback('fail',t.error('invalid_credential','missing_token_id'))},callpay:function(){if('undefined'!=typeof mqq){if(0==mqq.QQVersion)return t.innerCallback('fail',t.error('Not in the QQ client')),void delete i.tokenId;mqq.tenpay.pay({tokenId:i.tokenId},function(e){0==e.resultCode?t.innerCallback('success'):t.innerCallback('fail',t.error(e.retmsg))})}else t.innerCallback('fail',t.error('network_err'));delete i.tokenId}}},{"../callbacks":2,"../stash":45,"../utils":47}],28:[function(e,n,a){arguments[4][16][0].apply(a,arguments)},{"../utils":47,dup:16}],29:[function(e,n,a){var t=e('../utils');n.exports={UPACP_PC_URL:'https://gateway.95516.com/gateway/api/frontTransReq.do',handleCharge:function(e){var n=e.credential[e.channel];t.formSubmit(this.UPACP_PC_URL,'post',n)}}},{"../utils":47}],30:[function(e,n,a){var t=e('../utils');n.exports={UPACP_WAP_URL:'https://gateway.95516.com/gateway/api/frontTransReq.do',handleCharge:function(e){var n=e.credential[e.channel];t.formSubmit(this.UPACP_WAP_URL,'post',n)}}},{"../utils":47}],31:[function(e,n,a){var r=e('../stash'),i=e('../callbacks'),l={}.hasOwnProperty;n.exports={PINGPP_NOTIFY_URL_BASE:'https://notify.pingxx.com/notify',handleCharge:function(e){for(var n=e.credential[e.channel],a=['appId','timeStamp','nonceStr','package','signType','paySign'],t=0;t<a.length;t++)if(!l.call(n,a[t]))return void i.innerCallback('fail',i.error('invalid_credential','missing_field_'+a[t]));r.jsApiParameters=n,this.callpay()},wxLiteEnabled:function(){return'undefined'!=typeof wx&&wx.requestPayment},callpay:function(){if(this.wxLiteEnabled()){var e=r.jsApiParameters;delete e.appId,e.complete=function(e){'requestPayment:ok'===e.errMsg&&i.innerCallback('success'),'requestPayment:cancel'!==e.errMsg&&'requestPayment:fail cancel'!==e.errMsg||i.innerCallback('cancel',i.error('用户取消支付')),'undefined'!==e.err_code&&'undefined'!==e.err_desc&&i.innerCallback('fail',i.error(e.err_desc,e))},wx.requestPayment(e)}else console.log('请在微信小程序中打开')},runTestMode:function(e){var n='/charges/'+e.id;wx.request({url:this.PINGPP_NOTIFY_URL_BASE+n+'?livemode=false',success:function(e){'success'==e.data?i.innerCallback('success'):i.innerCallback('fail',i.error('testmode_notify_fail'))},fail:function(){i.innerCallback('fail',i.error('network_err'))}})}}},{"../callbacks":2,"../stash":45}],32:[function(e,n,a){arguments[4][22][0].apply(a,arguments)},{"./wx_lite":31,dup:22}],33:[function(e,n,a){arguments[4][13][0].apply(a,arguments)},{"../callbacks":2,"../mods":43,"../stash":45,"../utils":47,dup:13}],34:[function(e,n,a){var t=e('./wx_pub');n.exports=t},{"./wx_pub":33}],35:[function(e,n,a){arguments[4][34][0].apply(a,arguments)},{"./wx_pub":33,dup:34}],36:[function(e,n,a){var t=e('../utils'),r=e('../callbacks'),i={}.hasOwnProperty;n.exports={handleCharge:function(e){var n=e.credential[e.channel];'string'==typeof n?t.redirectTo(n,e.channel):'object'==typeof n&&i.call(n,'url')?t.redirectTo(n.url,e.channel):r.innerCallback('fail',r.error('invalid_credential','credential 格式不正确'))}}},{"../callbacks":2,"../utils":47}],37:[function(e,n,a){var l=e('../utils'),c=e('../callbacks'),o={}.hasOwnProperty;n.exports={YEEPAY_WAP_URL:'https://ok.yeepay.com/paymobile/api/pay/request',YEEPAY_WAP_TEST_URL:'http://mobiletest.yeepay.com/paymobile/api/pay/request',handleCharge:function(e){for(var n,a=e.channel,t=e.credential[a],r=['merchantaccount','encryptkey','data'],i=0;i<r.length;i++)if(!o.call(t,r[i]))return void c.innerCallback('fail',c.error('invalid_credential','missing_field_'+r[i]));n=o.call(t,'mode')&&'test'==t.mode?this.YEEPAY_WAP_TEST_URL:this.YEEPAY_WAP_URL,l.redirectTo(n+'?'+l.stringifyData(t,a,!0),e.channel)}}},{"../callbacks":2,"../utils":47}],38:[function(e,n,a){var i=e('./utils'),r=e('./stash'),l=e('./libs/md5'),t={seperator:'###',limit:1,report_url:'https://statistics.pingxx.com/one_stats',timeout:100},c=function(e,n){var a=new RegExp('(^|&)'+n+'=([^&]*)(&|$)','i'),t=e.substring(0).match(a);return null!==t?unescape(t[2]):null};t.store=function(e){if(!i.inWxLite()&&!i.inAlipayLite()&&'undefined'!=typeof localStorage&&null!==localStorage){var n={};n.app_id=e.app_id||r.app_id||'app_not_defined',n.ch_id=e.ch_id||'',n.channel=e.channel||'',n.type=e.type||'',n.user_agent='undefined'==typeof navigator?'':navigator.userAgent,n.host='undefined'==typeof window?'':window.location.host,n.time=(new Date).getTime(),n.puid=r.puid;var a='app_id='+n.app_id+'&channel='+n.channel+'&ch_id='+n.ch_id+'&host='+n.host+'&time='+n.time+'&type='+n.type+'&user_agent='+n.user_agent+'&puid='+n.puid,t=a;null!==localStorage.getItem('PPP_ONE_STATS')&&0!==localStorage.getItem('PPP_ONE_STATS').length&&(t=localStorage.getItem('PPP_ONE_STATS')+this.seperator+a);try{localStorage.setItem('PPP_ONE_STATS',t)}catch(e){}}},t.send=function(){if('undefined'!=typeof localStorage&&null!==localStorage){var e=localStorage.getItem('PPP_ONE_STATS');if(!(null===e||e.split(this.seperator).length<this.limit))try{for(var n=[],a=e.split(this.seperator),t=l(a.join('&')),r=0;r<a.length;r++)n.push({app_id:c(a[r],'app_id'),channel:c(a[r],'channel'),ch_id:c(a[r],'ch_id'),host:c(a[r],'host'),time:c(a[r],'time'),type:c(a[r],'type'),user_agent:c(a[r],'user_agent'),puid:c(a[r],'puid')});i.request(this.report_url,'POST',n,function(e,n){200==n&&localStorage.removeItem('PPP_ONE_STATS')},void 0,{'X-Pingpp-Report-Token':t})}catch(e){}}},t.report=function(e){if(!i.inWxLite()&&!i.inAlipayLite()){var n=this;n.store(e),setTimeout(function(){n.send()},n.timeout)}},n.exports=t},{"./libs/md5":41,"./stash":45,"./utils":47}],39:[function(e,n,a){n.exports={Error:function(e,n){this.message=e,this.extra=n}}},{}],40:[function(e,n,a){var t=e('./stash'),r=e('./utils'),i=e('./collection');n.exports={SRC_URL:'https://cookie.pingxx.com',init:function(){var e=this;r.documentReady(function(){try{!r.inWxLite()&&!r.inAlipayLite()&&e.initPuid()}catch(e){}})},initPuid:function(){if('undefined'!=typeof window&&'undefined'!=typeof localStorage&&null!==localStorage){var e=localStorage.getItem('pingpp_uid');if(null===e){e=r.randomString();try{localStorage.setItem('pingpp_uid',e)}catch(e){}}if(t.puid=e,!document.getElementById('p_analyse_iframe')){var n;try{n=document.createElement('iframe')}catch(e){n=document.createElement('<iframe name="ifr"></iframe>')}n.id='p_analyse_iframe',n.src=this.SRC_URL+'/?puid='+e,n.style.display='none',document.body.appendChild(n)}setTimeout(function(){i.send()},0)}}}},{"./collection":38,"./stash":45,"./utils":47}],41:[function(e,n,a){!function(){function d(e,n){var a=(65535&e)+(65535&n);return(e>>16)+(n>>16)+(a>>16)<<16|65535&a}function c(e,n,a,t,r,i){return d((l=d(d(n,e),d(t,i)))<<(c=r)|l>>>32-c,a);var l,c}function p(e,n,a,t,r,i,l){return c(n&a|~n&t,e,n,r,i,l)}function f(e,n,a,t,r,i,l){return c(n&t|a&~t,e,n,r,i,l)}function h(e,n,a,t,r,i,l){return c(n^a^t,e,n,r,i,l)}function _(e,n,a,t,r,i,l){return c(a^(n|~t),e,n,r,i,l)}function o(e,n){var a,t,r,i,l;e[n>>5]|=128<<n%32,e[14+(n+64>>>9<<4)]=n;var c=1732584193,o=-271733879,s=-1732584194,u=271733878;for(a=0;a<e.length;a+=16)o=_(o=_(o=_(o=_(o=h(o=h(o=h(o=h(o=f(o=f(o=f(o=f(o=p(o=p(o=p(o=p(r=o,s=p(i=s,u=p(l=u,c=p(t=c,o,s,u,e[a],7,-680876936),o,s,e[a+1],12,-389564586),c,o,e[a+2],17,606105819),u,c,e[a+3],22,-1044525330),s=p(s,u=p(u,c=p(c,o,s,u,e[a+4],7,-176418897),o,s,e[a+5],12,1200080426),c,o,e[a+6],17,-1473231341),u,c,e[a+7],22,-45705983),s=p(s,u=p(u,c=p(c,o,s,u,e[a+8],7,1770035416),o,s,e[a+9],12,-1958414417),c,o,e[a+10],17,-42063),u,c,e[a+11],22,-1990404162),s=p(s,u=p(u,c=p(c,o,s,u,e[a+12],7,1804603682),o,s,e[a+13],12,-40341101),c,o,e[a+14],17,-1502002290),u,c,e[a+15],22,1236535329),s=f(s,u=f(u,c=f(c,o,s,u,e[a+1],5,-165796510),o,s,e[a+6],9,-1069501632),c,o,e[a+11],14,643717713),u,c,e[a],20,-373897302),s=f(s,u=f(u,c=f(c,o,s,u,e[a+5],5,-701558691),o,s,e[a+10],9,38016083),c,o,e[a+15],14,-660478335),u,c,e[a+4],20,-405537848),s=f(s,u=f(u,c=f(c,o,s,u,e[a+9],5,568446438),o,s,e[a+14],9,-1019803690),c,o,e[a+3],14,-187363961),u,c,e[a+8],20,1163531501),s=f(s,u=f(u,c=f(c,o,s,u,e[a+13],5,-1444681467),o,s,e[a+2],9,-51403784),c,o,e[a+7],14,1735328473),u,c,e[a+12],20,-1926607734),s=h(s,u=h(u,c=h(c,o,s,u,e[a+5],4,-378558),o,s,e[a+8],11,-2022574463),c,o,e[a+11],16,1839030562),u,c,e[a+14],23,-35309556),s=h(s,u=h(u,c=h(c,o,s,u,e[a+1],4,-1530992060),o,s,e[a+4],11,1272893353),c,o,e[a+7],16,-155497632),u,c,e[a+10],23,-1094730640),s=h(s,u=h(u,c=h(c,o,s,u,e[a+13],4,681279174),o,s,e[a],11,-358537222),c,o,e[a+3],16,-722521979),u,c,e[a+6],23,76029189),s=h(s,u=h(u,c=h(c,o,s,u,e[a+9],4,-640364487),o,s,e[a+12],11,-421815835),c,o,e[a+15],16,530742520),u,c,e[a+2],23,-995338651),s=_(s,u=_(u,c=_(c,o,s,u,e[a],6,-198630844),o,s,e[a+7],10,1126891415),c,o,e[a+14],15,-1416354905),u,c,e[a+5],21,-57434055),s=_(s,u=_(u,c=_(c,o,s,u,e[a+12],6,1700485571),o,s,e[a+3],10,-1894986606),c,o,e[a+10],15,-1051523),u,c,e[a+1],21,-2054922799),s=_(s,u=_(u,c=_(c,o,s,u,e[a+8],6,1873313359),o,s,e[a+15],10,-30611744),c,o,e[a+6],15,-1560198380),u,c,e[a+13],21,1309151649),s=_(s,u=_(u,c=_(c,o,s,u,e[a+4],6,-145523070),o,s,e[a+11],10,-1120210379),c,o,e[a+2],15,718787259),u,c,e[a+9],21,-343485551),c=d(c,t),o=d(o,r),s=d(s,i),u=d(u,l);return[c,o,s,u]}function s(e){var n,a='';for(n=0;n<32*e.length;n+=8)a+=String.fromCharCode(e[n>>5]>>>n%32&255);return a}function u(e){var n,a=[];for(a[(e.length>>2)-1]=void 0,n=0;n<a.length;n+=1)a[n]=0;for(n=0;n<8*e.length;n+=8)a[n>>5]|=(255&e.charCodeAt(n/8))<<n%32;return a}function t(e){var n,a,t='0123456789abcdef',r='';for(a=0;a<e.length;a+=1)n=e.charCodeAt(a),r+=t.charAt(n>>>4&15)+t.charAt(15&n);return r}function a(e){return unescape(encodeURIComponent(e))}function r(e){return s(o(u(n=a(e)),8*n.length));var n}function i(e,n){return function(e,n){var a,t,r=u(e),i=[],l=[];for(i[15]=l[15]=void 0,16<r.length&&(r=o(r,8*e.length)),a=0;a<16;a+=1)i[a]=909522486^r[a],l[a]=1549556828^r[a];return t=o(i.concat(u(n)),512+8*n.length),s(o(l.concat(t),640))}(a(e),a(n))}n.exports=function(e,n,a){return n?a?i(n,e):t(i(n,e)):a?r(e):t(r(e))}}()},{}],42:[function(e,n,a){var t=e('./version').v,l={}.hasOwnProperty,PingppSDK=function(){e('./init').init()};PingppSDK.prototype.version=t,n.exports=new PingppSDK;var c=e('./testmode'),o=e('./callbacks'),s=e('./errors').Error,u=e('./mods'),d=e('./stash'),p=e('./collection'),f=e('./payment_elements');PingppSDK.prototype.createPayment=function(e,n,a,t){'function'==typeof n&&(o.userCallback=n);try{f.init(e)}catch(e){if(e instanceof s)return void o.innerCallback('fail',o.error(e.message,e.extra));throw e}if(l.call(f,'id'))if(l.call(f,'channel')){l.call(f,'app')&&('string'==typeof f.app?d.app_id=f.app:'object'==typeof f.app&&'string'==typeof f.app.id&&(d.app_id=f.app.id)),p.report({type:d.type||'pure_sdk_click',channel:f.channel,ch_id:f.id});var r=f.channel;if(l.call(f,'credential'))if(f.paid&&0===f.actual_amount)o.innerCallback('success');else if(f.credential)if(l.call(f.credential,r))if(l.call(f,'livemode')){var i=u.getChannelModule(r);if(void 0===i)return console.error('channel module "'+r+'" is undefined'),void o.innerCallback('fail',o.error('invalid_channel','channel module "'+r+'" is undefined'));!1!==f.livemode?(void 0!==a&&(d.signature=a),'boolean'==typeof t&&(d.debug=t),i.handleCharge(f)):l.call(i,'runTestMode')?i.runTestMode(f):c.runTestMode(f)}else o.innerCallback('fail',o.error('invalid_charge','no_livemode_field'));else o.innerCallback('fail',o.error('invalid_credential','credential_is_incorrect'));else o.innerCallback('fail',o.error('invalid_credential','credential_is_undefined'));else o.innerCallback('fail',o.error('invalid_charge','no_credential'))}else o.innerCallback('fail',o.error('invalid_charge','no_channel'));else o.innerCallback('fail',o.error('invalid_charge','no_charge_id'))},PingppSDK.prototype.setAPURL=function(e){d.APURL=e},PingppSDK.prototype.setUrlReturnCallback=function(e,n){if('function'!=typeof e)throw'callback need to be a function';if(o.urlReturnCallback=e,void 0!==n){if(!Array.isArray(n))throw'channels need to be an array';o.urlReturnChannels=n}},PingppSDK.prototype.signAgreement=function(e,n){'function'==typeof n&&(o.userAgreementCallback=n);var a=u.getExtraModule('agreement');return void 0===a?(console.error('module "agreement" is undefined'),o.innerCallback('fail',o.error('invalid_module','module "agreement" is undefined')),!1):a.signAgreement(e)}},{"./callbacks":2,"./collection":38,"./errors":39,"./init":40,"./mods":43,"./payment_elements":44,"./stash":45,"./testmode":46,"./version":48}],43:[function(e,n,a){var t={}.hasOwnProperty,r={};(n.exports=r).channels={alipay:e('./channels/alipay'),alipay_lite:e('./channels/alipay_lite'),alipay_pc_direct:e('./channels/alipay_pc_direct'),alipay_qr:e('./channels/alipay_qr'),alipay_qr_lakala:e('./channels/alipay_qr_lakala'),alipay_wap:e('./channels/alipay_wap'),alipay_wap_lakala:e('./channels/alipay_wap_lakala'),bfb_wap:e('./channels/bfb_wap'),cb_alipay_pc_direct:e('./channels/cb_alipay_pc_direct'),cb_alipay_wap:e('./channels/cb_alipay_wap'),cb_wx_pub:e('./channels/cb_wx_pub'),ccb_qr:e('./channels/ccb_qr'),ccb_wap:e('./channels/ccb_wap'),cmb_pc_qr:e('./channels/cmb_pc_qr'),cmb_wallet:e('./channels/cmb_wallet'),coolcredit:e('./channels/coolcredit'),cp_b2b:e('./channels/cp_b2b'),isv_lite:e('./channels/isv_lite'),isv_wap:e('./channels/isv_wap'),jdpay_wap:e('./channels/jdpay_wap'),pab_pc:e('./channels/pab_pc'),paypal:e('./channels/paypal'),qpay_pub:e('./channels/qpay_pub'),upacp_b2b:e('./channels/upacp_b2b'),upacp_pc:e('./channels/upacp_pc'),upacp_wap:e('./channels/upacp_wap'),wx_lite:e('./channels/wx_lite'),wx_lite_pab:e('./channels/wx_lite_pab'),wx_pub:e('./channels/wx_pub'),wx_pub_hzbank:e('./channels/wx_pub_hzbank'),wx_pub_pab:e('./channels/wx_pub_pab'),wx_wap:e('./channels/wx_wap'),yeepay_wap:e('./channels/yeepay_wap')},r.extras={ap:e('./channels/extras/ap'),agreement:e('./agreement')},r.getChannelModule=function(e){if(t.call(r.channels,e))return r.channels[e]},r.getExtraModule=function(e){if(t.call(r.extras,e))return r.extras[e]}},{"./agreement":1,"./channels/alipay":3,"./channels/alipay_lite":4,"./channels/alipay_pc_direct":5,"./channels/alipay_qr":6,"./channels/alipay_qr_lakala":7,"./channels/alipay_wap":8,"./channels/alipay_wap_lakala":9,"./channels/bfb_wap":10,"./channels/cb_alipay_pc_direct":11,"./channels/cb_alipay_wap":12,"./channels/cb_wx_pub":13,"./channels/ccb_qr":14,"./channels/ccb_wap":15,"./channels/cmb_pc_qr":16,"./channels/cmb_wallet":17,"./channels/coolcredit":19,"./channels/cp_b2b":20,"./channels/extras/ap":21,"./channels/isv_lite":22,"./channels/isv_wap":23,"./channels/jdpay_wap":24,"./channels/pab_pc":25,"./channels/paypal":26,"./channels/qpay_pub":27,"./channels/upacp_b2b":28,"./channels/upacp_pc":29,"./channels/upacp_wap":30,"./channels/wx_lite":31,"./channels/wx_lite_pab":32,"./channels/wx_pub":33,"./channels/wx_pub_hzbank":34,"./channels/wx_pub_pab":35,"./channels/wx_wap":36,"./channels/yeepay_wap":37}],44:[function(e,n,a){var i=e('./errors').Error,l={}.hasOwnProperty;n.exports={id:null,or_id:null,channel:null,app:null,credential:{},extra:null,livemode:null,order_no:null,time_expire:null,paid:!1,status:null,actual_amount:null,init:function(e){var n;if('string'==typeof e)try{n=JSON.parse(e)}catch(e){throw new i('json_decode_fail',e)}else n=e;if(void 0===n)throw new i('json_decode_fail');if(l.call(n,'object')&&'order'==n.object){n.or_id=n.id,n.order_no=n.merchant_order_no;var a=n.charge_essentials;if(n.channel=a.channel,n.credential=a.credential,n.extra=a.extra,l.call(n,'charge')&&null!=n.charge)n.id=n.charge;else if(l.call(a,'id')&&null!=a.id)n.id=a.id;else if(l.call(n,'charges'))for(var t=0;t<n.charges.data.length;t++)if(n.charges.data[t].channel===a.channel){n.id=n.charges.data[t].id;break}}else l.call(n,'object')&&'recharge'==n.object&&(n=n.charge);for(var r in this)l.call(n,r)&&(this[r]=n[r]);return this},clear:function(){for(var e in this)'function'!=typeof this[e]&&(this[e]=null)}}},{"./errors":39}],45:[function(e,n,a){n.exports={}},{}],46:[function(e,n,a){var t=e('./utils'),r={}.hasOwnProperty;n.exports={PINGPP_MOCK_URL:'http://sissi.pingxx.com/mock.php',runTestMode:function(e){
|
|
2
|
-
var n={ch_id:e.id,scheme:'http',channel:e.channel};r.call(e,'order_no')?n.order_no=e.order_no:r.call(e,'orderNo')&&(n.order_no=e.orderNo),r.call(e,'time_expire')?n.time_expire=e.time_expire:r.call(e,'timeExpire')&&(n.time_expire=e.timeExpire),r.call(e,'extra')&&(n.extra=encodeURIComponent(JSON.stringify(e.extra))),t.redirectTo(this.PINGPP_MOCK_URL+'?'+t.stringifyData(n),e.channel)}}},{"./utils":47}],47:[function(e,n,a){var t=e('./callbacks'),o={}.hasOwnProperty,s=n.exports={stringifyData:function(e,n,a){void 0===a&&(a=!1);var t=[];for(var r in e)o.call(e,r)&&'function'!=typeof e[r]&&('bfb_wap'==n&&'url'==r||'yeepay_wap'==n&&'mode'==r||'channel_url'!=r&&t.push(r+'='+(a?encodeURIComponent(e[r]):e[r])));return t.join('&')},request:function(e,n,a,t,r,i){if('undefined'!=typeof XMLHttpRequest){var l=new XMLHttpRequest;if(void 0!==l.timeout&&(l.timeout=6e3),'GET'===(n=n.toUpperCase())&&'object'==typeof a&&a&&(e+='?'+s.stringifyData(a,'',!0)),l.open(n,e,!0),void 0!==i)for(var c in i)o.call(i,c)&&l.setRequestHeader(c,i[c]);'POST'===n?(l.setRequestHeader('Content-type','application/json; charset=utf-8'),l.send(JSON.stringify(a))):l.send(),void 0===t&&(t=function(){}),void 0===r&&(r=function(){}),l.onreadystatechange=function(){4==l.readyState&&t(l.responseText,l.status,l)},l.onerror=function(e){r(l,0,e)}}else console.log('Function XMLHttpRequest is undefined.')},formSubmit:function(e,n,a){if('undefined'!=typeof window){var t=document.createElement('form');for(var r in t.setAttribute('method',n),t.setAttribute('action',e),a)if(o.call(a,r)){var i=document.createElement('input');i.setAttribute('type','hidden'),i.setAttribute('name',r),i.setAttribute('value',a[r]),t.appendChild(i)}document.body.appendChild(t),t.submit()}else console.log('Not a browser, form submit url: '+e)},randomString:function(e){void 0===e&&(e=32);for(var n='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789',a=n.length,t='',r=0;r<e;r++)t+=n.charAt(Math.floor(Math.random()*a));return t},redirectTo:function(e,n){t.shouldReturnUrlByCallback(n)?t.triggerUrlReturnCallback(null,e):'undefined'!=typeof window?window.location.href=e:console.log('Not a browser, redirect url: '+e)},inWeixin:function(){return'undefined'!=typeof navigator&&-1!==navigator.userAgent.toLowerCase().indexOf('micromessenger')},inAlipay:function(){return'undefined'!=typeof navigator&&-1!==navigator.userAgent.toLowerCase().indexOf('alipayclient')},inWxLite:function(){return'undefined'!=typeof wx&&(wx.miniProgram||wx.requestPayment)},inAlipayLite:function(){return'undefined'!=typeof my&&my.tradePay},documentReady:function(e){'undefined'!=typeof document?'loading'!=document.readyState?e():document.addEventListener('DOMContentLoaded',e):e()},loadUrlJs:function(e,n,a){var t=document.getElementsByTagName('head')[0],r=null;null==document.getElementById(e)?((r=document.createElement('script')).setAttribute('type','text/javascript'),r.setAttribute('src',n),r.setAttribute('id',e),r.async=!0,null!=a&&(r.onload=r.onreadystatechange=function(){if(r.ready)return!1;r.readyState&&'loaded'!=r.readyState&&'complete'!=r.readyState||(r.ready=!0,a())}),t.appendChild(r)):null!=a&&a()}}},{"./callbacks":2}],48:[function(e,n,a){n.exports={v:'2.2.21'}},{}]},{},[42])(42)});
|
|
1
|
+
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).pingpp=e()}}(function(){return function l(i,c,o){function s(a,e){if(!c[a]){if(!i[a]){var n="function"==typeof require&&require;if(!e&&n)return n(a,!0);if(u)return u(a,!0);var r=new Error("Cannot find module '"+a+"'");throw r.code="MODULE_NOT_FOUND",r}var t=c[a]={exports:{}};i[a][0].call(t.exports,function(e){return s(i[a][1][e]||e)},t,t.exports,l,i,c,o)}return c[a].exports}for(var u="function"==typeof require&&require,e=0;e<o.length;e++)s(o[e]);return s}({1:[function(e,a,n){var l={}.hasOwnProperty,i=e('./callbacks'),c=e('./utils');a.exports={signAgreement:function(e){var a;if('string'==typeof e)try{a=JSON.parse(e)}catch(e){return i.innerAgreementCallback('fail',i.error('json_decode_fail',e)),!1}else a=e;if(void 0===a)return i.innerAgreementCallback('fail',i.error('json_decode_fail')),!1;if(!l.call(a,'object')||'agreement'!==a.object||!l.call(a,'channel')||!l.call(a,'credential')||'object'!=typeof a.credential)return i.innerAgreementCallback('fail',i.error('invalid_object')),!1;if(!l.call(a.credential,a.channel))return i.innerAgreementCallback('fail',i.error('invalid_credential')),!1;var n,r=a.credential[a.channel];if('string'==typeof r?n=r:l.call(r,'credential')&&'string'==typeof r.credential&&(n=r.credential),void 0===n)return i.innerAgreementCallback('fail',i.error('invalid_credential')),!1;if('alipay'===a.channel.substring(0,6)){var t=new URL(n);n='http://d.alipay.com/i/index.htm?iframeSrc='+encodeURIComponent("alipays://platformapi/startapp?appId=60000157&appClearTop=false&startMultApp=YES&sign_params="+encodeURIComponent(t.search.substring(1)))}return setTimeout(function(){c.redirectTo(n)},0),!0}}},{"./callbacks":2,"./utils":52}],2:[function(n,e,a){e.exports={userCallback:void 0,urlReturnCallback:void 0,urlReturnChannels:['alipay_pc_direct'],userAgreementCallback:void 0,innerCallback:function(e,a){'function'==typeof this.userCallback&&(void 0===a&&(a=this.error()),this.userCallback(e,a),this.userCallback=void 0,n('./payment_elements').clear())},error:function(e,a){return{msg:e=void 0===e?'':e,extra:a=void 0===a?'':a}},triggerUrlReturnCallback:function(e,a){'function'==typeof this.urlReturnCallback&&this.urlReturnCallback(e,a)},shouldReturnUrlByCallback:function(e){return'function'==typeof this.urlReturnCallback&&-1!==this.urlReturnChannels.indexOf(e)},innerAgreementCallback:function(e,a){'function'==typeof this.userAgreementCallback&&(void 0===a&&(a=this.error()),this.userAgreementCallback(e,a),this.userAgreementCallback=void 0)}}},{"./payment_elements":49}],3:[function(e,a,n){var r=e('../callbacks'),t={}.hasOwnProperty;a.exports={PINGPP_NOTIFY_URL_BASE:'https://notify.pingxx.com/notify',handleCharge:function(e){var a=e.credential[e.channel];a||t.call(a,'orderInfo')?this.callpay(a.orderInfo):r.innerCallback('fail',r.error('invalid_credential','missing_alipay'))},alipayLiteEnabled:function(){return'undefined'!=typeof my&&my.tradePay},callpay:function(e){var a=this;if(this.alipayLiteEnabled())return this.alipayLitePay(e);if('undefined'!=typeof navigator&&/AlipayClient/.test(navigator.userAgent||navigator.swuserAgent))return this.waitAlipayJSBridgde(function(){a.alipayJsBridgePay(e)});var n='请在支付宝小程序或者支付宝应用内中打开';console.log(n),r.innerCallback('fail',r.error(n))},waitAlipayJSBridgde:function(e){window.AlipayJSBridge?e&&e():document.addEventListener('AlipayJSBridgeReady',e,!1)},alipayJsBridgePay:function(e){AlipayJSBridge.call('tradePay',{orderStr:e},this.alipayResultHandler)},alipayLitePay:function(e){var a={};a.orderStr=e,a.complete=this.alipayResultHandler,my.tradePay(a)},alipayResultHandler:function(e){var a={resultCode:e.resultCode};t.call(e,'memo')&&(a.memo=e.memo),t.call(e,'result')&&(a.result=e.result),'9000'==e.resultCode?r.innerCallback('success',r.error('',a)):'6001'==e.resultCode?r.innerCallback('cancel',r.error('用户取消支付',a)):r.innerCallback('fail',r.error('支付失败',a))},runTestMode:function(e){var a='/charges/'+e.id;my.httpRequest({url:this.PINGPP_NOTIFY_URL_BASE+a+'?livemode=false',success:function(e){'success'==e.data?r.innerCallback('success'):r.innerCallback('fail',r.error('testmode_notify_fail'))},fail:function(){r.innerCallback('fail',r.error('network_err'))}})}}},{"../callbacks":2}],4:[function(e,a,n){var r=e('../callbacks');a.exports={PINGPP_NOTIFY_URL_BASE:'https://notify.pingxx.com/notify',handleCharge:function(e){var a=e.credential[e.channel];a?this.callpay(a):r.innerCallback('fail',r.error('invalid_credential','missing_alipay_lite'))},alipayLiteEnabled:function(){return'undefined'!=typeof my&&my.tradePay},callpay:function(e){if(this.alipayLiteEnabled()){var a={};a.tradeNO=e,a.complete=function(e){9e3==e.resultCode?r.innerCallback('success'):6001==e.resultCode?r.innerCallback('cancel',r.error('用户取消支付')):r.innerCallback('fail',r.error('支付失败'))},my.tradePay(a)}else console.log('请在支付宝小程序中打开')},runTestMode:function(e){var a='/charges/'+e.id;my.httpRequest({url:this.PINGPP_NOTIFY_URL_BASE+a+'?livemode=false',success:function(e){'success'==e.data?r.innerCallback('success'):r.innerCallback('fail',r.error('testmode_notify_fail'))},fail:function(){r.innerCallback('fail',r.error('network_err'))}})}}},{"../callbacks":2}],5:[function(e,a,n){var l=e('../utils'),i={}.hasOwnProperty;a.exports={ALIPAY_PC_DIRECT_URL:'https://mapi.alipay.com/gateway.do',handleCharge:function(e){var a=e.channel,n=e.credential[a],r=this.ALIPAY_PC_DIRECT_URL;i.call(n,'channel_url')&&(r=n.channel_url),i.call(n,'_input_charset')||i.call(n,'service')&&'create_direct_pay_by_user'===n.service&&(n._input_charset='utf-8');var t=l.stringifyData(n,a,!0);l.redirectTo(r+'?'+t,a)}}},{"../utils":52}],6:[function(e,a,n){var r={}.hasOwnProperty,t=e('../callbacks');a.exports={handleCharge:function(e){var a=e.credential[e.channel];r.call(a,'transaction_no')?this.tradePay(a.transaction_no):t.innerCallback('fail',t.error('invalid_credential','missing_field_transaction_no'))},ready:function(e){window.AlipayJSBridge?e&&e():document.addEventListener('AlipayJSBridgeReady',e,!1)},tradePay:function(e){this.ready(function(){AlipayJSBridge.call('tradePay',{tradeNO:e},function(e){'9000'==e.resultCode?t.innerCallback('success'):'6001'==e.resultCode?t.innerCallback('cancel',t.error(e.result)):t.innerCallback('fail',t.error(e.result))})})}}},{"../callbacks":2}],7:[function(e,a,n){var r=e('./commons/redirect_base');a.exports={handleCharge:function(e){r.handleCharge(e)}}},{"./commons/redirect_base":23}],8:[function(e,a,n){var i=e('../utils'),c=e('../mods'),o={}.hasOwnProperty;a.exports={ALIPAY_WAP_URL_OLD:'https://wappaygw.alipay.com/service/rest.htm',ALIPAY_WAP_URL:'https://mapi.alipay.com/gateway.do',handleCharge:function(e){var a=e.channel,n=e.credential[a],r=this.ALIPAY_WAP_URL;o.call(n,'req_data')?r=this.ALIPAY_WAP_URL_OLD:o.call(n,'channel_url')&&(r=n.channel_url),o.call(n,'_input_charset')||(o.call(n,'service')&&'alipay.wap.create.direct.pay.by.user'===n.service||o.call(n,'req_data'))&&(n._input_charset='utf-8');var t=r+'?'+i.stringifyData(n,a,!0),l=c.getExtraModule('ap');i.inWeixin()&&void 0!==l?l.pay(t):i.redirectTo(t,a)}}},{"../mods":48,"../utils":52}],9:[function(e,a,n){arguments[4][7][0].apply(n,arguments)},{"./commons/redirect_base":23,dup:7}],10:[function(e,a,n){var r=e('../utils'),t=e('../callbacks'),l={}.hasOwnProperty;a.exports={handleCharge:function(e){var a=e.channel,n=e.credential[a];l.call(n,'url')?r.redirectTo(n.url+'?'+r.stringifyData(n,a),a):t.innerCallback('fail',t.error('invalid_credential','missing_field:url'))}}},{"../callbacks":2,"../utils":52}],11:[function(e,a,n){var l=e('../utils'),i={}.hasOwnProperty;a.exports={ALIPAY_PC_DIRECT_URL:'https://intlmapi.alipay.com/gateway.do',handleCharge:function(e){var a=e.channel,n=e.credential[a],r=this.ALIPAY_PC_DIRECT_URL;i.call(n,'channel_url')&&(r=n.channel_url),i.call(n,'_input_charset')||i.call(n,'service')&&'create_forex_trade'===n.service&&(n._input_charset='utf-8');var t=l.stringifyData(n,a,!0);l.redirectTo(r+'?'+t,a)}}},{"../utils":52}],12:[function(e,a,n){var i=e('../utils'),c=e('../mods'),o={}.hasOwnProperty;a.exports={ALIPAY_WAP_URL:'https://intlmapi.alipay.com/gateway.do',handleCharge:function(e){var a=e.channel,n=e.credential[a],r=this.ALIPAY_WAP_URL;o.call(n,'channel_url')&&(r=n.channel_url),o.call(n,'_input_charset')||o.call(n,'service')&&'create_forex_trade_wap'===n.service&&(n._input_charset='utf-8');var t=r+'?'+i.stringifyData(n,a,!0),l=c.getExtraModule('ap');i.inWeixin()&&void 0!==l?l.pay(t):i.redirectTo(t,a)}}},{"../mods":48,"../utils":52}],13:[function(e,a,n){var t=e('../callbacks'),r=e('../utils'),l=e('../stash'),i=e('../mods'),c={}.hasOwnProperty;a.exports={PINGPP_NOTIFY_URL_BASE:'https://notify.pingxx.com/notify',handleCharge:function(e){for(var a=e.credential[e.channel],n=['appId','timeStamp','nonceStr','package','signType','paySign'],r=0;r<n.length;r++)if(!c.call(a,n[r]))return void t.innerCallback('fail',t.error('invalid_credential','missing_field_'+n[r]));l.jsApiParameters=a,this.callpay()},callpay:function(){var e=this,a=i.getExtraModule('wx_jssdk');if(void 0!==a&&a.jssdkEnabled())a.callpay();else if('undefined'==typeof WeixinJSBridge){var n=function(){e.jsApiCall()};document.addEventListener?document.addEventListener('WeixinJSBridgeReady',n,!1):document.attachEvent&&(document.attachEvent('WeixinJSBridgeReady',n),document.attachEvent('onWeixinJSBridgeReady',n))}else this.jsApiCall()},jsApiCall:function(){c.call(l,'jsApiParameters')&&WeixinJSBridge.invoke('getBrandWCPayRequest',l.jsApiParameters,function(e){delete l.jsApiParameters,'get_brand_wcpay_request:ok'==e.err_msg?t.innerCallback('success'):'get_brand_wcpay_request:cancel'==e.err_msg?t.innerCallback('cancel'):t.innerCallback('fail',t.error('wx_result_fail',e.err_msg))})},runTestMode:function(e){if(confirm('模拟付款?')){var a='/charges/'+e.id;r.request(this.PINGPP_NOTIFY_URL_BASE+a+'?livemode=false','GET',null,function(e,a){if(200<=a&&a<400&&'success'==e)t.innerCallback('success');else{var n='http_code:'+a+';response:'+e;t.innerCallback('fail',t.error('testmode_notify_fail',n))}},function(){t.innerCallback('fail',t.error('network_err'))})}}}},{"../callbacks":2,"../mods":48,"../stash":50,"../utils":52}],14:[function(e,a,n){arguments[4][7][0].apply(n,arguments)},{"./commons/redirect_base":23,dup:7}],15:[function(e,a,n){var t=e('../utils'),l={}.hasOwnProperty,i=e('../callbacks');a.exports={CCB_WAP_URL_BASE:'https://ibsbjstar.ccb.com.cn/CCBIS/ccbMain?',handleCharge:function(e){var a=e.channel,n=e.credential[a];if(l.call(n,'orderinfo')){var r=this.CCB_WAP_URL_BASE+n.orderinfo;t.redirectTo(r,a)}else i.innerCallback('fail',i.error('invalid_credential','missing_field:orderinfo'))}}},{"../callbacks":2,"../utils":52}],16:[function(e,a,n){var r=e('../utils'),t=e('../callbacks');a.exports={handleCharge:function(e){var a=e.credential[e.channel];'string'==typeof a?r.redirectTo(a,e.channel):t.innerCallback('fail',t.error('invalid_credential','credential 格式不正确'))}}},{"../callbacks":2,"../utils":52}],17:[function(e,a,n){arguments[4][16][0].apply(n,arguments)},{"../callbacks":2,"../utils":52,dup:16}],18:[function(e,a,n){var r=e('../utils'),t=e('../callbacks');a.exports={handleCharge:function(e){var a=e.credential[e.channel];'string'==typeof a?r.redirectTo(a,e.channel):t.innerCallback('fail',t.error('invalid_credential','credential 格式不正确'))}}},{"../callbacks":2,"../utils":52}],19:[function(e,a,n){arguments[4][16][0].apply(n,arguments)},{"../callbacks":2,"../utils":52,dup:16}],20:[function(e,a,n){arguments[4][16][0].apply(n,arguments)},{"../callbacks":2,"../utils":52,dup:16}],21:[function(e,a,n){var t=e('../utils'),l={}.hasOwnProperty;a.exports={handleCharge:function(e){var a,n=e.channel,r=e.credential[n];l.call(r,'channel_url')&&(a=r.channel_url,delete r.channel_url),t.formSubmit(a,'post',r)}}},{"../utils":52}],22:[function(e,a,n){var r=e('../utils'),t={}.hasOwnProperty;a.exports={CMB_WALLET_URL:'https://netpay.cmbchina.com/netpayment/BaseHttp.dll?MB_EUserPay',handleCharge:function(e){var a=e.credential[e.channel],n=this.CMB_WALLET_URL;t.call(a,'ChannelUrl')&&(n=a.ChannelUrl,delete a.ChannelUrl),t.call(a,'channelVersion')&&delete a.channelVersion,r.formSubmit(n,'post',a)}}},{"../utils":52}],23:[function(e,a,n){var r=e('../../utils'),t=e('../../callbacks'),l={}.hasOwnProperty;a.exports={handleCharge:function(e){var a,n=e.credential[e.channel];if('string'==typeof n)a=n;else{if(!l.call(n,'url'))return void t.innerCallback('fail',t.error('invalid_credential','credential format is incorrect'));a=n.url}r.redirectTo(a,e.channel)}}},{"../../callbacks":2,"../../utils":52}],24:[function(e,a,n){var r=e('../utils');a.exports={handleCharge:function(e){var a=e.credential[e.channel];r.formSubmit(a.request_url,'post',a.request_data)}}},{"../utils":52}],25:[function(e,a,n){var r=e('../utils');a.exports={CP_B2B_URL:'https://payment.chinapay.com/CTITS/service/rest/page/nref/000000000017/0/0/0/0/0',handleCharge:function(e){var a=e.credential[e.channel];r.formSubmit(this.CP_B2B_URL,'post',a)}}},{"../utils":52}],26:[function(e,a,n){var r,o,t=e('../../stash'),l={}.hasOwnProperty;o={PADCHAR:'=',ALPHA:'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',makeDOMException:function(){try{return new DOMException(DOMException.INVALID_CHARACTER_ERR)}catch(e){var a=new Error('DOM Exception 5');return a.code=a.number=5,a.name=a.description='INVALID_CHARACTER_ERR',a.toString=function(){return'Error: '+a.name+': '+a.message},a}},getbyte64:function(e,a){var n=o.ALPHA.indexOf(e.charAt(a));if(-1===n)throw o.makeDOMException();return n},decode:function(e){e=''+e;var a,n,r,t=o.getbyte64,l=e.length;if(0===l)return e;if(l%4!=0)throw o.makeDOMException();a=0,e.charAt(l-1)===o.PADCHAR&&(a=1,e.charAt(l-2)===o.PADCHAR&&(a=2),l-=4);var i=[];for(n=0;n<l;n+=4)r=t(e,n)<<18|t(e,n+1)<<12|t(e,n+2)<<6|t(e,n+3),i.push(String.fromCharCode(r>>16,r>>8&255,255&r));switch(a){case 1:r=t(e,n)<<18|t(e,n+1)<<12|t(e,n+2)<<6,i.push(String.fromCharCode(r>>16,r>>8&255));break;case 2:r=t(e,n)<<18|t(e,n+1)<<12,i.push(String.fromCharCode(r>>16))}return i.join('')},getbyte:function(e,a){var n=e.charCodeAt(a);if(255<n)throw o.makeDOMException();return n},encode:function(e){if(1!==arguments.length)throw new SyntaxError('Not enough arguments');var a,n,r=o.PADCHAR,t=o.ALPHA,l=o.getbyte,i=[],c=(e=''+e).length-e.length%3;if(0===e.length)return e;for(a=0;a<c;a+=3)n=l(e,a)<<16|l(e,a+1)<<8|l(e,a+2),i.push(t.charAt(n>>18)),i.push(t.charAt(n>>12&63)),i.push(t.charAt(n>>6&63)),i.push(t.charAt(63&n));switch(e.length-c){case 1:n=l(e,a)<<16,i.push(t.charAt(n>>18)+t.charAt(n>>12&63)+r+r);break;case 2:n=l(e,a)<<16|l(e,a+1)<<8,i.push(t.charAt(n>>18)+t.charAt(n>>12&63)+t.charAt(n>>6&63)+r)}return i.join('')}},(r={}).url='pay.htm',r.pay=function(e){var a=encodeURIComponent(o.encode(e));l.call(t,'APURL')&&(r.url=t.APURL),location.href=r.url+'?goto='+a},r.decode=function(e){return o.decode(decodeURIComponent(e))},a.exports=r},{"../../stash":50}],27:[function(e,a,n){var r=e('./wx_lite');a.exports=r},{"./wx_lite":38}],28:[function(e,a,n){var r=e('./commons/redirect_base'),t=e('../callbacks'),l=e('../utils'),i={}.hasOwnProperty;a.exports={handleCharge:function(e){var a=e.extra;if(i.call(a,'pay_channel')){var n=a.pay_channel;'wx'!==n||l.inWeixin()?'alipay'!==n||l.inAlipay()?r.handleCharge(e):t.innerCallback('fail',t.error('Not in the Alipay browser')):t.innerCallback('fail',t.error('Not in the WeChat browser'))}else t.innerCallback('fail',t.error('invalid_charge','charge 格式不正确'))}}},{"../callbacks":2,"../utils":52,"./commons/redirect_base":23}],29:[function(e,a,n){var r=e('../utils'),t={}.hasOwnProperty;a.exports={JDPAY_WAP_URL_OLD:'https://m.jdpay.com/wepay/web/pay',JDPAY_H5_URL:'https://h5pay.jd.com/jdpay/saveOrder',JDPAY_PC_URL:'https://wepay.jd.com/jdpay/saveOrder',handleCharge:function(e){var a=e.credential[e.channel],n=this.JDPAY_H5_URL;t.call(a,'channelUrl')?(n=a.channelUrl,delete a.channelUrl):t.call(a,'merchantRemark')&&(n=this.JDPAY_WAP_URL_OLD),r.formSubmit(n,'post',a)}}},{"../utils":52}],30:[function(e,a,n){var r=e('../utils'),t={}.hasOwnProperty;a.exports={handleCharge:function(e){var a=e.credential[e.channel];t.call(a,'bankUrl')&&(request_url=a.bankUrl,delete a.bankUrl),r.formSubmit(request_url,'post',a)}}},{"../utils":52}],31:[function(e,a,n){arguments[4][30][0].apply(n,arguments)},{"../utils":52,dup:30}],32:[function(e,a,n){var r=e('../utils');a.exports={handleCharge:function(e){var a=e.credential[e.channel],n=a.channelUrl;delete a.channelUrl,r.formSubmit(n,'post',a)}}},{"../utils":52}],33:[function(e,a,n){var r=e('../utils');a.exports={handleCharge:function(e){var a=e.credential[e.channel];r.redirectTo(a,e.channel)}}},{"../utils":52}],34:[function(e,a,n){var r=e('../callbacks'),t=e('../utils'),l=e('../stash'),i={}.hasOwnProperty;a.exports={SRC_URL:'https://open.mobile.qq.com/sdk/qqapi.js?_bid=152',ID:'mqq_api',handleCharge:function(e){var a=e.credential[e.channel];i.call(a,'token_id')?(l.tokenId=a.token_id,t.loadUrlJs(this.ID,this.SRC_URL,this.callpay)):r.innerCallback('fail',r.error('invalid_credential','missing_token_id'))},callpay:function(){if('undefined'!=typeof mqq){if(0==mqq.QQVersion)return r.innerCallback('fail',r.error('Not in the QQ client')),void delete l.tokenId;mqq.tenpay.pay({tokenId:l.tokenId},function(e){0==e.resultCode?r.innerCallback('success'):r.innerCallback('fail',r.error(e.retmsg))})}else r.innerCallback('fail',r.error('network_err'));delete l.tokenId}}},{"../callbacks":2,"../stash":50,"../utils":52}],35:[function(e,a,n){arguments[4][21][0].apply(n,arguments)},{"../utils":52,dup:21}],36:[function(e,a,n){var r=e('../utils');a.exports={UPACP_PC_URL:'https://gateway.95516.com/gateway/api/frontTransReq.do',handleCharge:function(e){var a=e.credential[e.channel];r.formSubmit(this.UPACP_PC_URL,'post',a)}}},{"../utils":52}],37:[function(e,a,n){var r=e('../utils');a.exports={UPACP_WAP_URL:'https://gateway.95516.com/gateway/api/frontTransReq.do',handleCharge:function(e){var a=e.credential[e.channel];r.formSubmit(this.UPACP_WAP_URL,'post',a)}}},{"../utils":52}],38:[function(e,a,n){var t=e('../stash'),l=e('../callbacks'),i={}.hasOwnProperty;a.exports={PINGPP_NOTIFY_URL_BASE:'https://notify.pingxx.com/notify',handleCharge:function(e){for(var a=e.credential[e.channel],n=['appId','timeStamp','nonceStr','package','signType','paySign'],r=0;r<n.length;r++)if(!i.call(a,n[r]))return void l.innerCallback('fail',l.error('invalid_credential','missing_field_'+n[r]));t.jsApiParameters=a,this.callpay()},wxLiteEnabled:function(){return'undefined'!=typeof wx&&wx.requestPayment},callpay:function(){if(this.wxLiteEnabled()){var e=t.jsApiParameters;delete e.appId,e.complete=function(e){'requestPayment:ok'===e.errMsg&&l.innerCallback('success'),'requestPayment:cancel'!==e.errMsg&&'requestPayment:fail cancel'!==e.errMsg||l.innerCallback('cancel',l.error('用户取消支付')),'undefined'!==e.err_code&&'undefined'!==e.err_desc&&l.innerCallback('fail',l.error(e.err_desc,e))},wx.requestPayment(e)}else console.log('请在微信小程序中打开')},runTestMode:function(e){var a='/charges/'+e.id;wx.request({url:this.PINGPP_NOTIFY_URL_BASE+a+'?livemode=false',success:function(e){'success'==e.data?l.innerCallback('success'):l.innerCallback('fail',l.error('testmode_notify_fail'))},fail:function(){l.innerCallback('fail',l.error('network_err'))}})}}},{"../callbacks":2,"../stash":50}],39:[function(e,a,n){arguments[4][27][0].apply(n,arguments)},{"./wx_lite":38,dup:27}],40:[function(e,a,n){arguments[4][13][0].apply(n,arguments)},{"../callbacks":2,"../mods":48,"../stash":50,"../utils":52,dup:13}],41:[function(e,a,n){var r=e('./wx_pub');a.exports=r},{"./wx_pub":40}],42:[function(e,a,n){arguments[4][41][0].apply(n,arguments)},{"./wx_pub":40,dup:41}],43:[function(e,a,n){var r=e('../utils'),t=e('../callbacks'),l={}.hasOwnProperty;a.exports={handleCharge:function(e){var a=e.credential[e.channel];'string'==typeof a?r.redirectTo(a,e.channel):'object'==typeof a&&l.call(a,'url')?r.redirectTo(a.url,e.channel):t.innerCallback('fail',t.error('invalid_credential','credential 格式不正确'))}}},{"../callbacks":2,"../utils":52}],44:[function(e,a,n){var i=e('../utils'),c=e('../callbacks'),o={}.hasOwnProperty;a.exports={YEEPAY_WAP_URL:'https://ok.yeepay.com/paymobile/api/pay/request',YEEPAY_WAP_TEST_URL:'http://mobiletest.yeepay.com/paymobile/api/pay/request',handleCharge:function(e){for(var a,n=e.channel,r=e.credential[n],t=['merchantaccount','encryptkey','data'],l=0;l<t.length;l++)if(!o.call(r,t[l]))return void c.innerCallback('fail',c.error('invalid_credential','missing_field_'+t[l]));a=o.call(r,'mode')&&'test'==r.mode?this.YEEPAY_WAP_TEST_URL:this.YEEPAY_WAP_URL,i.redirectTo(a+'?'+i.stringifyData(r,n,!0),e.channel)}}},{"../callbacks":2,"../utils":52}],45:[function(e,a,n){a.exports={Error:function(e,a){this.message=e,this.extra=a}}},{}],46:[function(e,a,n){var r=e('./stash'),t=e('./utils');a.exports={init:function(){var e=this;t.documentReady(function(){try{!t.inWxLite()&&!t.inAlipayLite()&&e.initPuid()}catch(e){}})},initPuid:function(){if('undefined'!=typeof window&&'undefined'!=typeof localStorage&&null!==localStorage){var e=localStorage.getItem('pingpp_uid');if(null===e){e=t.randomString();try{localStorage.setItem('pingpp_uid',e)}catch(e){}}r.puid=e}}}},{"./stash":50,"./utils":52}],47:[function(e,a,n){var r=e('./version').v,i={}.hasOwnProperty,PingppSDK=function(){e('./init').init()};PingppSDK.prototype.version=r,a.exports=new PingppSDK;var c=e('./testmode'),o=e('./callbacks'),s=e('./errors').Error,u=e('./mods'),p=e('./stash'),d=e('./payment_elements');PingppSDK.prototype.createPayment=function(e,a,n,r){'function'==typeof a&&(o.userCallback=a);try{d.init(e)}catch(e){if(e instanceof s)return void o.innerCallback('fail',o.error(e.message,e.extra));throw e}if(i.call(d,'id'))if(i.call(d,'channel')){i.call(d,'app')&&('string'==typeof d.app?p.app_id=d.app:'object'==typeof d.app&&'string'==typeof d.app.id&&(p.app_id=d.app.id));var t=d.channel;if(i.call(d,'credential'))if(d.paid&&0===d.actual_amount)o.innerCallback('success');else if(d.credential)if(i.call(d.credential,t))if(i.call(d,'livemode')){var l=u.getChannelModule(t);if(void 0===l)return console.error('channel module "'+t+'" is undefined'),void o.innerCallback('fail',o.error('invalid_channel','channel module "'+t+'" is undefined'));!1!==d.livemode?(void 0!==n&&(p.signature=n),'boolean'==typeof r&&(p.debug=r),l.handleCharge(d)):i.call(l,'runTestMode')?l.runTestMode(d):c.runTestMode(d)}else o.innerCallback('fail',o.error('invalid_charge','no_livemode_field'));else o.innerCallback('fail',o.error('invalid_credential','credential_is_incorrect'));else o.innerCallback('fail',o.error('invalid_credential','credential_is_undefined'));else o.innerCallback('fail',o.error('invalid_charge','no_credential'))}else o.innerCallback('fail',o.error('invalid_charge','no_channel'));else o.innerCallback('fail',o.error('invalid_charge','no_charge_id'))},PingppSDK.prototype.setAPURL=function(e){p.APURL=e},PingppSDK.prototype.setUrlReturnCallback=function(e,a){if('function'!=typeof e)throw'callback need to be a function';if(o.urlReturnCallback=e,void 0!==a){if(!Array.isArray(a))throw'channels need to be an array';o.urlReturnChannels=a}},PingppSDK.prototype.signAgreement=function(e,a){'function'==typeof a&&(o.userAgreementCallback=a);var n=u.getExtraModule('agreement');return void 0===n?(console.error('module "agreement" is undefined'),o.innerCallback('fail',o.error('invalid_module','module "agreement" is undefined')),!1):n.signAgreement(e)}},{"./callbacks":2,"./errors":45,"./init":46,"./mods":48,"./payment_elements":49,"./stash":50,"./testmode":51,"./version":53}],48:[function(e,a,n){var r={}.hasOwnProperty,t={};(a.exports=t).channels={alipay:e('./channels/alipay'),alipay_lite:e('./channels/alipay_lite'),alipay_pc_direct:e('./channels/alipay_pc_direct'),alipay_qr:e('./channels/alipay_qr'),alipay_qr_lakala:e('./channels/alipay_qr_lakala'),alipay_wap:e('./channels/alipay_wap'),alipay_wap_lakala:e('./channels/alipay_wap_lakala'),bfb_wap:e('./channels/bfb_wap'),cb_alipay_pc_direct:e('./channels/cb_alipay_pc_direct'),cb_alipay_wap:e('./channels/cb_alipay_wap'),cb_wx_pub:e('./channels/cb_wx_pub'),ccb_qr:e('./channels/ccb_qr'),ccb_wap:e('./channels/ccb_wap'),chinaums_alipay_pub:e('./channels/chinaums_alipay_pub'),chinaums_alipay_wap:e('./channels/chinaums_alipay_wap'),chinaums_upacp_wap:e('./channels/chinaums_upacp_wap'),chinaums_wx_pub:e('./channels/chinaums_wx_pub'),chinaums_wx_wap:e('./channels/chinaums_wx_wap'),cmb_pc_qr:e('./channels/cmb_pc_qr'),cmb_wallet:e('./channels/cmb_wallet'),coolcredit:e('./channels/coolcredit'),cp_b2b:e('./channels/cp_b2b'),isv_lite:e('./channels/isv_lite'),isv_wap:e('./channels/isv_wap'),jdpay_wap:e('./channels/jdpay_wap'),nucc_b2b_lakala:e('./channels/nucc_b2b_lakala'),nucc_b2c_lakala:e('./channels/nucc_b2c_lakala'),pab_pc:e('./channels/pab_pc'),paypal:e('./channels/paypal'),qpay_pub:e('./channels/qpay_pub'),upacp_b2b:e('./channels/upacp_b2b'),upacp_pc:e('./channels/upacp_pc'),upacp_wap:e('./channels/upacp_wap'),wx_lite:e('./channels/wx_lite'),wx_lite_pab:e('./channels/wx_lite_pab'),wx_pub:e('./channels/wx_pub'),wx_pub_hzbank:e('./channels/wx_pub_hzbank'),wx_pub_pab:e('./channels/wx_pub_pab'),wx_wap:e('./channels/wx_wap'),yeepay_wap:e('./channels/yeepay_wap')},t.extras={ap:e('./channels/extras/ap'),agreement:e('./agreement')},t.getChannelModule=function(e){if(r.call(t.channels,e))return t.channels[e]},t.getExtraModule=function(e){if(r.call(t.extras,e))return t.extras[e]}},{"./agreement":1,"./channels/alipay":3,"./channels/alipay_lite":4,"./channels/alipay_pc_direct":5,"./channels/alipay_qr":6,"./channels/alipay_qr_lakala":7,"./channels/alipay_wap":8,"./channels/alipay_wap_lakala":9,"./channels/bfb_wap":10,"./channels/cb_alipay_pc_direct":11,"./channels/cb_alipay_wap":12,"./channels/cb_wx_pub":13,"./channels/ccb_qr":14,"./channels/ccb_wap":15,"./channels/chinaums_alipay_pub":16,"./channels/chinaums_alipay_wap":17,"./channels/chinaums_upacp_wap":18,"./channels/chinaums_wx_pub":19,"./channels/chinaums_wx_wap":20,"./channels/cmb_pc_qr":21,"./channels/cmb_wallet":22,"./channels/coolcredit":24,"./channels/cp_b2b":25,"./channels/extras/ap":26,"./channels/isv_lite":27,"./channels/isv_wap":28,"./channels/jdpay_wap":29,"./channels/nucc_b2b_lakala":30,"./channels/nucc_b2c_lakala":31,"./channels/pab_pc":32,"./channels/paypal":33,"./channels/qpay_pub":34,"./channels/upacp_b2b":35,"./channels/upacp_pc":36,"./channels/upacp_wap":37,"./channels/wx_lite":38,"./channels/wx_lite_pab":39,"./channels/wx_pub":40,"./channels/wx_pub_hzbank":41,"./channels/wx_pub_pab":42,"./channels/wx_wap":43,"./channels/yeepay_wap":44}],49:[function(e,a,n){var l=e('./errors').Error,i={}.hasOwnProperty;a.exports={id:null,or_id:null,channel:null,app:null,credential:{},extra:null,livemode:null,order_no:null,time_expire:null,paid:!1,status:null,actual_amount:null,init:function(e){var a;if('string'==typeof e)try{a=JSON.parse(e)}catch(e){throw new l('json_decode_fail',e)}else a=e;if(void 0===a)throw new l('json_decode_fail');if(i.call(a,'object')&&'order'==a.object){a.or_id=a.id,a.order_no=a.merchant_order_no;var n=a.charge_essentials;if(a.channel=n.channel,a.credential=n.credential,a.extra=n.extra,i.call(a,'charge')&&null!=a.charge)a.id=a.charge;else if(i.call(n,'id')&&null!=n.id)a.id=n.id;else if(i.call(a,'charges'))for(var r=0;r<a.charges.data.length;r++)if(a.charges.data[r].channel===n.channel){a.id=a.charges.data[r].id;break}}else i.call(a,'object')&&'recharge'==a.object&&(a=a.charge);for(var t in this)i.call(a,t)&&(this[t]=a[t]);return this},clear:function(){for(var e in this)'function'!=typeof this[e]&&(this[e]=null)}}},{"./errors":45}],50:[function(e,a,n){a.exports={}},{}],51:[function(e,a,n){var r=e('./utils'),t={}.hasOwnProperty;a.exports={PINGPP_MOCK_URL:'https://sissi.pingxx.com/mock.php',runTestMode:function(e){var a={ch_id:e.id,scheme:'http',channel:e.channel};t.call(e,'order_no')?a.order_no=e.order_no:t.call(e,'orderNo')&&(a.order_no=e.orderNo),t.call(e,'time_expire')?a.time_expire=e.time_expire:t.call(e,'timeExpire')&&(a.time_expire=e.timeExpire),t.call(e,'extra')&&(a.extra=encodeURIComponent(JSON.stringify(e.extra))),r.redirectTo(this.PINGPP_MOCK_URL+'?'+r.stringifyData(a),e.channel)}}},{"./utils":52}],52:[function(e,a,n){var r=e('./callbacks'),o={}.hasOwnProperty,s=a.exports={stringifyData:function(e,a,n){void 0===n&&(n=!1);var r=[];for(var t in e)o.call(e,t)&&'function'!=typeof e[t]&&('bfb_wap'==a&&'url'==t||'yeepay_wap'==a&&'mode'==t||'channel_url'!=t&&r.push(t+'='+(n?encodeURIComponent(e[t]):e[t])));return r.join('&')},request:function(e,a,n,r,t,l){if('undefined'!=typeof XMLHttpRequest){var i=new XMLHttpRequest;if(void 0!==i.timeout&&(i.timeout=6e3),'GET'===(a=a.toUpperCase())&&'object'==typeof n&&n&&(e+='?'+s.stringifyData(n,'',!0)),i.open(a,e,!0),void 0!==l)for(var c in l)o.call(l,c)&&i.setRequestHeader(c,l[c]);'POST'===a?(i.setRequestHeader('Content-type','application/json; charset=utf-8'),i.send(JSON.stringify(n))):i.send(),void 0===r&&(r=function(){}),void 0===t&&(t=function(){}),i.onreadystatechange=function(){4==i.readyState&&r(i.responseText,i.status,i)},i.onerror=function(e){t(i,0,e)}}else console.log('Function XMLHttpRequest is undefined.')},formSubmit:function(e,a,n){if('undefined'!=typeof window){var r=document.createElement('form');for(var t in r.setAttribute('method',a),r.setAttribute('action',e),n)if(o.call(n,t)){var l=document.createElement('input');l.setAttribute('type','hidden'),l.setAttribute('name',t),l.setAttribute('value',n[t]),r.appendChild(l)}document.body.appendChild(r),r.submit()}else console.log('Not a browser, form submit url: '+e)},randomString:function(e){void 0===e&&(e=32);for(var a='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789',n=a.length,r='',t=0;t<e;t++)r+=a.charAt(Math.floor(Math.random()*n));return r},redirectTo:function(e,a){r.shouldReturnUrlByCallback(a)?r.triggerUrlReturnCallback(null,e):'undefined'!=typeof window?window.location.href=e:console.log('Not a browser, redirect url: '+e)},inWeixin:function(){return'undefined'!=typeof navigator&&-1!==navigator.userAgent.toLowerCase().indexOf('micromessenger')},inAlipay:function(){return'undefined'!=typeof navigator&&-1!==navigator.userAgent.toLowerCase().indexOf('alipayclient')},inWxLite:function(){return'undefined'!=typeof wx&&(wx.miniProgram||wx.requestPayment)},inAlipayLite:function(){return'undefined'!=typeof my&&my.tradePay},documentReady:function(e){'undefined'!=typeof document?'loading'!=document.readyState?e():document.addEventListener('DOMContentLoaded',e):e()},loadUrlJs:function(e,a,n){var r=document.getElementsByTagName('head')[0],t=null;null==document.getElementById(e)?((t=document.createElement('script')).setAttribute('type','text/javascript'),t.setAttribute('src',a),t.setAttribute('id',e),t.async=!0,null!=n&&(t.onload=t.onreadystatechange=function(){if(t.ready)return!1;t.readyState&&'loaded'!=t.readyState&&'complete'!=t.readyState||(t.ready=!0,n())}),r.appendChild(t)):null!=n&&n()}}},{"./callbacks":2}],53:[function(e,a,n){a.exports={v:'2.2.25'}},{}]},{},[47])(47)});
|
|
3
2
|
//# sourceMappingURL=pingpp.js.map
|
package/dist/pingpp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["node_modules/browser-pack/_prelude.js","src/agreement.js","src/callbacks.js","src/channels/alipay.js","src/channels/alipay_lite.js","src/channels/alipay_pc_direct.js","src/channels/alipay_qr.js","src/channels/alipay_qr_lakala.js","src/channels/alipay_wap.js","src/channels/bfb_wap.js","src/channels/cb_alipay_pc_direct.js","src/channels/cb_alipay_wap.js","src/channels/cb_wx_pub.js","src/channels/ccb_wap.js","src/channels/cmb_pc_qr.js","src/channels/cmb_wallet.js","src/channels/commons/redirect_base.js","src/channels/coolcredit.js","src/channels/cp_b2b.js","src/channels/extras/ap.js","src/channels/isv_lite.js","src/channels/isv_wap.js","src/channels/jdpay_wap.js","src/channels/pab_pc.js","src/channels/paypal.js","src/channels/qpay_pub.js","src/channels/upacp_pc.js","src/channels/upacp_wap.js","src/channels/wx_lite.js","src/channels/wx_pub_hzbank.js","src/channels/wx_wap.js","src/channels/yeepay_wap.js","src/collection.js","src/errors.js","src/init.js","src/libs/md5.js","src/main.js","src/mods.js","src/payment_elements.js","src/stash.js","src/testmode.js","src/utils.js","src/version.js"],"names":["f","exports","module","define","amd","window","global","self","this","pingpp","r","e","n","t","o","i","c","require","u","a","Error","code","p","call","length","1","hasOwn","hasOwnProperty","callbacks","utils","signAgreement","agreement","agreementObj","JSON","parse","err","innerAgreementCallback","error","object","credential","channel","urlToOpen","substring","url","URL","encodeURIComponent","search","setTimeout","redirectTo","userCallback","undefined","urlReturnCallback","urlReturnChannels","userAgreementCallback","innerCallback","result","clear","msg","extra","triggerUrlReturnCallback","shouldReturnUrlByCallback","indexOf","PINGPP_NOTIFY_URL_BASE","handleCharge","charge","callpay","orderInfo","alipayLiteEnabled","my","tradePay","orderStr","alipayLitePay","navigator","test","userAgent","swuserAgent","waitAlipayJSBridgde","alipayJsBridgePay","errmsg","console","log","callback","AlipayJSBridge","document","addEventListener","alipayResultHandler","tradePayParams","complete","res","resultCode","memo","runTestMode","path","id","httpRequest","success","data","fail","trade_no","tradeNO","alipay_lite","ALIPAY_PC_DIRECT_URL","baseURL","channel_url","service","_input_charset","query","stringifyData","transaction_no","ready","redirectBase","mods","ALIPAY_WAP_URL_OLD","ALIPAY_WAP_URL","targetURL","ap","getExtraModule","inWeixin","pay","stash","fields","k","jsApiParameters","wx_jssdk","jssdkEnabled","WeixinJSBridge","eventCallback","jsApiCall","attachEvent","invoke","err_msg","confirm","request","status","CCB_WAP_URL_BASE","formSubmit","CMB_WALLET_URL","request_url","ChannelUrl","channelVersion","request_data","CP_B2B_URL","b","PADCHAR","ALPHA","makeDOMException","DOMException","INVALID_CHARACTER_ERR","d","number","name","description","toString","message","getbyte64","charAt","decode","h","g","j","push","String","fromCharCode","join","getbyte","charCodeAt","encode","arguments","SyntaxError","APURL","location","href","decodeURIComponent","wxLite","pay_channel","inAlipay","JDPAY_WAP_URL_OLD","JDPAY_H5_URL","JDPAY_PC_URL","channelUrl","SRC_URL","ID","tokenId","token_id","loadUrlJs","mqq","QQVersion","tenpay","retmsg","UPACP_PC_URL","UPACP_WAP_URL","wxLiteEnabled","wx","requestPayment","wx_lite","appId","errMsg","err_code","err_desc","wxPub","YEEPAY_WAP_URL","YEEPAY_WAP_TEST_URL","mode","md5","collection","seperator","limit","report_url","timeout","getParam","str","param","reg","RegExp","match","unescape","store","obj","inWxLite","inAlipayLite","localStorage","reportData","app_id","ch_id","type","user_agent","host","time","Date","getTime","puid","reportStr","statsToSave","getItem","setItem","send","pppOneStats","split","origin","token","removeItem","X-Pingpp-Report-Token","report","_this","dc","init","documentReady","initPuid","randomString","getElementById","iframe","createElement","src","style","display","body","appendChild","safe_add","x","y","lsw","md5_cmn","q","s","num","cnt","md5_ff","md5_gg","md5_hh","md5_ii","binl_md5","len","olda","oldb","oldc","oldd","binl2rstr","input","output","rstr2binl","rstr2hex","hex_tab","str2rstr_utf8","raw_md5","raw_hmac_md5","key","hash","bkey","ipad","opad","concat","rstr_hmac_md5","string","raw","version","v","PingppSDK","prototype","testmode","PingppError","payment_elements","createPayment","chargeJSON","signature","debug","app","paid","actual_amount","channelModule","getChannelModule","livemode","setAPURL","setUrlReturnCallback","channels","Array","isArray","alipay","alipay_pc_direct","alipay_qr","alipay_qr_lakala","alipay_wap","alipay_wap_lakala","bfb_wap","cb_alipay_pc_direct","cb_alipay_wap","cb_wx_pub","ccb_qr","ccb_wap","cmb_pc_qr","cmb_wallet","coolcredit","cp_b2b","isv_lite","isv_wap","jdpay_wap","pab_pc","paypal","qpay_pub","upacp_b2b","upacp_pc","upacp_wap","wx_lite_pab","wx_pub","wx_pub_hzbank","wx_pub_pab","wx_wap","yeepay_wap","extras","or_id","order_no","time_expire","charge_or_order","merchant_order_no","charge_essentials","charges","PINGPP_MOCK_URL","params","scheme","orderNo","timeExpire","stringify","urlencode","method","requestData","successCallback","errorCallback","headers","XMLHttpRequest","xhr","toUpperCase","open","setRequestHeader","onreadystatechange","readyState","responseText","onerror","form","setAttribute","hiddenField","submit","chars","maxPos","Math","floor","random","toLowerCase","miniProgram","fn","sid","jsurl","nodeHead","getElementsByTagName","nodeScript","async","onload"],"mappings":"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","file":"pingpp.js","sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()","var hasOwn = {}.hasOwnProperty;\nvar callbacks = require('./callbacks');\nvar utils = require('./utils');\n\nmodule.exports = {\n signAgreement: function (agreement) {\n var agreementObj;\n if (typeof agreement === 'string') {\n try {\n agreementObj = JSON.parse(agreement);\n } catch (err) {\n callbacks.innerAgreementCallback('fail',\n callbacks.error('json_decode_fail', err));\n return false;\n }\n } else {\n agreementObj = agreement;\n }\n\n if (typeof agreementObj === 'undefined') {\n callbacks.innerAgreementCallback('fail',\n callbacks.error('json_decode_fail'));\n return false;\n }\n\n if (!hasOwn.call(agreementObj, 'object')\n || agreementObj.object !== 'agreement'\n || !hasOwn.call(agreementObj, 'channel')\n || !hasOwn.call(agreementObj, 'credential')\n || typeof agreementObj.credential !== 'object'\n ) {\n callbacks.innerAgreementCallback('fail',\n callbacks.error('invalid_object'));\n return false;\n }\n\n if (!hasOwn.call(agreementObj.credential, agreementObj.channel)) {\n callbacks.innerAgreementCallback('fail',\n callbacks.error('invalid_credential'));\n return false;\n }\n\n var credential = agreementObj.credential[agreementObj.channel];\n var urlToOpen;\n if (typeof credential === 'string') {\n urlToOpen = credential;\n } else if (hasOwn.call(credential, 'credential')\n && typeof credential.credential === 'string'\n ) {\n urlToOpen = credential.credential;\n }\n\n if (typeof urlToOpen === 'undefined') {\n callbacks.innerAgreementCallback('fail',\n callbacks.error('invalid_credential'));\n return false;\n }\n\n if (agreementObj.channel.substring(0, 6) === 'alipay') {\n var url = new URL(urlToOpen);\n urlToOpen = 'http://d.alipay.com/i/index.htm?iframeSrc='\n + encodeURIComponent('alipays://platformapi/startapp?appId=60000157'\n +'&appClearTop=false&startMultApp=YES&sign_params='\n + encodeURIComponent(url.search.substring(1))\n );\n }\n\n setTimeout(function() {\n utils.redirectTo(urlToOpen);\n }, 0);\n\n return true;\n }\n};","module.exports = {\n\n userCallback: undefined,\n\n urlReturnCallback: undefined,\n\n urlReturnChannels: [\n 'alipay_pc_direct', // 默认只开启 alipay_pc_direct 使用 callback 返回 URL\n ],\n\n userAgreementCallback: undefined,\n\n innerCallback: function(result, err) {\n if (typeof this.userCallback === 'function') {\n if (typeof err === 'undefined') {\n err = this.error();\n }\n this.userCallback(result, err);\n this.userCallback = undefined;\n var payment_elements = require('./payment_elements');\n payment_elements.clear();\n }\n },\n\n error: function(msg, extra) {\n msg = (typeof msg === 'undefined') ? '' : msg;\n extra = (typeof extra === 'undefined') ? '' : extra;\n return {\n msg: msg,\n extra: extra\n };\n },\n\n triggerUrlReturnCallback: function (err, url) {\n if (typeof this.urlReturnCallback === 'function') {\n this.urlReturnCallback(err, url);\n }\n },\n\n shouldReturnUrlByCallback: function (channel) {\n if (typeof this.urlReturnCallback !== 'function') {\n return false;\n }\n return this.urlReturnChannels.indexOf(channel) !== -1;\n },\n\n innerAgreementCallback: function(result, err) {\n if (typeof this.userAgreementCallback === 'function') {\n if (typeof err === 'undefined') {\n err = this.error();\n }\n this.userAgreementCallback(result, err);\n this.userAgreementCallback = undefined;\n }\n }\n};\n","var callbacks = require('../callbacks');\nvar hasOwn = {}.hasOwnProperty;\n\n/*global my,AlipayJSBridge*/\nmodule.exports = {\n\n PINGPP_NOTIFY_URL_BASE: 'https://notify.pingxx.com/notify',\n\n handleCharge: function (charge) {\n var credential = charge.credential[charge.channel];\n if (credential || hasOwn.call(credential, 'orderInfo')) {\n this.callpay(credential.orderInfo);\n } else {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_credential', 'missing_alipay'));\n }\n },\n\n alipayLiteEnabled: function () {\n return typeof my !== 'undefined' && my.tradePay;\n },\n\n // 支付宝小程序支付\n callpay: function (orderStr) {\n var self = this;\n if (this.alipayLiteEnabled()) {\n return this.alipayLitePay(orderStr);\n }\n\n if (typeof navigator !== 'undefined'\n && /AlipayClient/.test(navigator.userAgent || navigator.swuserAgent)) {\n return this.waitAlipayJSBridgde(function () {\n self.alipayJsBridgePay(orderStr);\n });\n }\n\n var errmsg = '请在支付宝小程序或者支付宝应用内中打开';\n console.log(errmsg);\n callbacks.innerCallback('fail', callbacks.error(errmsg));\n return;\n },\n\n waitAlipayJSBridgde: function (callback) {\n if (window.AlipayJSBridge) {\n callback && callback();\n } else {\n document.addEventListener('AlipayJSBridgeReady', callback, false);\n }\n },\n\n alipayJsBridgePay: function (orderStr) {\n AlipayJSBridge.call('tradePay', {\n orderStr: orderStr\n }, this.alipayResultHandler);\n },\n\n alipayLitePay: function (orderStr) {\n var tradePayParams = {};\n tradePayParams.orderStr = orderStr;\n tradePayParams.complete = this.alipayResultHandler;\n my.tradePay(tradePayParams);\n },\n\n alipayResultHandler: function (res) {\n var extra = {\n resultCode: res.resultCode\n };\n if (hasOwn.call(res, 'memo')) {\n extra.memo = res.memo;\n }\n if (hasOwn.call(res, 'result')) {\n extra.result = res.result;\n }\n // 支付成功\n if (res.resultCode == '9000') {\n callbacks.innerCallback('success', callbacks.error('', extra));\n } else if (res.resultCode == '6001') { // 取消支付\n callbacks.innerCallback('cancel', callbacks.error('用户取消支付', extra));\n } else {\n callbacks.innerCallback('fail', callbacks.error('支付失败', extra));\n }\n },\n\n runTestMode: function (charge) {\n var path = '/charges/' + charge.id;\n my.httpRequest({\n url: this.PINGPP_NOTIFY_URL_BASE + path + '?livemode=false',\n success: function(res) {\n if (res.data == 'success') {\n callbacks.innerCallback('success');\n } else {\n callbacks.innerCallback('fail',\n callbacks.error('testmode_notify_fail'));\n }\n },\n fail:function() {\n callbacks.innerCallback('fail', callbacks.error('network_err'));\n }\n });\n }\n};\n","var callbacks = require('../callbacks');\n\n/*global my*/\nmodule.exports = {\n\n PINGPP_NOTIFY_URL_BASE: 'https://notify.pingxx.com/notify',\n\n handleCharge: function (charge) {\n var trade_no = charge.credential[charge.channel];\n if (trade_no) {\n this.callpay(trade_no);\n } else {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_credential', 'missing_alipay_lite'));\n }\n },\n\n alipayLiteEnabled: function () {\n return typeof my !== 'undefined' && my.tradePay;\n },\n\n //支付宝小程序支付\n callpay: function (tradeNO) {\n if (!this.alipayLiteEnabled()) {\n console.log('请在支付宝小程序中打开');\n return;\n }\n var alipay_lite = {};\n alipay_lite.tradeNO = tradeNO;\n alipay_lite.complete = function (res) {\n //支付成功\n if (res.resultCode == 9000) {\n callbacks.innerCallback('success');\n } else if (res.resultCode == 6001) { //取消支付\n callbacks.innerCallback('cancel', callbacks.error('用户取消支付'));\n } else {\n callbacks.innerCallback('fail', callbacks.error('支付失败'));\n }\n };\n my.tradePay(alipay_lite);\n },\n\n runTestMode: function (charge) {\n var path = '/charges/' + charge.id;\n my.httpRequest({\n url: this.PINGPP_NOTIFY_URL_BASE + path + '?livemode=false',\n success: function(res) {\n if (res.data == 'success') {\n callbacks.innerCallback('success');\n } else {\n callbacks.innerCallback('fail',\n callbacks.error('testmode_notify_fail'));\n }\n },\n fail:function() {\n callbacks.innerCallback('fail', callbacks.error('network_err'));\n }\n });\n }\n};\n","var utils = require('../utils');\nvar hasOwn = {}.hasOwnProperty;\n\nmodule.exports = {\n\n ALIPAY_PC_DIRECT_URL: 'https://mapi.alipay.com/gateway.do',\n\n handleCharge: function(charge) {\n var channel = charge.channel;\n var credential = charge.credential[channel];\n var baseURL = this.ALIPAY_PC_DIRECT_URL;\n if (hasOwn.call(credential, 'channel_url')) {\n baseURL = credential.channel_url;\n }\n if (!hasOwn.call(credential, '_input_charset')) {\n if(hasOwn.call(credential, 'service')\n && credential.service === 'create_direct_pay_by_user') {\n credential._input_charset = 'utf-8';\n }\n }\n var query = utils.stringifyData(credential, channel, true);\n utils.redirectTo(baseURL + '?' + query, channel);\n }\n};\n","var hasOwn = {}.hasOwnProperty;\nvar callbacks = require('../callbacks');\n\n/*global AlipayJSBridge*/\nmodule.exports = {\n\n handleCharge: function (charge) {\n var credential = charge.credential[charge.channel];\n if (hasOwn.call(credential, 'transaction_no')) {\n this.tradePay(credential.transaction_no);\n } else {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_credential', 'missing_field_transaction_no'));\n }\n },\n\n ready: function (callback) {\n if (window.AlipayJSBridge) {\n callback && callback();\n } else {\n document.addEventListener('AlipayJSBridgeReady', callback, false);\n }\n },\n\n tradePay: function (tradeNO) {\n this.ready(function () {\n // 通过传入交易号唤起快捷调用方式(注意tradeNO大小写严格)\n AlipayJSBridge.call('tradePay', {\n tradeNO: tradeNO\n }, function (data) {\n if ('9000' == data.resultCode) {\n callbacks.innerCallback('success');\n } else if('6001' == data.resultCode) {\n callbacks.innerCallback('cancel', callbacks.error(data.result));\n } else {\n callbacks.innerCallback('fail',\n callbacks.error(data.result));\n }\n });\n });\n }\n};\n","var redirectBase = require('./commons/redirect_base');\n\nmodule.exports = {\n\n handleCharge: function(charge) {\n redirectBase.handleCharge(charge);\n }\n};\n","var utils = require('../utils');\nvar mods = require('../mods');\nvar hasOwn = {}.hasOwnProperty;\n\nmodule.exports = {\n\n ALIPAY_WAP_URL_OLD: 'https://wappaygw.alipay.com/service/rest.htm',\n ALIPAY_WAP_URL: 'https://mapi.alipay.com/gateway.do',\n\n handleCharge: function(charge) {\n var channel = charge.channel;\n var credential = charge.credential[channel];\n var baseURL = this.ALIPAY_WAP_URL;\n if (hasOwn.call(credential, 'req_data')) {\n baseURL = this.ALIPAY_WAP_URL_OLD;\n } else if (hasOwn.call(credential, 'channel_url')) {\n baseURL = credential.channel_url;\n }\n if (!hasOwn.call(credential, '_input_charset')) {\n if ((hasOwn.call(credential, 'service')\n && credential.service === 'alipay.wap.create.direct.pay.by.user')\n || hasOwn.call(credential, 'req_data')\n ) {\n credential._input_charset = 'utf-8';\n }\n }\n var query = utils.stringifyData(credential, channel, true);\n var targetURL = baseURL + '?' + query;\n var ap = mods.getExtraModule('ap');\n if (utils.inWeixin() && typeof ap !== 'undefined') {\n ap.pay(targetURL);\n } else {\n utils.redirectTo(targetURL, channel);\n }\n }\n};","var utils = require('../utils');\nvar callbacks = require('../callbacks');\nvar hasOwn = {}.hasOwnProperty;\n\nmodule.exports = {\n\n handleCharge: function(charge) {\n var channel = charge.channel;\n var credential = charge.credential[channel];\n\n if (!hasOwn.call(credential, 'url')) {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_credential', 'missing_field:url'));\n return;\n }\n utils.redirectTo(credential.url + '?' +\n utils.stringifyData(credential, channel), channel);\n }\n};\n","var utils = require('../utils');\nvar hasOwn = {}.hasOwnProperty;\n\nmodule.exports = {\n\n ALIPAY_PC_DIRECT_URL: 'https://intlmapi.alipay.com/gateway.do',\n\n handleCharge: function(charge) {\n var channel = charge.channel;\n var credential = charge.credential[channel];\n var baseURL = this.ALIPAY_PC_DIRECT_URL;\n if (hasOwn.call(credential, 'channel_url')) {\n baseURL = credential.channel_url;\n }\n\n if (!hasOwn.call(credential, '_input_charset')) {\n if(hasOwn.call(credential, 'service')\n && credential.service === 'create_forex_trade') {\n credential._input_charset = 'utf-8';\n }\n }\n var query = utils.stringifyData(credential, channel, true);\n\n utils.redirectTo(baseURL + '?' + query, channel);\n }\n};\n","var utils = require('../utils');\nvar mods = require('../mods');\nvar hasOwn = {}.hasOwnProperty;\n\nmodule.exports = {\n\n ALIPAY_WAP_URL: 'https://intlmapi.alipay.com/gateway.do',\n\n handleCharge: function(charge) {\n var channel = charge.channel;\n var credential = charge.credential[channel];\n var baseURL = this.ALIPAY_WAP_URL;\n if (hasOwn.call(credential, 'channel_url')) {\n baseURL = credential.channel_url;\n }\n if (!hasOwn.call(credential, '_input_charset')) {\n if ((hasOwn.call(credential, 'service')\n && credential.service === 'create_forex_trade_wap')\n ) {\n credential._input_charset = 'utf-8';\n }\n }\n\n var query = utils.stringifyData(credential, channel, true);\n var targetURL = baseURL + '?' + query;\n var ap = mods.getExtraModule('ap');\n if (utils.inWeixin() && typeof ap !== 'undefined') {\n ap.pay(targetURL);\n } else {\n utils.redirectTo(targetURL, channel);\n }\n }\n};\n","var callbacks = require('../callbacks');\nvar utils = require('../utils');\nvar stash = require('../stash');\nvar mods = require('../mods');\nvar hasOwn = {}.hasOwnProperty;\n\n/*global WeixinJSBridge*/\nmodule.exports = {\n\n PINGPP_NOTIFY_URL_BASE: 'https://notify.pingxx.com/notify',\n\n handleCharge: function(charge) {\n var credential = charge.credential[charge.channel];\n var fields = [\n 'appId', 'timeStamp', 'nonceStr', 'package', 'signType', 'paySign'\n ];\n for (var k = 0; k < fields.length; k++) {\n if (!hasOwn.call(credential, fields[k])) {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_credential', 'missing_field_' + fields[k]));\n return;\n }\n }\n stash.jsApiParameters = credential;\n this.callpay();\n },\n\n callpay: function() {\n var self = this;\n var wx_jssdk = mods.getExtraModule('wx_jssdk');\n if (typeof wx_jssdk !== 'undefined' && wx_jssdk.jssdkEnabled()) {\n wx_jssdk.callpay();\n } else if (typeof WeixinJSBridge == 'undefined') {\n var eventCallback = function() {\n self.jsApiCall();\n };\n if (document.addEventListener) {\n document.addEventListener('WeixinJSBridgeReady',\n eventCallback, false);\n } else if (document.attachEvent) {\n document.attachEvent('WeixinJSBridgeReady', eventCallback);\n document.attachEvent('onWeixinJSBridgeReady', eventCallback);\n }\n } else {\n this.jsApiCall();\n }\n },\n\n jsApiCall: function() {\n if (hasOwn.call(stash, 'jsApiParameters')) {\n WeixinJSBridge.invoke(\n 'getBrandWCPayRequest',\n stash.jsApiParameters,\n function(res) {\n delete stash.jsApiParameters;\n if (res.err_msg == 'get_brand_wcpay_request:ok') {\n callbacks.innerCallback('success');\n } else if (res.err_msg == 'get_brand_wcpay_request:cancel') {\n callbacks.innerCallback('cancel');\n } else {\n callbacks.innerCallback('fail',\n callbacks.error('wx_result_fail', res.err_msg));\n }\n }\n );\n }\n },\n\n runTestMode: function(charge) {\n var dopay = confirm('模拟付款?');\n if (dopay) {\n var path = '/charges/' + charge.id;\n utils.request(this.PINGPP_NOTIFY_URL_BASE + path + '?livemode=false',\n 'GET', null,\n function(data, status) {\n if (status >= 200 && status < 400 && data == 'success') {\n callbacks.innerCallback('success');\n } else {\n var extra = 'http_code:' + status + ';response:' + data;\n callbacks.innerCallback('fail',\n callbacks.error('testmode_notify_fail', extra));\n }\n },\n function() {\n callbacks.innerCallback('fail', callbacks.error('network_err'));\n });\n }\n }\n};\n","var utils = require('../utils');\nvar hasOwn = {}.hasOwnProperty;\nvar callbacks = require('../callbacks');\n\nmodule.exports = {\n\n CCB_WAP_URL_BASE: 'https://ibsbjstar.ccb.com.cn/CCBIS/ccbMain?',\n\n handleCharge: function(charge) {\n var channel = charge.channel;\n var credential = charge.credential[channel];\n if (!hasOwn.call(credential, 'orderinfo')) {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_credential', 'missing_field:orderinfo'));\n return;\n }\n\n var targetURL = this.CCB_WAP_URL_BASE + credential['orderinfo'];\n utils.redirectTo(targetURL, channel);\n }\n};\n","var utils = require('../utils');\nvar hasOwn = {}.hasOwnProperty;\n\nmodule.exports = {\n\n handleCharge: function(charge) {\n var channel = charge.channel;\n var credential = charge.credential[channel];\n var baseURL;\n if (hasOwn.call(credential, 'channel_url')) {\n baseURL = credential.channel_url;\n delete credential.channel_url;\n }\n\n utils.formSubmit(baseURL, 'post', credential);\n }\n};\n","var utils = require('../utils');\nvar hasOwn = {}.hasOwnProperty;\n\nmodule.exports = {\n\n CMB_WALLET_URL:\n 'https://netpay.cmbchina.com/netpayment/BaseHttp.dll?MB_EUserPay',\n\n handleCharge: function(charge) {\n var credential = charge.credential[charge.channel];\n var request_url = this.CMB_WALLET_URL;\n if (hasOwn.call(credential, 'ChannelUrl')) {\n request_url = credential.ChannelUrl;\n delete credential.ChannelUrl;\n }\n\n if (hasOwn.call(credential, 'channelVersion')) {\n delete credential.channelVersion;\n }\n\n utils.formSubmit(request_url, 'post', credential);\n }\n};\n","var utils = require('../../utils');\nvar callbacks = require('../../callbacks');\nvar hasOwn = {}.hasOwnProperty;\n\nmodule.exports = {\n\n handleCharge: function(charge) {\n var credential = charge.credential[charge.channel];\n var targetURL;\n if (typeof credential === 'string') {\n targetURL = credential;\n } else if (hasOwn.call(credential, 'url')) {\n targetURL = credential.url;\n } else {\n callbacks.innerCallback('fail', callbacks.error('invalid_credential',\n 'credential format is incorrect'));\n return;\n }\n utils.redirectTo(targetURL, charge.channel);\n }\n};\n","var utils = require('../utils');\n\nmodule.exports = {\n handleCharge: function(charge) {\n var credential = charge.credential[charge.channel];\n utils.formSubmit(credential.request_url, 'post', credential.request_data);\n }\n};\n","var utils = require('../utils');\n\nmodule.exports = {\n\n CP_B2B_URL: 'https://payment.chinapay.com/CTITS/service/rest/page/nref/000000000017/0/0/0/0/0',\n\n handleCharge: function(charge) {\n var credential = charge.credential[charge.channel];\n utils.formSubmit(this.CP_B2B_URL, 'post', credential);\n }\n};\n","var stash = require('../../stash');\nvar hasOwn = {}.hasOwnProperty;\n\n(function() {\n var b = {};\n var a = {};\n a.PADCHAR = '=';\n a.ALPHA = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n a.makeDOMException = function() {\n try {\n return new DOMException(DOMException.INVALID_CHARACTER_ERR);\n } catch (d) {\n var c = new Error('DOM Exception 5');\n c.code = c.number = 5;\n c.name = c.description = 'INVALID_CHARACTER_ERR';\n c.toString = function() {\n return 'Error: ' + c.name + ': ' + c.message;\n };\n return c;\n }\n };\n a.getbyte64 = function(e, d) {\n var c = a.ALPHA.indexOf(e.charAt(d));\n if (c === -1) {\n throw a.makeDOMException();\n }\n return c;\n };\n a.decode = function(f) {\n f = '' + f;\n var j = a.getbyte64;\n var h, e, g;\n var d = f.length;\n if (d === 0) {\n return f;\n }\n if (d % 4 !== 0) {\n throw a.makeDOMException();\n }\n h = 0;\n if (f.charAt(d - 1) === a.PADCHAR) {\n h = 1;\n if (f.charAt(d - 2) === a.PADCHAR) {\n h = 2;\n }\n d -= 4;\n }\n var c = [];\n for (e = 0; e < d; e += 4) {\n g = (j(f, e) << 18) |\n (j(f, e + 1) << 12) |\n (j(f, e + 2) << 6) |\n j(f, e + 3);\n c.push(String.fromCharCode(g >> 16, (g >> 8) & 255, g & 255));\n }\n switch (h) {\n case 1:\n g = (j(f, e) << 18) | (j(f, e + 1) << 12) | (j(f, e + 2) << 6);\n c.push(String.fromCharCode(g >> 16, (g >> 8) & 255));\n break;\n case 2:\n g = (j(f, e) << 18) | (j(f, e + 1) << 12);\n c.push(String.fromCharCode(g >> 16));\n break;\n }\n return c.join('');\n };\n a.getbyte = function(e, d) {\n var c = e.charCodeAt(d);\n if (c > 255) {\n throw a.makeDOMException();\n }\n return c;\n };\n a.encode = function(f) {\n if (arguments.length !== 1) {\n throw new SyntaxError('Not enough arguments');\n }\n var g = a.PADCHAR;\n var h = a.ALPHA;\n var k = a.getbyte;\n var e, j;\n var c = [];\n f = '' + f;\n var d = f.length - f.length % 3;\n if (f.length === 0) {\n return f;\n }\n for (e = 0; e < d; e += 3) {\n j = (k(f, e) << 16) | (k(f, e + 1) << 8) | k(f, e + 2);\n c.push(h.charAt(j >> 18));\n c.push(h.charAt((j >> 12) & 63));\n c.push(h.charAt((j >> 6) & 63));\n c.push(h.charAt(j & 63));\n }\n switch (f.length - d) {\n case 1:\n j = k(f, e) << 16;\n c.push(h.charAt(j >> 18) + h.charAt((j >> 12) & 63) + g + g);\n break;\n case 2:\n j = (k(f, e) << 16) | (k(f, e + 1) << 8);\n c.push(h.charAt(j >> 18) +\n h.charAt((j >> 12) & 63) +\n h.charAt((j >> 6) & 63) + g);\n break;\n }\n return c.join('');\n };\n b.url = 'pay.htm';\n b.pay = function(d) {\n var c = encodeURIComponent(a.encode(d));\n if (hasOwn.call(stash, 'APURL')) {\n b.url = stash.APURL;\n }\n location.href = b.url + '?goto=' + c;\n };\n b.decode = function(c) {\n return a.decode(decodeURIComponent(c));\n };\n\n module.exports = b;\n})();\n","var wxLite = require('./wx_lite');\n\nmodule.exports = wxLite;\n","var redirectBase = require('./commons/redirect_base');\nvar callbacks = require('../callbacks');\nvar utils = require('../utils');\nvar hasOwn = {}.hasOwnProperty;\n\nmodule.exports = {\n handleCharge: function (charge) {\n var extra = charge.extra;\n if (hasOwn.call(extra, 'pay_channel')) {\n var pay_channel = extra.pay_channel;\n if (pay_channel === 'wx' && !utils.inWeixin()) {\n callbacks.innerCallback('fail',\n callbacks.error('Not in the WeChat browser'));\n return;\n } else if (pay_channel === 'alipay' && !utils.inAlipay()) {\n callbacks.innerCallback('fail',\n callbacks.error('Not in the Alipay browser'));\n return;\n }\n } else {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_charge', 'charge 格式不正确'));\n return;\n }\n redirectBase.handleCharge(charge);\n }\n};\n","var utils = require('../utils');\nvar hasOwn = {}.hasOwnProperty;\n\nmodule.exports = {\n\n JDPAY_WAP_URL_OLD: 'https://m.jdpay.com/wepay/web/pay',\n JDPAY_H5_URL: 'https://h5pay.jd.com/jdpay/saveOrder',\n JDPAY_PC_URL: 'https://wepay.jd.com/jdpay/saveOrder',\n\n handleCharge: function(charge) {\n var credential = charge.credential[charge.channel];\n var request_url = this.JDPAY_H5_URL;\n if (hasOwn.call(credential, 'channelUrl')) {\n request_url = credential.channelUrl;\n delete credential.channelUrl;\n } else if (hasOwn.call(credential, 'merchantRemark')) {\n request_url = this.JDPAY_WAP_URL_OLD;\n }\n utils.formSubmit(request_url, 'post', credential);\n }\n};\n","var utils = require('../utils');\n\nmodule.exports = {\n\n handleCharge: function(charge) {\n var credential = charge.credential[charge.channel];\n var request_url = credential.channelUrl;\n delete credential.channelUrl;\n\n utils.formSubmit(request_url, 'post', credential);\n }\n};\n","var utils = require('../utils');\n\nmodule.exports = {\n handleCharge: function(charge) {\n var credential = charge.credential[charge.channel];\n utils.redirectTo(credential, charge.channel);\n }\n};\n","var callbacks = require('../callbacks');\nvar utils = require('../utils');\nvar stash = require('../stash');\nvar hasOwn = {}.hasOwnProperty;\n\n/*global mqq*/\nmodule.exports = {\n SRC_URL: 'https://open.mobile.qq.com/sdk/qqapi.js?_bid=152',\n ID: 'mqq_api',\n\n handleCharge: function (charge) {\n var credential = charge.credential[charge.channel];\n\n if (!hasOwn.call(credential, 'token_id')) {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_credential', 'missing_token_id'));\n return;\n }\n stash.tokenId = credential.token_id;\n utils.loadUrlJs(this.ID, this.SRC_URL, this.callpay);\n },\n\n callpay: function () {\n if (typeof mqq != 'undefined') {\n if (mqq.QQVersion == 0) {\n callbacks.innerCallback('fail',\n callbacks.error('Not in the QQ client'));\n delete stash.tokenId;\n return;\n }\n mqq.tenpay.pay({\n tokenId: stash.tokenId\n }, function (result) {\n if (result.resultCode == 0) {\n callbacks.innerCallback('success');\n } else {\n callbacks.innerCallback('fail',\n callbacks.error(result.retmsg));\n }\n });\n } else {\n callbacks.innerCallback('fail',\n callbacks.error('network_err'));\n }\n delete stash.tokenId;\n }\n};","var utils = require('../utils');\n\nmodule.exports = {\n\n UPACP_PC_URL: 'https://gateway.95516.com/gateway/api/frontTransReq.do',\n\n handleCharge: function(charge) {\n var credential = charge.credential[charge.channel];\n utils.formSubmit(this.UPACP_PC_URL, 'post', credential);\n }\n};\n","var utils = require('../utils');\n\nmodule.exports = {\n\n UPACP_WAP_URL: 'https://gateway.95516.com/gateway/api/frontTransReq.do',\n\n handleCharge: function(charge) {\n var credential = charge.credential[charge.channel];\n utils.formSubmit(this.UPACP_WAP_URL, 'post', credential);\n }\n};\n","/**\n * Created by yulitao on 2016/12/29.\n */\nvar stash = require('../stash');\nvar callbacks = require('../callbacks');\nvar hasOwn = {}.hasOwnProperty;\n/*global wx*/\nmodule.exports = {\n\n PINGPP_NOTIFY_URL_BASE: 'https://notify.pingxx.com/notify',\n\n handleCharge: function (charge) {\n var credential = charge.credential[charge.channel];\n var fields = [\n 'appId', 'timeStamp', 'nonceStr', 'package', 'signType', 'paySign'\n ];\n for (var k = 0; k < fields.length; k++) {\n if (!hasOwn.call(credential, fields[k])) {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_credential', 'missing_field_' + fields[k]));\n return;\n }\n }\n stash.jsApiParameters = credential;\n this.callpay();\n },\n\n wxLiteEnabled: function () {\n return typeof wx !== 'undefined' && wx.requestPayment;\n },\n\n //微信小程序支付\n callpay: function () {\n if (!this.wxLiteEnabled()) {\n console.log('请在微信小程序中打开');\n return;\n }\n var wx_lite = stash.jsApiParameters;\n delete wx_lite.appId;\n wx_lite.complete = function (res) {\n //支付成功\n if (res.errMsg === 'requestPayment:ok') {\n callbacks.innerCallback('success');\n }\n //取消支付\n if (res.errMsg === 'requestPayment:cancel'\n || res.errMsg === 'requestPayment:fail cancel') {\n callbacks.innerCallback('cancel', callbacks.error('用户取消支付'));\n }\n //支付验证签名失败\n if (res.err_code !== 'undefined' && res.err_desc !== 'undefined') {\n callbacks.innerCallback('fail', callbacks.error(res.err_desc, res));\n }\n };\n wx.requestPayment(wx_lite);\n },\n\n runTestMode: function (charge) {\n var path = '/charges/' + charge.id;\n wx.request({\n url: this.PINGPP_NOTIFY_URL_BASE + path + '?livemode=false',\n success: function(res) {\n if (res.data == 'success') {\n callbacks.innerCallback('success');\n } else {\n callbacks.innerCallback('fail',\n callbacks.error('testmode_notify_fail'));\n }\n },\n fail:function() {\n callbacks.innerCallback('fail', callbacks.error('network_err'));\n }\n });\n }\n};\n","var wxPub = require('./wx_pub');\n\nmodule.exports = wxPub;\n","var utils = require('../utils');\nvar callbacks = require('../callbacks');\nvar hasOwn = {}.hasOwnProperty;\n\nmodule.exports = {\n\n handleCharge: function(charge) {\n var credential = charge.credential[charge.channel];\n if (typeof credential === 'string') {\n utils.redirectTo(credential, charge.channel);\n } else if (typeof credential === 'object'\n && hasOwn.call(credential, 'url')\n ) {\n utils.redirectTo(credential.url, charge.channel);\n } else {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_credential', 'credential 格式不正确'));\n }\n }\n};\n","var utils = require('../utils');\nvar callbacks = require('../callbacks');\nvar hasOwn = {}.hasOwnProperty;\n\nmodule.exports = {\n\n YEEPAY_WAP_URL: 'https://ok.yeepay.com/paymobile/api/pay/request',\n YEEPAY_WAP_TEST_URL: 'http://mobiletest.yeepay.com/paymobile/api/pay/request',\n\n handleCharge: function(charge) {\n var channel = charge.channel;\n var credential = charge.credential[channel];\n var fields = ['merchantaccount', 'encryptkey', 'data'];\n for (var k = 0; k < fields.length; k++) {\n if (!hasOwn.call(credential, fields[k])) {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_credential', 'missing_field_' + fields[k]));\n return;\n }\n }\n var baseURL;\n if (hasOwn.call(credential, 'mode') && credential.mode == 'test') {\n baseURL = this.YEEPAY_WAP_TEST_URL;\n } else {\n baseURL = this.YEEPAY_WAP_URL;\n }\n utils.redirectTo(baseURL + '?' +\n utils.stringifyData(credential, channel, true), charge.channel);\n }\n};\n","var utils = require('./utils');\nvar stash = require('./stash');\nvar md5 = require('./libs/md5');\n\nvar collection = {\n seperator: '###',\n limit: 1,\n report_url: 'https://statistics.pingxx.com/one_stats',\n timeout: 100\n};\nvar getParam = function(str, param) {\n var reg = new RegExp('(^|&)' + param + '=([^&]*)(&|$)', 'i');\n var r = str.substring(0).match(reg);\n if (r !== null) return unescape(r[2]);\n return null;\n};\nvar getUserAgent = function() {\n if (typeof navigator === 'undefined') {\n return '';\n }\n return navigator.userAgent;\n};\nvar getHost = function() {\n if (typeof window === 'undefined') {\n return '';\n }\n return window.location.host;\n};\n\ncollection.store = function(obj) {\n if (utils.inWxLite() || utils.inAlipayLite()) {\n return;\n }\n if (typeof localStorage === 'undefined' || localStorage === null) return;\n var _this = this;\n var reportData = {};\n reportData.app_id = obj.app_id || stash.app_id || 'app_not_defined';\n reportData.ch_id = obj.ch_id || '';\n reportData.channel = obj.channel || '';\n reportData.type = obj.type || '';\n reportData.user_agent = getUserAgent();\n reportData.host = getHost();\n reportData.time = new Date().getTime();\n reportData.puid = stash.puid;\n\n var reportStr = 'app_id=' + reportData.app_id +\n '&channel=' + reportData.channel + '&ch_id=' + reportData.ch_id +\n '&host=' + reportData.host + '&time=' + reportData.time +\n '&type=' + reportData.type + '&user_agent=' + reportData.user_agent +\n '&puid=' + reportData.puid;\n\n var statsToSave = reportStr;\n if (localStorage.getItem('PPP_ONE_STATS') !== null &&\n localStorage.getItem('PPP_ONE_STATS').length !== 0\n ) {\n statsToSave = localStorage.getItem('PPP_ONE_STATS') +\n _this.seperator + reportStr;\n }\n try {\n localStorage.setItem('PPP_ONE_STATS', statsToSave);\n } catch (e) {\n /* empty */\n }\n};\n\ncollection.send = function() {\n if (typeof localStorage === 'undefined' || localStorage === null) return;\n var _this = this;\n var pppOneStats = localStorage.getItem('PPP_ONE_STATS');\n if (pppOneStats === null ||\n pppOneStats.split(_this.seperator).length < _this.limit) {\n return;\n }\n try {\n var data = [];\n var origin = pppOneStats.split(_this.seperator);\n var token = md5(origin.join('&'));\n\n for (var i = 0; i < origin.length; i++) {\n data.push({\n app_id: getParam(origin[i], 'app_id'),\n channel: getParam(origin[i], 'channel'),\n ch_id: getParam(origin[i], 'ch_id'),\n host: getParam(origin[i], 'host'),\n time: getParam(origin[i], 'time'),\n type: getParam(origin[i], 'type'),\n user_agent: getParam(origin[i], 'user_agent'),\n puid: getParam(origin[i], 'puid')\n });\n }\n\n utils.request(_this.report_url, 'POST', data, function(data, status) {\n if (status == 200) {\n localStorage.removeItem('PPP_ONE_STATS');\n }\n }, undefined, {\n 'X-Pingpp-Report-Token': token\n });\n } catch (e) {\n /* empty */\n }\n};\n\ncollection.report = function(obj) {\n if (utils.inWxLite() || utils.inAlipayLite()) {\n return;\n }\n var _this = this;\n _this.store(obj);\n setTimeout(function(){\n _this.send();\n }, _this.timeout);\n};\n\nmodule.exports = collection;\n","var error = function PingppError(message, extra) {\n this.message = message;\n this.extra = extra;\n};\n\nmodule.exports = {\n Error: error,\n};\n","var stash = require('./stash');\nvar utils = require('./utils');\nvar dc = require('./collection');\n\nmodule.exports = {\n SRC_URL: 'https://cookie.pingxx.com',\n\n init: function() {\n var self = this;\n utils.documentReady(function(){\n try {\n (!(utils.inWxLite() || utils.inAlipayLite())) && self.initPuid();\n } catch (e){/* empty */}\n });\n },\n\n initPuid: function() {\n if (typeof window === 'undefined' || typeof localStorage === 'undefined'\n || localStorage === null) {\n return;\n }\n var puid = localStorage.getItem('pingpp_uid');\n if (puid === null) {\n puid = utils.randomString();\n try {\n localStorage.setItem('pingpp_uid', puid);\n } catch (e) {\n /* empty */\n }\n }\n stash.puid = puid;\n if (!document.getElementById('p_analyse_iframe')) {\n var iframe;\n try {\n iframe = document.createElement('iframe');\n }catch(e){\n iframe = document.createElement('<iframe name=\"ifr\"></iframe>');\n }\n iframe.id = 'p_analyse_iframe';\n iframe.src = this.SRC_URL + '/?puid=' + puid;\n iframe.style.display = 'none';\n document.body.appendChild(iframe);\n }\n setTimeout(function() {\n dc.send();\n }, 0);\n }\n};\n","/*\n * JavaScript MD5\n * https://github.com/blueimp/JavaScript-MD5\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n *\n * Based on\n * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message\n * Digest Algorithm, as defined in RFC 1321.\n * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for more info.\n */\n\n/* global unescape, module */\n\n(function () {\n /*\n * Add integers, wrapping at 2^32. This uses 16-bit operations internally\n * to work around bugs in some JS interpreters.\n */\n function safe_add (x, y) {\n var lsw = (x & 0xFFFF) + (y & 0xFFFF);\n var msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return (msw << 16) | (lsw & 0xFFFF);\n }\n\n /*\n * Bitwise rotate a 32-bit number to the left.\n */\n function bit_rol (num, cnt) {\n return (num << cnt) | (num >>> (32 - cnt));\n }\n\n /*\n * These functions implement the four basic operations the algorithm uses.\n */\n function md5_cmn (q, a, b, x, s, t) {\n return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b);\n }\n function md5_ff (a, b, c, d, x, s, t) {\n return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);\n }\n function md5_gg (a, b, c, d, x, s, t) {\n return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);\n }\n function md5_hh (a, b, c, d, x, s, t) {\n return md5_cmn(b ^ c ^ d, a, b, x, s, t);\n }\n function md5_ii (a, b, c, d, x, s, t) {\n return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);\n }\n\n /*\n * Calculate the MD5 of an array of little-endian words, and a bit length.\n */\n function binl_md5 (x, len) {\n /* append padding */\n x[len >> 5] |= 0x80 << (len % 32);\n x[(((len + 64) >>> 9) << 4) + 14] = len;\n\n var i;\n var olda;\n var oldb;\n var oldc;\n var oldd;\n var a = 1732584193;\n var b = -271733879;\n var c = -1732584194;\n var d = 271733878;\n\n for (i = 0; i < x.length; i += 16) {\n olda = a;\n oldb = b;\n oldc = c;\n oldd = d;\n\n a = md5_ff(a, b, c, d, x[i], 7, -680876936);\n d = md5_ff(d, a, b, c, x[i + 1], 12, -389564586);\n c = md5_ff(c, d, a, b, x[i + 2], 17, 606105819);\n b = md5_ff(b, c, d, a, x[i + 3], 22, -1044525330);\n a = md5_ff(a, b, c, d, x[i + 4], 7, -176418897);\n d = md5_ff(d, a, b, c, x[i + 5], 12, 1200080426);\n c = md5_ff(c, d, a, b, x[i + 6], 17, -1473231341);\n b = md5_ff(b, c, d, a, x[i + 7], 22, -45705983);\n a = md5_ff(a, b, c, d, x[i + 8], 7, 1770035416);\n d = md5_ff(d, a, b, c, x[i + 9], 12, -1958414417);\n c = md5_ff(c, d, a, b, x[i + 10], 17, -42063);\n b = md5_ff(b, c, d, a, x[i + 11], 22, -1990404162);\n a = md5_ff(a, b, c, d, x[i + 12], 7, 1804603682);\n d = md5_ff(d, a, b, c, x[i + 13], 12, -40341101);\n c = md5_ff(c, d, a, b, x[i + 14], 17, -1502002290);\n b = md5_ff(b, c, d, a, x[i + 15], 22, 1236535329);\n\n a = md5_gg(a, b, c, d, x[i + 1], 5, -165796510);\n d = md5_gg(d, a, b, c, x[i + 6], 9, -1069501632);\n c = md5_gg(c, d, a, b, x[i + 11], 14, 643717713);\n b = md5_gg(b, c, d, a, x[i], 20, -373897302);\n a = md5_gg(a, b, c, d, x[i + 5], 5, -701558691);\n d = md5_gg(d, a, b, c, x[i + 10], 9, 38016083);\n c = md5_gg(c, d, a, b, x[i + 15], 14, -660478335);\n b = md5_gg(b, c, d, a, x[i + 4], 20, -405537848);\n a = md5_gg(a, b, c, d, x[i + 9], 5, 568446438);\n d = md5_gg(d, a, b, c, x[i + 14], 9, -1019803690);\n c = md5_gg(c, d, a, b, x[i + 3], 14, -187363961);\n b = md5_gg(b, c, d, a, x[i + 8], 20, 1163531501);\n a = md5_gg(a, b, c, d, x[i + 13], 5, -1444681467);\n d = md5_gg(d, a, b, c, x[i + 2], 9, -51403784);\n c = md5_gg(c, d, a, b, x[i + 7], 14, 1735328473);\n b = md5_gg(b, c, d, a, x[i + 12], 20, -1926607734);\n\n a = md5_hh(a, b, c, d, x[i + 5], 4, -378558);\n d = md5_hh(d, a, b, c, x[i + 8], 11, -2022574463);\n c = md5_hh(c, d, a, b, x[i + 11], 16, 1839030562);\n b = md5_hh(b, c, d, a, x[i + 14], 23, -35309556);\n a = md5_hh(a, b, c, d, x[i + 1], 4, -1530992060);\n d = md5_hh(d, a, b, c, x[i + 4], 11, 1272893353);\n c = md5_hh(c, d, a, b, x[i + 7], 16, -155497632);\n b = md5_hh(b, c, d, a, x[i + 10], 23, -1094730640);\n a = md5_hh(a, b, c, d, x[i + 13], 4, 681279174);\n d = md5_hh(d, a, b, c, x[i], 11, -358537222);\n c = md5_hh(c, d, a, b, x[i + 3], 16, -722521979);\n b = md5_hh(b, c, d, a, x[i + 6], 23, 76029189);\n a = md5_hh(a, b, c, d, x[i + 9], 4, -640364487);\n d = md5_hh(d, a, b, c, x[i + 12], 11, -421815835);\n c = md5_hh(c, d, a, b, x[i + 15], 16, 530742520);\n b = md5_hh(b, c, d, a, x[i + 2], 23, -995338651);\n\n a = md5_ii(a, b, c, d, x[i], 6, -198630844);\n d = md5_ii(d, a, b, c, x[i + 7], 10, 1126891415);\n c = md5_ii(c, d, a, b, x[i + 14], 15, -1416354905);\n b = md5_ii(b, c, d, a, x[i + 5], 21, -57434055);\n a = md5_ii(a, b, c, d, x[i + 12], 6, 1700485571);\n d = md5_ii(d, a, b, c, x[i + 3], 10, -1894986606);\n c = md5_ii(c, d, a, b, x[i + 10], 15, -1051523);\n b = md5_ii(b, c, d, a, x[i + 1], 21, -2054922799);\n a = md5_ii(a, b, c, d, x[i + 8], 6, 1873313359);\n d = md5_ii(d, a, b, c, x[i + 15], 10, -30611744);\n c = md5_ii(c, d, a, b, x[i + 6], 15, -1560198380);\n b = md5_ii(b, c, d, a, x[i + 13], 21, 1309151649);\n a = md5_ii(a, b, c, d, x[i + 4], 6, -145523070);\n d = md5_ii(d, a, b, c, x[i + 11], 10, -1120210379);\n c = md5_ii(c, d, a, b, x[i + 2], 15, 718787259);\n b = md5_ii(b, c, d, a, x[i + 9], 21, -343485551);\n\n a = safe_add(a, olda);\n b = safe_add(b, oldb);\n c = safe_add(c, oldc);\n d = safe_add(d, oldd);\n }\n return [a, b, c, d];\n }\n\n /*\n * Convert an array of little-endian words to a string\n */\n function binl2rstr (input) {\n var i;\n var output = '';\n for (i = 0; i < input.length * 32; i += 8) {\n output += String.fromCharCode((input[i >> 5] >>> (i % 32)) & 0xFF);\n }\n return output;\n }\n\n /*\n * Convert a raw string to an array of little-endian words\n * Characters >255 have their high-byte silently ignored.\n */\n function rstr2binl (input) {\n var i;\n var output = [];\n output[(input.length >> 2) - 1] = undefined;\n for (i = 0; i < output.length; i += 1) {\n output[i] = 0;\n }\n for (i = 0; i < input.length * 8; i += 8) {\n output[i >> 5] |= (input.charCodeAt(i / 8) & 0xFF) << (i % 32);\n }\n return output;\n }\n\n /*\n * Calculate the MD5 of a raw string\n */\n function rstr_md5 (s) {\n return binl2rstr(binl_md5(rstr2binl(s), s.length * 8));\n }\n\n /*\n * Calculate the HMAC-MD5, of a key and some data (raw strings)\n */\n function rstr_hmac_md5 (key, data) {\n var i;\n var bkey = rstr2binl(key);\n var ipad = [];\n var opad = [];\n var hash;\n ipad[15] = opad[15] = undefined;\n if (bkey.length > 16) {\n bkey = binl_md5(bkey, key.length * 8);\n }\n for (i = 0; i < 16; i += 1) {\n ipad[i] = bkey[i] ^ 0x36363636;\n opad[i] = bkey[i] ^ 0x5C5C5C5C;\n }\n hash = binl_md5(ipad.concat(rstr2binl(data)), 512 + data.length * 8);\n return binl2rstr(binl_md5(opad.concat(hash), 512 + 128));\n }\n\n /*\n * Convert a raw string to a hex string\n */\n function rstr2hex (input) {\n var hex_tab = '0123456789abcdef';\n var output = '';\n var x;\n var i;\n for (i = 0; i < input.length; i += 1) {\n x = input.charCodeAt(i);\n output += hex_tab.charAt((x >>> 4) & 0x0F) +\n hex_tab.charAt(x & 0x0F);\n }\n return output;\n }\n\n /*\n * Encode a string as utf-8\n */\n function str2rstr_utf8 (input) {\n return unescape(encodeURIComponent(input));\n }\n\n /*\n * Take string arguments and return either raw or hex encoded strings\n */\n function raw_md5 (s) {\n return rstr_md5(str2rstr_utf8(s));\n }\n function hex_md5 (s) {\n return rstr2hex(raw_md5(s));\n }\n function raw_hmac_md5 (k, d) {\n return rstr_hmac_md5(str2rstr_utf8(k), str2rstr_utf8(d));\n }\n function hex_hmac_md5 (k, d) {\n return rstr2hex(raw_hmac_md5(k, d));\n }\n\n function md5 (string, key, raw) {\n if (!key) {\n if (!raw) {\n return hex_md5(string);\n }\n return raw_md5(string);\n }\n if (!raw) {\n return hex_hmac_md5(key, string);\n }\n return raw_hmac_md5(key, string);\n }\n\n module.exports = md5;\n}());\n","var version = require('./version').v;\nvar hasOwn = {}.hasOwnProperty;\n\nvar PingppSDK = function () {\n require('./init').init();\n};\n\nPingppSDK.prototype.version = version;\n\nmodule.exports = new PingppSDK();\n\nvar testmode = require('./testmode');\nvar callbacks = require('./callbacks');\nvar PingppError = require('./errors').Error;\nvar mods = require('./mods');\nvar stash = require('./stash');\nvar dc = require('./collection');\nvar payment_elements = require('./payment_elements');\n\nPingppSDK.prototype.createPayment = function (\n chargeJSON, callback, signature, debug\n) {\n if (typeof callback === 'function') {\n callbacks.userCallback = callback;\n }\n\n try {\n payment_elements.init(chargeJSON);\n } catch (e) {\n if (e instanceof PingppError) {\n callbacks.innerCallback('fail',\n callbacks.error(e.message, e.extra));\n return;\n } else {\n throw e;\n }\n }\n\n if (!hasOwn.call(payment_elements, 'id')) {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_charge', 'no_charge_id'));\n return;\n }\n if (!hasOwn.call(payment_elements, 'channel')) {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_charge', 'no_channel'));\n return;\n }\n\n if (hasOwn.call(payment_elements, 'app')) {\n if (typeof payment_elements.app === 'string') {\n stash.app_id = payment_elements.app;\n } else if (typeof payment_elements.app === 'object' &&\n typeof payment_elements.app.id === 'string') {\n stash.app_id = payment_elements.app.id;\n }\n }\n dc.report({\n type: stash.type || 'pure_sdk_click',\n channel: payment_elements.channel,\n ch_id: payment_elements.id\n });\n var channel = payment_elements.channel;\n if (!hasOwn.call(payment_elements, 'credential')) {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_charge', 'no_credential'));\n return;\n }\n if (payment_elements.paid && payment_elements.actual_amount === 0) {\n callbacks.innerCallback('success');\n return;\n }\n\n if (!payment_elements.credential) {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_credential', 'credential_is_undefined'));\n return;\n }\n if (!hasOwn.call(payment_elements.credential, channel)) {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_credential', 'credential_is_incorrect'));\n return;\n }\n if (!hasOwn.call(payment_elements, 'livemode')) {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_charge', 'no_livemode_field'));\n return;\n }\n var channelModule = mods.getChannelModule(channel);\n if (typeof channelModule === 'undefined') {\n console.error('channel module \"' + channel + '\" is undefined');\n callbacks.innerCallback('fail',\n callbacks.error('invalid_channel',\n 'channel module \"' + channel + '\" is undefined')\n );\n return;\n }\n if (payment_elements.livemode === false) {\n if (hasOwn.call(channelModule, 'runTestMode')) {\n channelModule.runTestMode(payment_elements);\n } else {\n testmode.runTestMode(payment_elements);\n }\n return;\n }\n\n if (typeof signature != 'undefined') {\n stash.signature = signature;\n }\n if (typeof debug == 'boolean') {\n stash.debug = debug;\n }\n channelModule.handleCharge(payment_elements);\n};\n\nPingppSDK.prototype.setAPURL = function (url) {\n stash.APURL = url;\n};\n\nPingppSDK.prototype.setUrlReturnCallback = function (callback, channels) {\n if (typeof callback === 'function') {\n callbacks.urlReturnCallback = callback;\n } else {\n throw 'callback need to be a function';\n }\n\n if (typeof channels !== 'undefined') {\n if (Array.isArray(channels)) {\n callbacks.urlReturnChannels = channels;\n } else {\n throw 'channels need to be an array';\n }\n }\n};\n\nPingppSDK.prototype.signAgreement = function (agreement, callback) {\n if (typeof callback === 'function') {\n callbacks.userAgreementCallback = callback;\n }\n\n var module = mods.getExtraModule('agreement');\n if (typeof module === 'undefined') {\n console.error('module \"agreement\" is undefined');\n callbacks.innerCallback('fail',\n callbacks.error('invalid_module',\n 'module \"agreement\" is undefined')\n );\n return false;\n }\n\n return module.signAgreement(agreement);\n};\n","var hasOwn = {}.hasOwnProperty;\nvar mods = {};\nmodule.exports = mods;\n\nmods.channels = {\n alipay: require('./channels/alipay'),\n alipay_lite: require('./channels/alipay_lite'),\n alipay_pc_direct: require('./channels/alipay_pc_direct'),\n alipay_qr: require('./channels/alipay_qr'),\n alipay_qr_lakala: require('./channels/alipay_qr_lakala'),\n alipay_wap: require('./channels/alipay_wap'),\n alipay_wap_lakala: require('./channels/alipay_wap_lakala'),\n bfb_wap: require('./channels/bfb_wap'),\n cb_alipay_pc_direct: require('./channels/cb_alipay_pc_direct'),\n cb_alipay_wap: require('./channels/cb_alipay_wap'),\n cb_wx_pub: require('./channels/cb_wx_pub'),\n ccb_qr: require('./channels/ccb_qr'),\n ccb_wap: require('./channels/ccb_wap'),\n cmb_pc_qr: require('./channels/cmb_pc_qr'),\n cmb_wallet: require('./channels/cmb_wallet'),\n coolcredit: require('./channels/coolcredit'),\n cp_b2b: require('./channels/cp_b2b'),\n isv_lite: require('./channels/isv_lite'),\n isv_wap: require('./channels/isv_wap'),\n jdpay_wap: require('./channels/jdpay_wap'),\n pab_pc: require('./channels/pab_pc'),\n paypal: require('./channels/paypal'),\n qpay_pub: require('./channels/qpay_pub'),\n upacp_b2b: require('./channels/upacp_b2b'),\n upacp_pc: require('./channels/upacp_pc'),\n upacp_wap: require('./channels/upacp_wap'),\n wx_lite: require('./channels/wx_lite'),\n wx_lite_pab: require('./channels/wx_lite_pab'),\n wx_pub: require('./channels/wx_pub'),\n wx_pub_hzbank: require('./channels/wx_pub_hzbank'),\n wx_pub_pab: require('./channels/wx_pub_pab'),\n wx_wap: require('./channels/wx_wap'),\n yeepay_wap: require('./channels/yeepay_wap')\n};\n\nmods.extras = {\n ap: require('./channels/extras/ap'),\n agreement: require('./agreement')\n};\n\nmods.getChannelModule = function(channel) {\n if (hasOwn.call(mods.channels, channel)) {\n return mods.channels[channel];\n }\n return undefined;\n};\n\nmods.getExtraModule = function(name) {\n if (hasOwn.call(mods.extras, name)) {\n return mods.extras[name];\n }\n return undefined;\n};\n","/**\n * Created by dong on 2016/12/30.\n */\n\nvar PingppError = require('./errors').Error;\nvar hasOwn = {}.hasOwnProperty;\n\nmodule.exports = {\n id: null,\n or_id: null,\n channel: null,\n app: null,\n credential: {},\n extra: null,\n livemode: null,\n order_no: null,\n time_expire: null,\n paid: false,\n status: null,\n actual_amount: null,\n\n init: function (charge_or_order) {\n var charge;\n if (typeof charge_or_order === 'string') {\n try {\n charge = JSON.parse(charge_or_order);\n } catch (err) {\n throw new PingppError('json_decode_fail', err);\n }\n } else {\n charge = charge_or_order;\n }\n\n if (typeof charge === 'undefined') {\n throw new PingppError('json_decode_fail');\n }\n\n if (hasOwn.call(charge, 'object') && charge.object == 'order') {\n charge.or_id = charge.id;\n charge.order_no = charge.merchant_order_no;\n var charge_essentials = charge.charge_essentials;\n charge.channel = charge_essentials.channel;\n charge.credential = charge_essentials.credential;\n charge.extra = charge_essentials.extra;\n if(hasOwn.call(charge, 'charge') && charge.charge != null) {\n charge.id = charge.charge;\n } else if(hasOwn.call(charge_essentials, 'id')\n && charge_essentials.id != null) {\n charge.id = charge_essentials.id;\n } else if(hasOwn.call(charge, 'charges')) {\n for(var i = 0; i < charge.charges.data.length; i++){\n if(charge.charges.data[i].channel === charge_essentials.channel) {\n charge.id = charge.charges.data[i].id;\n break;\n }\n }\n }\n } else if(hasOwn.call(charge, 'object') && charge.object == 'recharge') {\n charge = charge.charge;\n }\n\n for (var key in this) {\n if (hasOwn.call(charge, key)) {\n this[key] = charge[key];\n }\n }\n return this;\n },\n\n clear: function () {\n for (var key in this) {\n if (typeof this[key] !== 'function') {\n this[key] = null;\n }\n }\n }\n};","module.exports = {\n};\n","var utils = require('./utils');\nvar hasOwn = {}.hasOwnProperty;\nmodule.exports = {\n PINGPP_MOCK_URL: 'http://sissi.pingxx.com/mock.php',\n\n runTestMode: function (charge) {\n var params = {\n 'ch_id': charge.id,\n 'scheme': 'http',\n 'channel': charge.channel\n };\n\n if (hasOwn.call(charge, 'order_no')) {\n params.order_no = charge.order_no;\n } else if (hasOwn.call(charge, 'orderNo')) {\n params.order_no = charge.orderNo;\n }\n if (hasOwn.call(charge, 'time_expire')) {\n params.time_expire = charge.time_expire;\n } else if (hasOwn.call(charge, 'timeExpire')) {\n params.time_expire = charge.timeExpire;\n }\n if (hasOwn.call(charge, 'extra')) {\n params.extra = encodeURIComponent(JSON.stringify(charge.extra));\n }\n utils.redirectTo(\n this.PINGPP_MOCK_URL + '?' + utils.stringifyData(params),\n charge.channel\n );\n }\n};\n","var callbacks = require('./callbacks');\nvar hasOwn = {}.hasOwnProperty;\n\nvar utils = module.exports = {\n\n /**\n * 对象转换成 query string\n * @param object data 待转对象\n * @param string channel 渠道\n * @param boolean urlencode 是否需要 urlencode\n *\n * @return string query string\n */\n stringifyData: function (data, channel, urlencode) {\n if (typeof urlencode == 'undefined') {\n urlencode = false;\n }\n var output = [];\n for (var i in data) {\n if (!hasOwn.call(data, i) || typeof data[i] === 'function') {\n continue;\n }\n if (channel == 'bfb_wap' && i == 'url') {\n continue;\n }\n if (channel == 'yeepay_wap' && i == 'mode') {\n continue;\n }\n if (i == 'channel_url') {\n continue;\n }\n output.push(i + '=' +\n (urlencode ? encodeURIComponent(data[i]) : data[i]));\n }\n return output.join('&');\n },\n\n /**\n * 网络请求\n * @param string url\n * @param string method 请求方式, POST, GET ...\n * @param object requestData 请求数据\n * @param function successCallback 成功回调 (data, statusCode, xhr)\n * @param function errorCallback 错误回调 (xhr, statusCode, error)\n */\n request: function (url, method, requestData,\n successCallback, errorCallback, headers) {\n if (typeof XMLHttpRequest === 'undefined') {\n console.log('Function XMLHttpRequest is undefined.');\n return;\n }\n var xhr = new XMLHttpRequest();\n if (typeof xhr.timeout !== 'undefined') {\n xhr.timeout = 6000;\n }\n method = method.toUpperCase();\n\n if (method === 'GET' && typeof requestData === 'object' && requestData) {\n url += '?' + utils.stringifyData(requestData, '', true);\n }\n xhr.open(method, url, true);\n if (typeof headers !== 'undefined') {\n for (var k in headers) {\n if (hasOwn.call(headers, k)) {\n xhr.setRequestHeader(k, headers[k]);\n }\n }\n }\n if (method === 'POST') {\n xhr.setRequestHeader('Content-type', 'application/json; charset=utf-8');\n xhr.send(JSON.stringify(requestData));\n } else {\n xhr.send();\n }\n if (typeof successCallback == 'undefined') {\n successCallback = function () {};\n }\n if (typeof errorCallback == 'undefined') {\n errorCallback = function () {};\n }\n xhr.onreadystatechange = function () {\n if (xhr.readyState == 4) {\n successCallback(xhr.responseText, xhr.status, xhr);\n }\n };\n xhr.onerror = function (e) {\n errorCallback(xhr, 0, e);\n };\n },\n\n /**\n * 表单提交\n * @param string url\n * @param string method 请求方式, POST, GET ...\n * @param object params 请求数据\n */\n formSubmit: function (url, method, params) {\n if (typeof window === 'undefined') {\n console.log('Not a browser, form submit url: ' + url);\n return;\n }\n var form = document.createElement('form');\n form.setAttribute('method', method);\n form.setAttribute('action', url);\n\n for (var key in params) {\n if (hasOwn.call(params, key)) {\n var hiddenField = document.createElement('input');\n hiddenField.setAttribute('type', 'hidden');\n hiddenField.setAttribute('name', key);\n hiddenField.setAttribute('value', params[key]);\n form.appendChild(hiddenField);\n }\n }\n\n document.body.appendChild(form);\n form.submit();\n },\n\n randomString: function (length) {\n if (typeof length == 'undefined') {\n length = 32;\n }\n var chars =\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n var maxPos = chars.length;\n var str = '';\n for (var i = 0; i < length; i++) {\n str += chars.charAt(Math.floor(Math.random() * maxPos));\n }\n\n return str;\n },\n\n redirectTo: function (url, channel) {\n if (callbacks.shouldReturnUrlByCallback(channel)) {\n callbacks.triggerUrlReturnCallback(null, url);\n return;\n }\n if (typeof window === 'undefined') {\n console.log('Not a browser, redirect url: ' + url);\n return;\n }\n window.location.href = url;\n },\n\n inWeixin: function () {\n if (typeof navigator === 'undefined') {\n return false;\n }\n var ua = navigator.userAgent.toLowerCase();\n return ua.indexOf('micromessenger') !== -1;\n },\n\n inAlipay: function () {\n if (typeof navigator === 'undefined') {\n return false;\n }\n var ua = navigator.userAgent.toLowerCase();\n return ua.indexOf('alipayclient') !== -1;\n },\n\n /*global wx*/\n inWxLite: function() {\n if(typeof wx === 'undefined') {\n return false;\n }\n \n return wx.miniProgram || wx.requestPayment;\n },\n\n /*global my*/\n inAlipayLite: function() {\n if(typeof my === 'undefined') {\n return false;\n }\n\n return my.tradePay;\n },\n\n documentReady: function (fn) {\n if (typeof document === 'undefined') {\n fn();\n return;\n }\n if (document.readyState != 'loading') {\n fn();\n } else {\n document.addEventListener('DOMContentLoaded', fn);\n }\n },\n\n loadUrlJs: function (sid, jsurl, callback) {\n var nodeHead = document.getElementsByTagName('head')[0];\n var nodeScript = null;\n if (document.getElementById(sid) == null) {\n nodeScript = document.createElement('script');\n nodeScript.setAttribute('type', 'text/javascript');\n nodeScript.setAttribute('src', jsurl);\n nodeScript.setAttribute('id', sid);\n nodeScript.async = true;\n if (callback != null) {\n nodeScript.onload = nodeScript.onreadystatechange = function () {\n if (nodeScript.ready) {\n return false;\n }\n\n if (!nodeScript.readyState || nodeScript.readyState == 'loaded'\n || nodeScript.readyState == 'complete') {\n nodeScript.ready = true;\n callback();\n }\n };\n }\n nodeHead.appendChild(nodeScript);\n } else {\n if (callback != null) {\n callback();\n }\n }\n }\n};\n","module.exports = {\n v: '2.2.21'\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["node_modules/browser-pack/_prelude.js","src/agreement.js","src/callbacks.js","src/channels/alipay.js","src/channels/alipay_lite.js","src/channels/alipay_pc_direct.js","src/channels/alipay_qr.js","src/channels/alipay_qr_lakala.js","src/channels/alipay_wap.js","src/channels/bfb_wap.js","src/channels/cb_alipay_pc_direct.js","src/channels/cb_alipay_wap.js","src/channels/cb_wx_pub.js","src/channels/ccb_wap.js","src/channels/chinaums_alipay_pub.js","src/channels/chinaums_upacp_wap.js","src/channels/cmb_pc_qr.js","src/channels/cmb_wallet.js","src/channels/commons/redirect_base.js","src/channels/coolcredit.js","src/channels/cp_b2b.js","src/channels/extras/ap.js","src/channels/isv_lite.js","src/channels/isv_wap.js","src/channels/jdpay_wap.js","src/channels/nucc_b2b_lakala.js","src/channels/pab_pc.js","src/channels/paypal.js","src/channels/qpay_pub.js","src/channels/upacp_pc.js","src/channels/upacp_wap.js","src/channels/wx_lite.js","src/channels/wx_pub_hzbank.js","src/channels/wx_wap.js","src/channels/yeepay_wap.js","src/errors.js","src/init.js","src/main.js","src/mods.js","src/payment_elements.js","src/stash.js","src/testmode.js","src/utils.js","src/version.js"],"names":["f","exports","module","define","amd","window","global","self","this","pingpp","r","e","n","t","o","i","c","require","u","a","Error","code","p","call","length","1","hasOwn","hasOwnProperty","callbacks","utils","signAgreement","agreement","agreementObj","JSON","parse","err","innerAgreementCallback","error","object","credential","channel","urlToOpen","substring","url","URL","encodeURIComponent","search","setTimeout","redirectTo","userCallback","undefined","urlReturnCallback","urlReturnChannels","userAgreementCallback","innerCallback","result","clear","msg","extra","triggerUrlReturnCallback","shouldReturnUrlByCallback","indexOf","PINGPP_NOTIFY_URL_BASE","handleCharge","charge","callpay","orderInfo","alipayLiteEnabled","my","tradePay","orderStr","alipayLitePay","navigator","test","userAgent","swuserAgent","waitAlipayJSBridgde","alipayJsBridgePay","errmsg","console","log","callback","AlipayJSBridge","document","addEventListener","alipayResultHandler","tradePayParams","complete","res","resultCode","memo","runTestMode","path","id","httpRequest","success","data","fail","trade_no","tradeNO","alipay_lite","ALIPAY_PC_DIRECT_URL","baseURL","channel_url","service","_input_charset","query","stringifyData","transaction_no","ready","redirectBase","mods","ALIPAY_WAP_URL_OLD","ALIPAY_WAP_URL","targetURL","ap","getExtraModule","inWeixin","pay","stash","fields","k","jsApiParameters","wx_jssdk","jssdkEnabled","WeixinJSBridge","eventCallback","jsApiCall","attachEvent","invoke","err_msg","confirm","request","status","CCB_WAP_URL_BASE","formSubmit","CMB_WALLET_URL","request_url","ChannelUrl","channelVersion","request_data","CP_B2B_URL","b","PADCHAR","ALPHA","makeDOMException","DOMException","INVALID_CHARACTER_ERR","d","number","name","description","toString","message","getbyte64","charAt","decode","h","g","j","push","String","fromCharCode","join","getbyte","charCodeAt","encode","arguments","SyntaxError","APURL","location","href","decodeURIComponent","wxLite","pay_channel","inAlipay","JDPAY_WAP_URL_OLD","JDPAY_H5_URL","JDPAY_PC_URL","channelUrl","bankUrl","SRC_URL","ID","tokenId","token_id","loadUrlJs","mqq","QQVersion","tenpay","retmsg","UPACP_PC_URL","UPACP_WAP_URL","wxLiteEnabled","wx","requestPayment","wx_lite","appId","errMsg","err_code","err_desc","wxPub","YEEPAY_WAP_URL","YEEPAY_WAP_TEST_URL","mode","init","documentReady","inWxLite","inAlipayLite","initPuid","localStorage","puid","getItem","randomString","setItem","version","v","PingppSDK","prototype","testmode","PingppError","payment_elements","createPayment","chargeJSON","signature","debug","app","app_id","paid","actual_amount","channelModule","getChannelModule","livemode","setAPURL","setUrlReturnCallback","channels","Array","isArray","alipay","alipay_pc_direct","alipay_qr","alipay_qr_lakala","alipay_wap","alipay_wap_lakala","bfb_wap","cb_alipay_pc_direct","cb_alipay_wap","cb_wx_pub","ccb_qr","ccb_wap","chinaums_alipay_pub","chinaums_alipay_wap","chinaums_upacp_wap","chinaums_wx_pub","chinaums_wx_wap","cmb_pc_qr","cmb_wallet","coolcredit","cp_b2b","isv_lite","isv_wap","jdpay_wap","nucc_b2b_lakala","nucc_b2c_lakala","pab_pc","paypal","qpay_pub","upacp_b2b","upacp_pc","upacp_wap","wx_lite_pab","wx_pub","wx_pub_hzbank","wx_pub_pab","wx_wap","yeepay_wap","extras","or_id","order_no","time_expire","charge_or_order","merchant_order_no","charge_essentials","charges","key","PINGPP_MOCK_URL","params","ch_id","scheme","orderNo","timeExpire","stringify","urlencode","output","method","requestData","successCallback","errorCallback","headers","XMLHttpRequest","xhr","timeout","toUpperCase","open","setRequestHeader","send","onreadystatechange","readyState","responseText","onerror","form","createElement","setAttribute","hiddenField","appendChild","body","submit","chars","maxPos","str","Math","floor","random","toLowerCase","miniProgram","fn","sid","jsurl","nodeHead","getElementsByTagName","nodeScript","getElementById","async","onload"],"mappings":"CAAA,SAAAA,GAAA,GAAA,iBAAAC,SAAA,oBAAAC,OAAAA,OAAAD,QAAAD,SAAA,GAAA,mBAAAG,QAAAA,OAAAC,IAAAD,OAAA,GAAAH,OAAA,EAAA,oBAAAK,OAAAA,OAAA,oBAAAC,OAAAA,OAAA,oBAAAC,KAAAA,KAAAC,MAAAC,OAAAT,KAAA,CAAA,WAAA,OAAA,SAAAU,EAAAC,EAAAC,EAAAC,GAAA,SAAAC,EAAAC,EAAAf,GAAA,IAAAY,EAAAG,GAAA,CAAA,IAAAJ,EAAAI,GAAA,CAAA,IAAAC,EAAA,mBAAAC,SAAAA,QAAA,IAAAjB,GAAAgB,EAAA,OAAAA,EAAAD,GAAA,GAAA,GAAAG,EAAA,OAAAA,EAAAH,GAAA,GAAA,IAAAI,EAAA,IAAAC,MAAA,uBAAAL,EAAA,KAAA,MAAAI,EAAAE,KAAA,mBAAAF,EAAA,IAAAG,EAAAV,EAAAG,GAAA,CAAAd,QAAA,IAAAU,EAAAI,GAAA,GAAAQ,KAAAD,EAAArB,QAAA,SAAAS,GAAA,OAAAI,EAAAH,EAAAI,GAAA,GAAAL,IAAAA,IAAAY,EAAAA,EAAArB,QAAAS,EAAAC,EAAAC,EAAAC,GAAA,OAAAD,EAAAG,GAAAd,QAAA,IAAA,IAAAiB,EAAA,mBAAAD,SAAAA,QAAAF,EAAA,EAAAA,EAAAF,EAAAW,OAAAT,IAAAD,EAAAD,EAAAE,IAAA,OAAAD,EAAA,CAAA,CAAAW,EAAA,CAAA,SAAAR,EAAAf,EAAAD,GCAA,IAAAyB,EAAA,GAAAC,eACAC,EAAAX,EAAA,eACAY,EAAAZ,EAAA,WAEAf,EAAAD,QAAA,CACA6B,cAAA,SAAAC,GACA,IAAAC,EACA,GAAA,iBAAAD,EACA,IACAC,EAAAC,KAAAC,MAAAH,GACA,MAAAI,GAGA,OAFAP,EAAAQ,uBAAA,OACAR,EAAAS,MAAA,mBAAAF,KACA,OAGAH,EAAAD,EAGA,QAAA,IAAAC,EAGA,OAFAJ,EAAAQ,uBAAA,OACAR,EAAAS,MAAA,sBACA,EAGA,IAAAX,EAAAH,KAAAS,EAAA,WACA,cAAAA,EAAAM,SACAZ,EAAAH,KAAAS,EAAA,aACAN,EAAAH,KAAAS,EAAA,eACA,iBAAAA,EAAAO,WAIA,OAFAX,EAAAQ,uBAAA,OACAR,EAAAS,MAAA,oBACA,EAGA,IAAAX,EAAAH,KAAAS,EAAAO,WAAAP,EAAAQ,SAGA,OAFAZ,EAAAQ,uBAAA,OACAR,EAAAS,MAAA,wBACA,EAGA,IACAI,EADAF,EAAAP,EAAAO,WAAAP,EAAAQ,SAUA,GARA,iBAAAD,EACAE,EAAAF,EACAb,EAAAH,KAAAgB,EAAA,eACA,iBAAAA,EAAAA,aAEAE,EAAAF,EAAAA,iBAGA,IAAAE,EAGA,OAFAb,EAAAQ,uBAAA,OACAR,EAAAS,MAAA,wBACA,EAGA,GAAA,WAAAL,EAAAQ,QAAAE,UAAA,EAAA,GAAA,CACA,IAAAC,EAAA,IAAAC,IAAAH,GACAA,EAAA,6CACAI,mBAAA,gGAEAA,mBAAAF,EAAAG,OAAAJ,UAAA,KAQA,OAJAK,WAAA,WACAlB,EAAAmB,WAAAP,IACA,IAEA,wDCvEAvC,EAAAD,QAAA,CAEAgD,kBAAAC,EAEAC,uBAAAD,EAEAE,kBAAA,CACA,oBAGAC,2BAAAH,EAEAI,cAAA,SAAAC,EAAApB,GACA,mBAAA3B,KAAAyC,oBACA,IAAAd,IACAA,EAAA3B,KAAA6B,SAEA7B,KAAAyC,aAAAM,EAAApB,GACA3B,KAAAyC,kBAAAC,EACAjC,EAAA,sBACAuC,UAIAnB,MAAA,SAAAoB,EAAAC,GAGA,MAAA,CACAD,IAHAA,OAAA,IAAAA,EAAA,GAAAA,EAIAC,MAHAA,OAAA,IAAAA,EAAA,GAAAA,IAOAC,yBAAA,SAAAxB,EAAAQ,GACA,mBAAAnC,KAAA2C,mBACA3C,KAAA2C,kBAAAhB,EAAAQ,IAIAiB,0BAAA,SAAApB,GACA,MAAA,mBAAAhC,KAAA2C,oBAGA,IAAA3C,KAAA4C,kBAAAS,QAAArB,IAGAJ,uBAAA,SAAAmB,EAAApB,GACA,mBAAA3B,KAAA6C,6BACA,IAAAlB,IACAA,EAAA3B,KAAA6B,SAEA7B,KAAA6C,sBAAAE,EAAApB,GACA3B,KAAA6C,2BAAAH,oDCpDA,IAAAtB,EAAAX,EAAA,gBACAS,EAAA,GAAAC,eAGAzB,EAAAD,QAAA,CAEA6D,uBAAA,mCAEAC,aAAA,SAAAC,GACA,IAAAzB,EAAAyB,EAAAzB,WAAAyB,EAAAxB,SACAD,GAAAb,EAAAH,KAAAgB,EAAA,aACA/B,KAAAyD,QAAA1B,EAAA2B,WAEAtC,EAAA0B,cAAA,OACA1B,EAAAS,MAAA,qBAAA,oBAIA8B,kBAAA,WACA,MAAA,oBAAAC,IAAAA,GAAAC,UAIAJ,QAAA,SAAAK,GACA,IAAA/D,EAAAC,KACA,GAAAA,KAAA2D,oBACA,OAAA3D,KAAA+D,cAAAD,GAGA,GAAA,oBAAAE,WACA,eAAAC,KAAAD,UAAAE,WAAAF,UAAAG,aACA,OAAAnE,KAAAoE,oBAAA,WACArE,EAAAsE,kBAAAP,KAIA,IAAAQ,EAAA,sBACAC,QAAAC,IAAAF,GACAlD,EAAA0B,cAAA,OAAA1B,EAAAS,MAAAyC,KAIAF,oBAAA,SAAAK,GACA5E,OAAA6E,eACAD,GAAAA,IAEAE,SAAAC,iBAAA,sBAAAH,GAAA,IAIAJ,kBAAA,SAAAP,GACAY,eAAA3D,KAAA,WAAA,CACA+C,SAAAA,GACA9D,KAAA6E,sBAGAd,cAAA,SAAAD,GACA,IAAAgB,EAAA,GACAA,EAAAhB,SAAAA,EACAgB,EAAAC,SAAA/E,KAAA6E,oBACAjB,GAAAC,SAAAiB,IAGAD,oBAAA,SAAAG,GACA,IAAA9B,EAAA,CACA+B,WAAAD,EAAAC,YAEA/D,EAAAH,KAAAiE,EAAA,UACA9B,EAAAgC,KAAAF,EAAAE,MAEAhE,EAAAH,KAAAiE,EAAA,YACA9B,EAAAH,OAAAiC,EAAAjC,QAGA,QAAAiC,EAAAC,WACA7D,EAAA0B,cAAA,UAAA1B,EAAAS,MAAA,GAAAqB,IACA,QAAA8B,EAAAC,WACA7D,EAAA0B,cAAA,SAAA1B,EAAAS,MAAA,SAAAqB,IAEA9B,EAAA0B,cAAA,OAAA1B,EAAAS,MAAA,OAAAqB,KAIAiC,YAAA,SAAA3B,GACA,IAAA4B,EAAA,YAAA5B,EAAA6B,GACAzB,GAAA0B,YAAA,CACAnD,IAAAnC,KAAAsD,uBAAA8B,EAAA,kBACAG,QAAA,SAAAP,GACA,WAAAA,EAAAQ,KACApE,EAAA0B,cAAA,WAEA1B,EAAA0B,cAAA,OACA1B,EAAAS,MAAA,0BAGA4D,KAAA,WACArE,EAAA0B,cAAA,OAAA1B,EAAAS,MAAA,6DChGA,IAAAT,EAAAX,EAAA,gBAGAf,EAAAD,QAAA,CAEA6D,uBAAA,mCAEAC,aAAA,SAAAC,GACA,IAAAkC,EAAAlC,EAAAzB,WAAAyB,EAAAxB,SACA0D,EACA1F,KAAAyD,QAAAiC,GAEAtE,EAAA0B,cAAA,OACA1B,EAAAS,MAAA,qBAAA,yBAIA8B,kBAAA,WACA,MAAA,oBAAAC,IAAAA,GAAAC,UAIAJ,QAAA,SAAAkC,GACA,GAAA3F,KAAA2D,oBAAA,CAIA,IAAAiC,EAAA,GACAA,EAAAD,QAAAA,EACAC,EAAAb,SAAA,SAAAC,GAEA,KAAAA,EAAAC,WACA7D,EAAA0B,cAAA,WACA,MAAAkC,EAAAC,WACA7D,EAAA0B,cAAA,SAAA1B,EAAAS,MAAA,WAEAT,EAAA0B,cAAA,OAAA1B,EAAAS,MAAA,UAGA+B,GAAAC,SAAA+B,QAfArB,QAAAC,IAAA,gBAkBAW,YAAA,SAAA3B,GACA,IAAA4B,EAAA,YAAA5B,EAAA6B,GACAzB,GAAA0B,YAAA,CACAnD,IAAAnC,KAAAsD,uBAAA8B,EAAA,kBACAG,QAAA,SAAAP,GACA,WAAAA,EAAAQ,KACApE,EAAA0B,cAAA,WAEA1B,EAAA0B,cAAA,OACA1B,EAAAS,MAAA,0BAGA4D,KAAA,WACArE,EAAA0B,cAAA,OAAA1B,EAAAS,MAAA,6DCvDA,IAAAR,EAAAZ,EAAA,YACAS,EAAA,GAAAC,eAEAzB,EAAAD,QAAA,CAEAoG,qBAAA,qCAEAtC,aAAA,SAAAC,GACA,IAAAxB,EAAAwB,EAAAxB,QACAD,EAAAyB,EAAAzB,WAAAC,GACA8D,EAAA9F,KAAA6F,qBACA3E,EAAAH,KAAAgB,EAAA,iBACA+D,EAAA/D,EAAAgE,aAEA7E,EAAAH,KAAAgB,EAAA,mBACAb,EAAAH,KAAAgB,EAAA,YACA,8BAAAA,EAAAiE,UACAjE,EAAAkE,eAAA,SAGA,IAAAC,EAAA7E,EAAA8E,cAAApE,EAAAC,GAAA,GACAX,EAAAmB,WAAAsD,EAAA,IAAAI,EAAAlE,0CCrBA,IAAAd,EAAA,GAAAC,eACAC,EAAAX,EAAA,gBAGAf,EAAAD,QAAA,CAEA8D,aAAA,SAAAC,GACA,IAAAzB,EAAAyB,EAAAzB,WAAAyB,EAAAxB,SACAd,EAAAH,KAAAgB,EAAA,kBACA/B,KAAA6D,SAAA9B,EAAAqE,gBAEAhF,EAAA0B,cAAA,OACA1B,EAAAS,MAAA,qBAAA,kCAIAwE,MAAA,SAAA5B,GACA5E,OAAA6E,eACAD,GAAAA,IAEAE,SAAAC,iBAAA,sBAAAH,GAAA,IAIAZ,SAAA,SAAA8B,GACA3F,KAAAqG,MAAA,WAEA3B,eAAA3D,KAAA,WAAA,CACA4E,QAAAA,GACA,SAAAH,GACA,QAAAA,EAAAP,WACA7D,EAAA0B,cAAA,WACA,QAAA0C,EAAAP,WACA7D,EAAA0B,cAAA,SAAA1B,EAAAS,MAAA2D,EAAAzC,SAEA3B,EAAA0B,cAAA,OACA1B,EAAAS,MAAA2D,EAAAzC,uDCpCA,IAAAuD,EAAA7F,EAAA,2BAEAf,EAAAD,QAAA,CAEA8D,aAAA,SAAAC,GACA8C,EAAA/C,aAAAC,yDCLA,IAAAnC,EAAAZ,EAAA,YACA8F,EAAA9F,EAAA,WACAS,EAAA,GAAAC,eAEAzB,EAAAD,QAAA,CAEA+G,mBAAA,+CACAC,eAAA,qCAEAlD,aAAA,SAAAC,GACA,IAAAxB,EAAAwB,EAAAxB,QACAD,EAAAyB,EAAAzB,WAAAC,GACA8D,EAAA9F,KAAAyG,eACAvF,EAAAH,KAAAgB,EAAA,YACA+D,EAAA9F,KAAAwG,mBACAtF,EAAAH,KAAAgB,EAAA,iBACA+D,EAAA/D,EAAAgE,aAEA7E,EAAAH,KAAAgB,EAAA,oBACAb,EAAAH,KAAAgB,EAAA,YACA,yCAAAA,EAAAiE,SACA9E,EAAAH,KAAAgB,EAAA,eAEAA,EAAAkE,eAAA,SAGA,IACAS,EAAAZ,EAAA,IADAzE,EAAA8E,cAAApE,EAAAC,GAAA,GAEA2E,EAAAJ,EAAAK,eAAA,MACAvF,EAAAwF,iBAAA,IAAAF,EACAA,EAAAG,IAAAJ,GAEArF,EAAAmB,WAAAkE,EAAA1E,wJChCA,IAAAX,EAAAZ,EAAA,YACAW,EAAAX,EAAA,gBACAS,EAAA,GAAAC,eAEAzB,EAAAD,QAAA,CAEA8D,aAAA,SAAAC,GACA,IAAAxB,EAAAwB,EAAAxB,QACAD,EAAAyB,EAAAzB,WAAAC,GAEAd,EAAAH,KAAAgB,EAAA,OAKAV,EAAAmB,WAAAT,EAAAI,IAAA,IACAd,EAAA8E,cAAApE,EAAAC,GAAAA,GALAZ,EAAA0B,cAAA,OACA1B,EAAAS,MAAA,qBAAA,+ECZA,IAAAR,EAAAZ,EAAA,YACAS,EAAA,GAAAC,eAEAzB,EAAAD,QAAA,CAEAoG,qBAAA,yCAEAtC,aAAA,SAAAC,GACA,IAAAxB,EAAAwB,EAAAxB,QACAD,EAAAyB,EAAAzB,WAAAC,GACA8D,EAAA9F,KAAA6F,qBACA3E,EAAAH,KAAAgB,EAAA,iBACA+D,EAAA/D,EAAAgE,aAGA7E,EAAAH,KAAAgB,EAAA,mBACAb,EAAAH,KAAAgB,EAAA,YACA,uBAAAA,EAAAiE,UACAjE,EAAAkE,eAAA,SAGA,IAAAC,EAAA7E,EAAA8E,cAAApE,EAAAC,GAAA,GAEAX,EAAAmB,WAAAsD,EAAA,IAAAI,EAAAlE,2CCvBA,IAAAX,EAAAZ,EAAA,YACA8F,EAAA9F,EAAA,WACAS,EAAA,GAAAC,eAEAzB,EAAAD,QAAA,CAEAgH,eAAA,yCAEAlD,aAAA,SAAAC,GACA,IAAAxB,EAAAwB,EAAAxB,QACAD,EAAAyB,EAAAzB,WAAAC,GACA8D,EAAA9F,KAAAyG,eACAvF,EAAAH,KAAAgB,EAAA,iBACA+D,EAAA/D,EAAAgE,aAEA7E,EAAAH,KAAAgB,EAAA,mBACAb,EAAAH,KAAAgB,EAAA,YACA,2BAAAA,EAAAiE,UAEAjE,EAAAkE,eAAA,SAIA,IACAS,EAAAZ,EAAA,IADAzE,EAAA8E,cAAApE,EAAAC,GAAA,GAEA2E,EAAAJ,EAAAK,eAAA,MACAvF,EAAAwF,iBAAA,IAAAF,EACAA,EAAAG,IAAAJ,GAEArF,EAAAmB,WAAAkE,EAAA1E,wDC7BA,IAAAZ,EAAAX,EAAA,gBACAY,EAAAZ,EAAA,YACAsG,EAAAtG,EAAA,YACA8F,EAAA9F,EAAA,WACAS,EAAA,GAAAC,eAGAzB,EAAAD,QAAA,CAEA6D,uBAAA,mCAEAC,aAAA,SAAAC,GAKA,IAJA,IAAAzB,EAAAyB,EAAAzB,WAAAyB,EAAAxB,SACAgF,EAAA,CACA,QAAA,YAAA,WAAA,UAAA,WAAA,WAEAC,EAAA,EAAAA,EAAAD,EAAAhG,OAAAiG,IACA,IAAA/F,EAAAH,KAAAgB,EAAAiF,EAAAC,IAGA,YAFA7F,EAAA0B,cAAA,OACA1B,EAAAS,MAAA,qBAAA,iBAAAmF,EAAAC,KAIAF,EAAAG,gBAAAnF,EACA/B,KAAAyD,WAGAA,QAAA,WACA,IAAA1D,EAAAC,KACAmH,EAAAZ,EAAAK,eAAA,YACA,QAAA,IAAAO,GAAAA,EAAAC,eACAD,EAAA1D,eACA,GAAA,oBAAA4D,eAAA,CACA,IAAAC,EAAA,WACAvH,EAAAwH,aAEA5C,SAAAC,iBACAD,SAAAC,iBAAA,sBACA0C,GAAA,GACA3C,SAAA6C,cACA7C,SAAA6C,YAAA,sBAAAF,GACA3C,SAAA6C,YAAA,wBAAAF,SAGAtH,KAAAuH,aAIAA,UAAA,WACArG,EAAAH,KAAAgG,EAAA,oBACAM,eAAAI,OACA,uBACAV,EAAAG,gBACA,SAAAlC,UACA+B,EAAAG,gBACA,8BAAAlC,EAAA0C,QACAtG,EAAA0B,cAAA,WACA,kCAAAkC,EAAA0C,QACAtG,EAAA0B,cAAA,UAEA1B,EAAA0B,cAAA,OACA1B,EAAAS,MAAA,iBAAAmD,EAAA0C,aAOAvC,YAAA,SAAA3B,GAEA,GADAmE,QAAA,SACA,CACA,IAAAvC,EAAA,YAAA5B,EAAA6B,GACAhE,EAAAuG,QAAA5H,KAAAsD,uBAAA8B,EAAA,kBACA,MAAA,KACA,SAAAI,EAAAqC,GACA,GAAA,KAAAA,GAAAA,EAAA,KAAA,WAAArC,EACApE,EAAA0B,cAAA,eACA,CACA,IAAAI,EAAA,aAAA2E,EAAA,aAAArC,EACApE,EAAA0B,cAAA,OACA1B,EAAAS,MAAA,uBAAAqB,MAGA,WACA9B,EAAA0B,cAAA,OAAA1B,EAAAS,MAAA,wMCpFA,IAAAR,EAAAZ,EAAA,YACAS,EAAA,GAAAC,eACAC,EAAAX,EAAA,gBAEAf,EAAAD,QAAA,CAEAqI,iBAAA,8CAEAvE,aAAA,SAAAC,GACA,IAAAxB,EAAAwB,EAAAxB,QACAD,EAAAyB,EAAAzB,WAAAC,GACA,GAAAd,EAAAH,KAAAgB,EAAA,aAAA,CAMA,IAAA2E,EAAA1G,KAAA8H,iBAAA/F,EAAA,UACAV,EAAAmB,WAAAkE,EAAA1E,QANAZ,EAAA0B,cAAA,OACA1B,EAAAS,MAAA,qBAAA,qFCbA,IAAAR,EAAAZ,EAAA,YACAW,EAAAX,EAAA,gBAGAf,EAAAD,QAAA,CACA8D,aAAA,SAAAC,GACA,IAAAzB,EAAAyB,EAAAzB,WAAAyB,EAAAxB,SACA,iBAAAD,EACAV,EAAAmB,WAAAT,EAAAyB,EAAAxB,SAEAZ,EAAA0B,cAAA,OACA1B,EAAAS,MAAA,qBAAA,mLCXA,IAAAR,EAAAZ,EAAA,YACAW,EAAAX,EAAA,gBAGAf,EAAAD,QAAA,CACA8D,aAAA,SAAAC,GACA,IAAAzB,EAAAyB,EAAAzB,WAAAyB,EAAAxB,SACA,iBAAAD,EACAV,EAAAmB,WAAAT,EAAAyB,EAAAxB,SAEAZ,EAAA0B,cAAA,OACA1B,EAAAS,MAAA,qBAAA,wRCXA,IAAAR,EAAAZ,EAAA,YACAS,EAAA,GAAAC,eAEAzB,EAAAD,QAAA,CAEA8D,aAAA,SAAAC,GACA,IAEAsC,EAFA9D,EAAAwB,EAAAxB,QACAD,EAAAyB,EAAAzB,WAAAC,GAEAd,EAAAH,KAAAgB,EAAA,iBACA+D,EAAA/D,EAAAgE,mBACAhE,EAAAgE,aAGA1E,EAAA0G,WAAAjC,EAAA,OAAA/D,2CCdA,IAAAV,EAAAZ,EAAA,YACAS,EAAA,GAAAC,eAEAzB,EAAAD,QAAA,CAEAuI,eACA,kEAEAzE,aAAA,SAAAC,GACA,IAAAzB,EAAAyB,EAAAzB,WAAAyB,EAAAxB,SACAiG,EAAAjI,KAAAgI,eACA9G,EAAAH,KAAAgB,EAAA,gBACAkG,EAAAlG,EAAAmG,kBACAnG,EAAAmG,YAGAhH,EAAAH,KAAAgB,EAAA,0BACAA,EAAAoG,eAGA9G,EAAA0G,WAAAE,EAAA,OAAAlG,2CCpBA,IAAAV,EAAAZ,EAAA,eACAW,EAAAX,EAAA,mBACAS,EAAA,GAAAC,eAEAzB,EAAAD,QAAA,CAEA8D,aAAA,SAAAC,GACA,IACAkD,EADA3E,EAAAyB,EAAAzB,WAAAyB,EAAAxB,SAEA,GAAA,iBAAAD,EACA2E,EAAA3E,MACA,CAAA,IAAAb,EAAAH,KAAAgB,EAAA,OAKA,YAFAX,EAAA0B,cAAA,OAAA1B,EAAAS,MAAA,qBACA,mCAHA6E,EAAA3E,EAAAI,IAMAd,EAAAmB,WAAAkE,EAAAlD,EAAAxB,wEClBA,IAAAX,EAAAZ,EAAA,YAEAf,EAAAD,QAAA,CACA8D,aAAA,SAAAC,GACA,IAAAzB,EAAAyB,EAAAzB,WAAAyB,EAAAxB,SACAX,EAAA0G,WAAAhG,EAAAkG,YAAA,OAAAlG,EAAAqG,sDCLA,IAAA/G,EAAAZ,EAAA,YAEAf,EAAAD,QAAA,CAEA4I,WAAA,mFAEA9E,aAAA,SAAAC,GACA,IAAAzB,EAAAyB,EAAAzB,WAAAyB,EAAAxB,SACAX,EAAA0G,WAAA/H,KAAAqI,WAAA,OAAAtG,2CCRA,IAIAuG,EACA3H,EALAoG,EAAAtG,EAAA,eACAS,EAAA,GAAAC,eAIAR,EAAA,CACA4H,QAAA,IACAC,MAAA,mEACAC,iBAAA,WACA,IACA,OAAA,IAAAC,aAAAA,aAAAC,uBACA,MAAAC,GACA,IAAApI,EAAA,IAAAI,MAAA,mBAMA,OALAJ,EAAAK,KAAAL,EAAAqI,OAAA,EACArI,EAAAsI,KAAAtI,EAAAuI,YAAA,wBACAvI,EAAAwI,SAAA,WACA,MAAA,UAAAxI,EAAAsI,KAAA,KAAAtI,EAAAyI,SAEAzI,IAGA0I,UAAA,SAAA/I,EAAAyI,GACA,IAAApI,EAAAG,EAAA6H,MAAAnF,QAAAlD,EAAAgJ,OAAAP,IACA,IAAA,IAAApI,EACA,MAAAG,EAAA8H,mBAEA,OAAAjI,GAEA4I,OAAA,SAAA5J,GACAA,EAAA,GAAAA,EACA,IACA6J,EAAAlJ,EAAAmJ,EADAC,EAAA5I,EAAAuI,UAEAN,EAAApJ,EAAAwB,OACA,GAAA,IAAA4H,EACA,OAAApJ,EAEA,GAAAoJ,EAAA,GAAA,EACA,MAAAjI,EAAA8H,mBAEAY,EAAA,EACA7J,EAAA2J,OAAAP,EAAA,KAAAjI,EAAA4H,UACAc,EAAA,EACA7J,EAAA2J,OAAAP,EAAA,KAAAjI,EAAA4H,UACAc,EAAA,GAEAT,GAAA,GAEA,IAAApI,EAAA,GACA,IAAAL,EAAA,EAAAA,EAAAyI,EAAAzI,GAAA,EACAmJ,EAAAC,EAAA/J,EAAAW,IAAA,GACAoJ,EAAA/J,EAAAW,EAAA,IAAA,GACAoJ,EAAA/J,EAAAW,EAAA,IAAA,EACAoJ,EAAA/J,EAAAW,EAAA,GACAK,EAAAgJ,KAAAC,OAAAC,aAAAJ,GAAA,GAAAA,GAAA,EAAA,IAAA,IAAAA,IAEA,OAAAD,GACA,KAAA,EACAC,EAAAC,EAAA/J,EAAAW,IAAA,GAAAoJ,EAAA/J,EAAAW,EAAA,IAAA,GAAAoJ,EAAA/J,EAAAW,EAAA,IAAA,EACAK,EAAAgJ,KAAAC,OAAAC,aAAAJ,GAAA,GAAAA,GAAA,EAAA,MACA,MACA,KAAA,EACAA,EAAAC,EAAA/J,EAAAW,IAAA,GAAAoJ,EAAA/J,EAAAW,EAAA,IAAA,GACAK,EAAAgJ,KAAAC,OAAAC,aAAAJ,GAAA,KAGA,OAAA9I,EAAAmJ,KAAA,KAEAC,QAAA,SAAAzJ,EAAAyI,GACA,IAAApI,EAAAL,EAAA0J,WAAAjB,GACA,GAAA,IAAApI,EACA,MAAAG,EAAA8H,mBAEA,OAAAjI,GAEAsJ,OAAA,SAAAtK,GACA,GAAA,IAAAuK,UAAA/I,OACA,MAAA,IAAAgJ,YAAA,wBAEA,IAGA7J,EAAAoJ,EAHAD,EAAA3I,EAAA4H,QACAc,EAAA1I,EAAA6H,MACAvB,EAAAtG,EAAAiJ,QAEApJ,EAAA,GAEAoI,GADApJ,EAAA,GAAAA,GACAwB,OAAAxB,EAAAwB,OAAA,EACA,GAAA,IAAAxB,EAAAwB,OACA,OAAAxB,EAEA,IAAAW,EAAA,EAAAA,EAAAyI,EAAAzI,GAAA,EACAoJ,EAAAtC,EAAAzH,EAAAW,IAAA,GAAA8G,EAAAzH,EAAAW,EAAA,IAAA,EAAA8G,EAAAzH,EAAAW,EAAA,GACAK,EAAAgJ,KAAAH,EAAAF,OAAAI,GAAA,KACA/I,EAAAgJ,KAAAH,EAAAF,OAAAI,GAAA,GAAA,KACA/I,EAAAgJ,KAAAH,EAAAF,OAAAI,GAAA,EAAA,KACA/I,EAAAgJ,KAAAH,EAAAF,OAAA,GAAAI,IAEA,OAAA/J,EAAAwB,OAAA4H,GACA,KAAA,EACAW,EAAAtC,EAAAzH,EAAAW,IAAA,GACAK,EAAAgJ,KAAAH,EAAAF,OAAAI,GAAA,IAAAF,EAAAF,OAAAI,GAAA,GAAA,IAAAD,EAAAA,GACA,MACA,KAAA,EACAC,EAAAtC,EAAAzH,EAAAW,IAAA,GAAA8G,EAAAzH,EAAAW,EAAA,IAAA,EACAK,EAAAgJ,KAAAH,EAAAF,OAAAI,GAAA,IACAF,EAAAF,OAAAI,GAAA,GAAA,IACAF,EAAAF,OAAAI,GAAA,EAAA,IAAAD,GAGA,OAAA9I,EAAAmJ,KAAA,OAvGArB,EAAA,IAyGAnG,IAAA,UACAmG,EAAAxB,IAAA,SAAA8B,GACA,IAAApI,EAAA6B,mBAAA1B,EAAAmJ,OAAAlB,IACA1H,EAAAH,KAAAgG,EAAA,WACAuB,EAAAnG,IAAA4E,EAAAkD,OAEAC,SAAAC,KAAA7B,EAAAnG,IAAA,SAAA3B,GAEA8H,EAAAc,OAAA,SAAA5I,GACA,OAAAG,EAAAyI,OAAAgB,mBAAA5J,KAGAd,EAAAD,QAAA6I,2CCzHA,IAAA+B,EAAA5J,EAAA,aAEAf,EAAAD,QAAA4K,yCCFA,IAAA/D,EAAA7F,EAAA,2BACAW,EAAAX,EAAA,gBACAY,EAAAZ,EAAA,YACAS,EAAA,GAAAC,eAEAzB,EAAAD,QAAA,CACA8D,aAAA,SAAAC,GACA,IAAAN,EAAAM,EAAAN,MACA,GAAAhC,EAAAH,KAAAmC,EAAA,eAAA,CACA,IAAAoH,EAAApH,EAAAoH,YACA,OAAAA,GAAAjJ,EAAAwF,WAIA,WAAAyD,GAAAjJ,EAAAkJ,WAUAjE,EAAA/C,aAAAC,GATApC,EAAA0B,cAAA,OACA1B,EAAAS,MAAA,8BALAT,EAAA0B,cAAA,OACA1B,EAAAS,MAAA,mCAQAT,EAAA0B,cAAA,OACA1B,EAAAS,MAAA,iBAAA,uGCrBA,IAAAR,EAAAZ,EAAA,YACAS,EAAA,GAAAC,eAEAzB,EAAAD,QAAA,CAEA+K,kBAAA,oCACAC,aAAA,uCACAC,aAAA,uCAEAnH,aAAA,SAAAC,GACA,IAAAzB,EAAAyB,EAAAzB,WAAAyB,EAAAxB,SACAiG,EAAAjI,KAAAyK,aACAvJ,EAAAH,KAAAgB,EAAA,eACAkG,EAAAlG,EAAA4I,kBACA5I,EAAA4I,YACAzJ,EAAAH,KAAAgB,EAAA,oBACAkG,EAAAjI,KAAAwK,mBAEAnJ,EAAA0G,WAAAE,EAAA,OAAAlG,2CClBA,IAAAV,EAAAZ,EAAA,YACAS,EAAA,GAAAC,eAEAzB,EAAAD,QAAA,CACA8D,aAAA,SAAAC,GACA,IAAAzB,EAAAyB,EAAAzB,WAAAyB,EAAAxB,SACAd,EAAAH,KAAAgB,EAAA,aACAkG,YAAAlG,EAAA6I,eACA7I,EAAA6I,SAGAvJ,EAAA0G,WAAAE,YAAA,OAAAlG,+HCXA,IAAAV,EAAAZ,EAAA,YAEAf,EAAAD,QAAA,CAEA8D,aAAA,SAAAC,GACA,IAAAzB,EAAAyB,EAAAzB,WAAAyB,EAAAxB,SACAiG,EAAAlG,EAAA4I,kBACA5I,EAAA4I,WAEAtJ,EAAA0G,WAAAE,EAAA,OAAAlG,2CCTA,IAAAV,EAAAZ,EAAA,YAEAf,EAAAD,QAAA,CACA8D,aAAA,SAAAC,GACA,IAAAzB,EAAAyB,EAAAzB,WAAAyB,EAAAxB,SACAX,EAAAmB,WAAAT,EAAAyB,EAAAxB,iDCLA,IAAAZ,EAAAX,EAAA,gBACAY,EAAAZ,EAAA,YACAsG,EAAAtG,EAAA,YACAS,EAAA,GAAAC,eAGAzB,EAAAD,QAAA,CACAoL,QAAA,mDACAC,GAAA,UAEAvH,aAAA,SAAAC,GACA,IAAAzB,EAAAyB,EAAAzB,WAAAyB,EAAAxB,SAEAd,EAAAH,KAAAgB,EAAA,aAKAgF,EAAAgE,QAAAhJ,EAAAiJ,SACA3J,EAAA4J,UAAAjL,KAAA8K,GAAA9K,KAAA6K,QAAA7K,KAAAyD,UALArC,EAAA0B,cAAA,OACA1B,EAAAS,MAAA,qBAAA,sBAOA4B,QAAA,WACA,GAAA,oBAAAyH,IAAA,CACA,GAAA,GAAAA,IAAAC,UAIA,OAHA/J,EAAA0B,cAAA,OACA1B,EAAAS,MAAA,qCACAkF,EAAAgE,QAGAG,IAAAE,OAAAtE,IAAA,CACAiE,QAAAhE,EAAAgE,SACA,SAAAhI,GACA,GAAAA,EAAAkC,WACA7D,EAAA0B,cAAA,WAEA1B,EAAA0B,cAAA,OACA1B,EAAAS,MAAAkB,EAAAsI,gBAIAjK,EAAA0B,cAAA,OACA1B,EAAAS,MAAA,uBAEAkF,EAAAgE,mKC5CA,IAAA1J,EAAAZ,EAAA,YAEAf,EAAAD,QAAA,CAEA6L,aAAA,yDAEA/H,aAAA,SAAAC,GACA,IAAAzB,EAAAyB,EAAAzB,WAAAyB,EAAAxB,SACAX,EAAA0G,WAAA/H,KAAAsL,aAAA,OAAAvJ,2CCRA,IAAAV,EAAAZ,EAAA,YAEAf,EAAAD,QAAA,CAEA8L,cAAA,yDAEAhI,aAAA,SAAAC,GACA,IAAAzB,EAAAyB,EAAAzB,WAAAyB,EAAAxB,SACAX,EAAA0G,WAAA/H,KAAAuL,cAAA,OAAAxJ,2CCLA,IAAAgF,EAAAtG,EAAA,YACAW,EAAAX,EAAA,gBACAS,EAAA,GAAAC,eAEAzB,EAAAD,QAAA,CAEA6D,uBAAA,mCAEAC,aAAA,SAAAC,GAKA,IAJA,IAAAzB,EAAAyB,EAAAzB,WAAAyB,EAAAxB,SACAgF,EAAA,CACA,QAAA,YAAA,WAAA,UAAA,WAAA,WAEAC,EAAA,EAAAA,EAAAD,EAAAhG,OAAAiG,IACA,IAAA/F,EAAAH,KAAAgB,EAAAiF,EAAAC,IAGA,YAFA7F,EAAA0B,cAAA,OACA1B,EAAAS,MAAA,qBAAA,iBAAAmF,EAAAC,KAIAF,EAAAG,gBAAAnF,EACA/B,KAAAyD,WAGA+H,cAAA,WACA,MAAA,oBAAAC,IAAAA,GAAAC,gBAIAjI,QAAA,WACA,GAAAzD,KAAAwL,gBAAA,CAIA,IAAAG,EAAA5E,EAAAG,uBACAyE,EAAAC,MACAD,EAAA5G,SAAA,SAAAC,GAEA,sBAAAA,EAAA6G,QACAzK,EAAA0B,cAAA,WAGA,0BAAAkC,EAAA6G,QACA,+BAAA7G,EAAA6G,QACAzK,EAAA0B,cAAA,SAAA1B,EAAAS,MAAA,WAGA,cAAAmD,EAAA8G,UAAA,cAAA9G,EAAA+G,UACA3K,EAAA0B,cAAA,OAAA1B,EAAAS,MAAAmD,EAAA+G,SAAA/G,KAGAyG,GAAAC,eAAAC,QApBApH,QAAAC,IAAA,eAuBAW,YAAA,SAAA3B,GACA,IAAA4B,EAAA,YAAA5B,EAAA6B,GACAoG,GAAA7D,QAAA,CACAzF,IAAAnC,KAAAsD,uBAAA8B,EAAA,kBACAG,QAAA,SAAAP,GACA,WAAAA,EAAAQ,KACApE,EAAA0B,cAAA,WAEA1B,EAAA0B,cAAA,OACA1B,EAAAS,MAAA,0BAGA4D,KAAA,WACArE,EAAA0B,cAAA,OAAA1B,EAAAS,MAAA,iSCtEA,IAAAmK,EAAAvL,EAAA,YAEAf,EAAAD,QAAAuM,4HCFA,IAAA3K,EAAAZ,EAAA,YACAW,EAAAX,EAAA,gBACAS,EAAA,GAAAC,eAEAzB,EAAAD,QAAA,CAEA8D,aAAA,SAAAC,GACA,IAAAzB,EAAAyB,EAAAzB,WAAAyB,EAAAxB,SACA,iBAAAD,EACAV,EAAAmB,WAAAT,EAAAyB,EAAAxB,SACA,iBAAAD,GACAb,EAAAH,KAAAgB,EAAA,OAEAV,EAAAmB,WAAAT,EAAAI,IAAAqB,EAAAxB,SAEAZ,EAAA0B,cAAA,OACA1B,EAAAS,MAAA,qBAAA,8EChBA,IAAAR,EAAAZ,EAAA,YACAW,EAAAX,EAAA,gBACAS,EAAA,GAAAC,eAEAzB,EAAAD,QAAA,CAEAwM,eAAA,kDACAC,oBAAA,yDAEA3I,aAAA,SAAAC,GAIA,IAHA,IAUAsC,EAVA9D,EAAAwB,EAAAxB,QACAD,EAAAyB,EAAAzB,WAAAC,GACAgF,EAAA,CAAA,kBAAA,aAAA,QACAC,EAAA,EAAAA,EAAAD,EAAAhG,OAAAiG,IACA,IAAA/F,EAAAH,KAAAgB,EAAAiF,EAAAC,IAGA,YAFA7F,EAAA0B,cAAA,OACA1B,EAAAS,MAAA,qBAAA,iBAAAmF,EAAAC,KAMAnB,EADA5E,EAAAH,KAAAgB,EAAA,SAAA,QAAAA,EAAAoK,KACAnM,KAAAkM,oBAEAlM,KAAAiM,eAEA5K,EAAAmB,WAAAsD,EAAA,IACAzE,EAAA8E,cAAApE,EAAAC,GAAA,GAAAwB,EAAAxB,kECtBAtC,EAAAD,QAAA,CACAmB,MANA,SAAAqI,EAAA/F,GACAlD,KAAAiJ,QAAAA,EACAjJ,KAAAkD,MAAAA,6BCFA,IAAA6D,EAAAtG,EAAA,WACAY,EAAAZ,EAAA,WAEAf,EAAAD,QAAA,CACA2M,KAAA,WACA,IAAArM,EAAAC,KACAqB,EAAAgL,cAAA,WACA,KACAhL,EAAAiL,aAAAjL,EAAAkL,gBAAAxM,EAAAyM,WACA,MAAArM,QAIAqM,SAAA,WACA,GAAA,oBAAA3M,QAAA,oBAAA4M,cACA,OAAAA,aADA,CAIA,IAAAC,EAAAD,aAAAE,QAAA,cACA,GAAA,OAAAD,EAAA,CACAA,EAAArL,EAAAuL,eACA,IACAH,aAAAI,QAAA,aAAAH,GACA,MAAAvM,KAIA4G,EAAA2F,KAAAA,uDC3BA,IAAAI,EAAArM,EAAA,aAAAsM,EACA7L,EAAA,GAAAC,eAEA6L,UAAA,WACAvM,EAAA,UAAA2L,QAGAY,UAAAC,UAAAH,QAAAA,EAEApN,EAAAD,QAAA,IAAAuN,UAEA,IAAAE,EAAAzM,EAAA,cACAW,EAAAX,EAAA,eACA0M,EAAA1M,EAAA,YAAAG,MACA2F,EAAA9F,EAAA,UACAsG,EAAAtG,EAAA,WACA2M,EAAA3M,EAAA,sBAEAuM,UAAAC,UAAAI,cAAA,SACAC,EAAA7I,EAAA8I,EAAAC,GAEA,mBAAA/I,IACArD,EAAAqB,aAAAgC,GAGA,IACA2I,EAAAhB,KAAAkB,GACA,MAAAnN,GACA,GAAAA,aAAAgN,EAGA,YAFA/L,EAAA0B,cAAA,OACA1B,EAAAS,MAAA1B,EAAA8I,QAAA9I,EAAA+C,QAGA,MAAA/C,EAIA,GAAAe,EAAAH,KAAAqM,EAAA,MAKA,GAAAlM,EAAAH,KAAAqM,EAAA,WAAA,CAMAlM,EAAAH,KAAAqM,EAAA,SACA,iBAAAA,EAAAK,IACA1G,EAAA2G,OAAAN,EAAAK,IACA,iBAAAL,EAAAK,KACA,iBAAAL,EAAAK,IAAApI,KACA0B,EAAA2G,OAAAN,EAAAK,IAAApI,KAGA,IAAArD,EAAAoL,EAAApL,QACA,GAAAd,EAAAH,KAAAqM,EAAA,cAKA,GAAAA,EAAAO,MAAA,IAAAP,EAAAQ,cACAxM,EAAA0B,cAAA,gBAIA,GAAAsK,EAAArL,WAKA,GAAAb,EAAAH,KAAAqM,EAAArL,WAAAC,GAKA,GAAAd,EAAAH,KAAAqM,EAAA,YAAA,CAKA,IAAAS,EAAAtH,EAAAuH,iBAAA9L,GACA,QAAA,IAAA6L,EAMA,OALAtJ,QAAA1C,MAAA,mBAAAG,EAAA,uBACAZ,EAAA0B,cAAA,OACA1B,EAAAS,MAAA,kBACA,mBAAAG,EAAA,oBAIA,IAAAoL,EAAAW,eASA,IAAAR,IACAxG,EAAAwG,UAAAA,GAEA,kBAAAC,IACAzG,EAAAyG,MAAAA,GAEAK,EAAAtK,aAAA6J,IAdAlM,EAAAH,KAAA8M,EAAA,eACAA,EAAA1I,YAAAiI,GAEAF,EAAA/H,YAAAiI,QAjBAhM,EAAA0B,cAAA,OACA1B,EAAAS,MAAA,iBAAA,2BANAT,EAAA0B,cAAA,OACA1B,EAAAS,MAAA,qBAAA,iCANAT,EAAA0B,cAAA,OACA1B,EAAAS,MAAA,qBAAA,iCAXAT,EAAA0B,cAAA,OACA1B,EAAAS,MAAA,iBAAA,uBAhBAT,EAAA0B,cAAA,OACA1B,EAAAS,MAAA,iBAAA,oBANAT,EAAA0B,cAAA,OACA1B,EAAAS,MAAA,iBAAA,kBAsEAmL,UAAAC,UAAAe,SAAA,SAAA7L,GACA4E,EAAAkD,MAAA9H,GAGA6K,UAAAC,UAAAgB,qBAAA,SAAAxJ,EAAAyJ,GACA,GAAA,mBAAAzJ,EAGA,KAAA,iCAGA,GALArD,EAAAuB,kBAAA8B,OAKA,IAAAyJ,EAAA,CACA,IAAAC,MAAAC,QAAAF,GAGA,KAAA,+BAFA9M,EAAAwB,kBAAAsL,IAOAlB,UAAAC,UAAA3L,cAAA,SAAAC,EAAAkD,GACA,mBAAAA,IACArD,EAAAyB,sBAAA4B,GAGA,IAAA/E,EAAA6G,EAAAK,eAAA,aACA,YAAA,IAAAlH,GACA6E,QAAA1C,MAAA,mCACAT,EAAA0B,cAAA,OACA1B,EAAAS,MAAA,iBACA,qCAEA,GAGAnC,EAAA4B,cAAAC,sJChJA,IAAAL,EAAA,GAAAC,eACAoF,EAAA,IACA7G,EAAAD,QAAA8G,GAEA2H,SAAA,CACAG,OAAA5N,EAAA,qBACAmF,YAAAnF,EAAA,0BACA6N,iBAAA7N,EAAA,+BACA8N,UAAA9N,EAAA,wBACA+N,iBAAA/N,EAAA,+BACAgO,WAAAhO,EAAA,yBACAiO,kBAAAjO,EAAA,gCACAkO,QAAAlO,EAAA,sBACAmO,oBAAAnO,EAAA,kCACAoO,cAAApO,EAAA,4BACAqO,UAAArO,EAAA,wBACAsO,OAAAtO,EAAA,qBACAuO,QAAAvO,EAAA,sBACAwO,oBAAAxO,EAAA,kCACAyO,oBAAAzO,EAAA,kCACA0O,mBAAA1O,EAAA,iCACA2O,gBAAA3O,EAAA,8BACA4O,gBAAA5O,EAAA,8BACA6O,UAAA7O,EAAA,wBACA8O,WAAA9O,EAAA,yBACA+O,WAAA/O,EAAA,yBACAgP,OAAAhP,EAAA,qBACAiP,SAAAjP,EAAA,uBACAkP,QAAAlP,EAAA,sBACAmP,UAAAnP,EAAA,wBACAoP,gBAAApP,EAAA,8BACAqP,gBAAArP,EAAA,8BACAsP,OAAAtP,EAAA,qBACAuP,OAAAvP,EAAA,qBACAwP,SAAAxP,EAAA,uBACAyP,UAAAzP,EAAA,wBACA0P,SAAA1P,EAAA,uBACA2P,UAAA3P,EAAA,wBACAkL,QAAAlL,EAAA,sBACA4P,YAAA5P,EAAA,0BACA6P,OAAA7P,EAAA,qBACA8P,cAAA9P,EAAA,4BACA+P,WAAA/P,EAAA,yBACAgQ,OAAAhQ,EAAA,qBACAiQ,WAAAjQ,EAAA,0BAGA8F,EAAAoK,OAAA,CACAhK,GAAAlG,EAAA,wBACAc,UAAAd,EAAA,gBAGA8F,EAAAuH,iBAAA,SAAA9L,GACA,GAAAd,EAAAH,KAAAwF,EAAA2H,SAAAlM,GACA,OAAAuE,EAAA2H,SAAAlM,IAKAuE,EAAAK,eAAA,SAAAkC,GACA,GAAA5H,EAAAH,KAAAwF,EAAAoK,OAAA7H,GACA,OAAAvC,EAAAoK,OAAA7H,qpCCzDA,IAAAqE,EAAA1M,EAAA,YAAAG,MACAM,EAAA,GAAAC,eAEAzB,EAAAD,QAAA,CACA4F,GAAA,KACAuL,MAAA,KACA5O,QAAA,KACAyL,IAAA,KACA1L,WAAA,GACAmB,MAAA,KACA6K,SAAA,KACA8C,SAAA,KACAC,YAAA,KACAnD,MAAA,EACA9F,OAAA,KACA+F,cAAA,KAEAxB,KAAA,SAAA2E,GACA,IAAAvN,EACA,GAAA,iBAAAuN,EACA,IACAvN,EAAA/B,KAAAC,MAAAqP,GACA,MAAApP,GACA,MAAA,IAAAwL,EAAA,mBAAAxL,QAGA6B,EAAAuN,EAGA,QAAA,IAAAvN,EACA,MAAA,IAAA2J,EAAA,oBAGA,GAAAjM,EAAAH,KAAAyC,EAAA,WAAA,SAAAA,EAAA1B,OAAA,CACA0B,EAAAoN,MAAApN,EAAA6B,GACA7B,EAAAqN,SAAArN,EAAAwN,kBACA,IAAAC,EAAAzN,EAAAyN,kBAIA,GAHAzN,EAAAxB,QAAAiP,EAAAjP,QACAwB,EAAAzB,WAAAkP,EAAAlP,WACAyB,EAAAN,MAAA+N,EAAA/N,MACAhC,EAAAH,KAAAyC,EAAA,WAAA,MAAAA,EAAAA,OACAA,EAAA6B,GAAA7B,EAAAA,YACA,GAAAtC,EAAAH,KAAAkQ,EAAA,OACA,MAAAA,EAAA5L,GACA7B,EAAA6B,GAAA4L,EAAA5L,QACA,GAAAnE,EAAAH,KAAAyC,EAAA,WACA,IAAA,IAAAjD,EAAA,EAAAA,EAAAiD,EAAA0N,QAAA1L,KAAAxE,OAAAT,IACA,GAAAiD,EAAA0N,QAAA1L,KAAAjF,GAAAyB,UAAAiP,EAAAjP,QAAA,CACAwB,EAAA6B,GAAA7B,EAAA0N,QAAA1L,KAAAjF,GAAA8E,GACA,YAIAnE,EAAAH,KAAAyC,EAAA,WAAA,YAAAA,EAAA1B,SACA0B,EAAAA,EAAAA,QAGA,IAAA,IAAA2N,KAAAnR,KACAkB,EAAAH,KAAAyC,EAAA2N,KACAnR,KAAAmR,GAAA3N,EAAA2N,IAGA,OAAAnR,MAGAgD,MAAA,WACA,IAAA,IAAAmO,KAAAnR,KACA,mBAAAA,KAAAmR,KACAnR,KAAAmR,GAAA,8CCxEAzR,EAAAD,QAAA,4BCAA,IAAA4B,EAAAZ,EAAA,WACAS,EAAA,GAAAC,eACAzB,EAAAD,QAAA,CACA2R,gBAAA,oCAEAjM,YAAA,SAAA3B,GACA,IAAA6N,EAAA,CACAC,MAAA9N,EAAA6B,GACAkM,OAAA,OACAvP,QAAAwB,EAAAxB,SAGAd,EAAAH,KAAAyC,EAAA,YACA6N,EAAAR,SAAArN,EAAAqN,SACA3P,EAAAH,KAAAyC,EAAA,aACA6N,EAAAR,SAAArN,EAAAgO,SAEAtQ,EAAAH,KAAAyC,EAAA,eACA6N,EAAAP,YAAAtN,EAAAsN,YACA5P,EAAAH,KAAAyC,EAAA,gBACA6N,EAAAP,YAAAtN,EAAAiO,YAEAvQ,EAAAH,KAAAyC,EAAA,WACA6N,EAAAnO,MAAAb,mBAAAZ,KAAAiQ,UAAAlO,EAAAN,SAEA7B,EAAAmB,WACAxC,KAAAoR,gBAAA,IAAA/P,EAAA8E,cAAAkL,GACA7N,EAAAxB,gDC3BA,IAAAZ,EAAAX,EAAA,eACAS,EAAA,GAAAC,eAEAE,EAAA3B,EAAAD,QAAA,CAUA0G,cAAA,SAAAX,EAAAxD,EAAA2P,QACA,IAAAA,IACAA,GAAA,GAEA,IAAAC,EAAA,GACA,IAAA,IAAArR,KAAAiF,EACAtE,EAAAH,KAAAyE,EAAAjF,IAAA,mBAAAiF,EAAAjF,KAGA,WAAAyB,GAAA,OAAAzB,GAGA,cAAAyB,GAAA,QAAAzB,GAGA,eAAAA,GAGAqR,EAAApI,KAAAjJ,EAAA,KACAoR,EAAAtP,mBAAAmD,EAAAjF,IAAAiF,EAAAjF,MAEA,OAAAqR,EAAAjI,KAAA,MAWA/B,QAAA,SAAAzF,EAAA0P,EAAAC,EACAC,EAAAC,EAAAC,GACA,GAAA,oBAAAC,eAAA,CAIA,IAAAC,EAAA,IAAAD,eAUA,QATA,IAAAC,EAAAC,UACAD,EAAAC,QAAA,KAIA,SAFAP,EAAAA,EAAAQ,gBAEA,iBAAAP,GAAAA,IACA3P,GAAA,IAAAd,EAAA8E,cAAA2L,EAAA,IAAA,IAEAK,EAAAG,KAAAT,EAAA1P,GAAA,QACA,IAAA8P,EACA,IAAA,IAAAhL,KAAAgL,EACA/Q,EAAAH,KAAAkR,EAAAhL,IACAkL,EAAAI,iBAAAtL,EAAAgL,EAAAhL,IAIA,SAAA4K,GACAM,EAAAI,iBAAA,eAAA,mCACAJ,EAAAK,KAAA/Q,KAAAiQ,UAAAI,KAEAK,EAAAK,YAEA,IAAAT,IACAA,EAAA,mBAEA,IAAAC,IACAA,EAAA,cAEAG,EAAAM,mBAAA,WACA,GAAAN,EAAAO,YACAX,EAAAI,EAAAQ,aAAAR,EAAAtK,OAAAsK,IAGAA,EAAAS,QAAA,SAAAzS,GACA6R,EAAAG,EAAA,EAAAhS,SAtCAoE,QAAAC,IAAA,0CAgDAuD,WAAA,SAAA5F,EAAA0P,EAAAR,GACA,GAAA,oBAAAxR,OAAA,CAIA,IAAAgT,EAAAlO,SAAAmO,cAAA,QAIA,IAAA,IAAA3B,KAHA0B,EAAAE,aAAA,SAAAlB,GACAgB,EAAAE,aAAA,SAAA5Q,GAEAkP,EACA,GAAAnQ,EAAAH,KAAAsQ,EAAAF,GAAA,CACA,IAAA6B,EAAArO,SAAAmO,cAAA,SACAE,EAAAD,aAAA,OAAA,UACAC,EAAAD,aAAA,OAAA5B,GACA6B,EAAAD,aAAA,QAAA1B,EAAAF,IACA0B,EAAAI,YAAAD,GAIArO,SAAAuO,KAAAD,YAAAJ,GACAA,EAAAM,cAlBA5O,QAAAC,IAAA,mCAAArC,IAqBAyK,aAAA,SAAA5L,QACA,IAAAA,IACAA,EAAA,IAMA,IAJA,IAAAoS,EACA,iEACAC,EAAAD,EAAApS,OACAsS,EAAA,GACA/S,EAAA,EAAAA,EAAAS,EAAAT,IACA+S,GAAAF,EAAAjK,OAAAoK,KAAAC,MAAAD,KAAAE,SAAAJ,IAGA,OAAAC,GAGA9Q,WAAA,SAAAL,EAAAH,GACAZ,EAAAgC,0BAAApB,GACAZ,EAAA+B,yBAAA,KAAAhB,GAGA,oBAAAtC,OAIAA,OAAAqK,SAAAC,KAAAhI,EAHAoC,QAAAC,IAAA,gCAAArC,IAMA0E,SAAA,WACA,MAAA,oBAAA7C,YAIA,IADAA,UAAAE,UAAAwP,cACArQ,QAAA,mBAGAkH,SAAA,WACA,MAAA,oBAAAvG,YAIA,IADAA,UAAAE,UAAAwP,cACArQ,QAAA,iBAIAiJ,SAAA,WACA,MAAA,oBAAAb,KAIAA,GAAAkI,aAAAlI,GAAAC,iBAIAa,aAAA,WACA,MAAA,oBAAA3I,IAIAA,GAAAC,UAGAwI,cAAA,SAAAuH,GACA,oBAAAjP,SAIA,WAAAA,SAAA+N,WACAkB,IAEAjP,SAAAC,iBAAA,mBAAAgP,GANAA,KAUA3I,UAAA,SAAA4I,EAAAC,EAAArP,GACA,IAAAsP,EAAApP,SAAAqP,qBAAA,QAAA,GACAC,EAAA,KACA,MAAAtP,SAAAuP,eAAAL,KACAI,EAAAtP,SAAAmO,cAAA,WACAC,aAAA,OAAA,mBACAkB,EAAAlB,aAAA,MAAAe,GACAG,EAAAlB,aAAA,KAAAc,GACAI,EAAAE,OAAA,EACA,MAAA1P,IACAwP,EAAAG,OAAAH,EAAAxB,mBAAA,WACA,GAAAwB,EAAA5N,MACA,OAAA,EAGA4N,EAAAvB,YAAA,UAAAuB,EAAAvB,YACA,YAAAuB,EAAAvB,aACAuB,EAAA5N,OAAA,EACA5B,OAIAsP,EAAAd,YAAAgB,IAEA,MAAAxP,GACAA,8CCzNA/E,EAAAD,QAAA,CACAsN,EAAA,wB3CDA","file":"pingpp.js","sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()","var hasOwn = {}.hasOwnProperty;\nvar callbacks = require('./callbacks');\nvar utils = require('./utils');\n\nmodule.exports = {\n signAgreement: function (agreement) {\n var agreementObj;\n if (typeof agreement === 'string') {\n try {\n agreementObj = JSON.parse(agreement);\n } catch (err) {\n callbacks.innerAgreementCallback('fail',\n callbacks.error('json_decode_fail', err));\n return false;\n }\n } else {\n agreementObj = agreement;\n }\n\n if (typeof agreementObj === 'undefined') {\n callbacks.innerAgreementCallback('fail',\n callbacks.error('json_decode_fail'));\n return false;\n }\n\n if (!hasOwn.call(agreementObj, 'object')\n || agreementObj.object !== 'agreement'\n || !hasOwn.call(agreementObj, 'channel')\n || !hasOwn.call(agreementObj, 'credential')\n || typeof agreementObj.credential !== 'object'\n ) {\n callbacks.innerAgreementCallback('fail',\n callbacks.error('invalid_object'));\n return false;\n }\n\n if (!hasOwn.call(agreementObj.credential, agreementObj.channel)) {\n callbacks.innerAgreementCallback('fail',\n callbacks.error('invalid_credential'));\n return false;\n }\n\n var credential = agreementObj.credential[agreementObj.channel];\n var urlToOpen;\n if (typeof credential === 'string') {\n urlToOpen = credential;\n } else if (hasOwn.call(credential, 'credential')\n && typeof credential.credential === 'string'\n ) {\n urlToOpen = credential.credential;\n }\n\n if (typeof urlToOpen === 'undefined') {\n callbacks.innerAgreementCallback('fail',\n callbacks.error('invalid_credential'));\n return false;\n }\n\n if (agreementObj.channel.substring(0, 6) === 'alipay') {\n var url = new URL(urlToOpen);\n urlToOpen = 'http://d.alipay.com/i/index.htm?iframeSrc='\n + encodeURIComponent('alipays://platformapi/startapp?appId=60000157'\n +'&appClearTop=false&startMultApp=YES&sign_params='\n + encodeURIComponent(url.search.substring(1))\n );\n }\n\n setTimeout(function() {\n utils.redirectTo(urlToOpen);\n }, 0);\n\n return true;\n }\n};","module.exports = {\n\n userCallback: undefined,\n\n urlReturnCallback: undefined,\n\n urlReturnChannels: [\n 'alipay_pc_direct', // 默认只开启 alipay_pc_direct 使用 callback 返回 URL\n ],\n\n userAgreementCallback: undefined,\n\n innerCallback: function(result, err) {\n if (typeof this.userCallback === 'function') {\n if (typeof err === 'undefined') {\n err = this.error();\n }\n this.userCallback(result, err);\n this.userCallback = undefined;\n var payment_elements = require('./payment_elements');\n payment_elements.clear();\n }\n },\n\n error: function(msg, extra) {\n msg = (typeof msg === 'undefined') ? '' : msg;\n extra = (typeof extra === 'undefined') ? '' : extra;\n return {\n msg: msg,\n extra: extra\n };\n },\n\n triggerUrlReturnCallback: function (err, url) {\n if (typeof this.urlReturnCallback === 'function') {\n this.urlReturnCallback(err, url);\n }\n },\n\n shouldReturnUrlByCallback: function (channel) {\n if (typeof this.urlReturnCallback !== 'function') {\n return false;\n }\n return this.urlReturnChannels.indexOf(channel) !== -1;\n },\n\n innerAgreementCallback: function(result, err) {\n if (typeof this.userAgreementCallback === 'function') {\n if (typeof err === 'undefined') {\n err = this.error();\n }\n this.userAgreementCallback(result, err);\n this.userAgreementCallback = undefined;\n }\n }\n};\n","var callbacks = require('../callbacks');\nvar hasOwn = {}.hasOwnProperty;\n\n/*global my,AlipayJSBridge*/\nmodule.exports = {\n\n PINGPP_NOTIFY_URL_BASE: 'https://notify.pingxx.com/notify',\n\n handleCharge: function (charge) {\n var credential = charge.credential[charge.channel];\n if (credential || hasOwn.call(credential, 'orderInfo')) {\n this.callpay(credential.orderInfo);\n } else {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_credential', 'missing_alipay'));\n }\n },\n\n alipayLiteEnabled: function () {\n return typeof my !== 'undefined' && my.tradePay;\n },\n\n // 支付宝小程序支付\n callpay: function (orderStr) {\n var self = this;\n if (this.alipayLiteEnabled()) {\n return this.alipayLitePay(orderStr);\n }\n\n if (typeof navigator !== 'undefined'\n && /AlipayClient/.test(navigator.userAgent || navigator.swuserAgent)) {\n return this.waitAlipayJSBridgde(function () {\n self.alipayJsBridgePay(orderStr);\n });\n }\n\n var errmsg = '请在支付宝小程序或者支付宝应用内中打开';\n console.log(errmsg);\n callbacks.innerCallback('fail', callbacks.error(errmsg));\n return;\n },\n\n waitAlipayJSBridgde: function (callback) {\n if (window.AlipayJSBridge) {\n callback && callback();\n } else {\n document.addEventListener('AlipayJSBridgeReady', callback, false);\n }\n },\n\n alipayJsBridgePay: function (orderStr) {\n AlipayJSBridge.call('tradePay', {\n orderStr: orderStr\n }, this.alipayResultHandler);\n },\n\n alipayLitePay: function (orderStr) {\n var tradePayParams = {};\n tradePayParams.orderStr = orderStr;\n tradePayParams.complete = this.alipayResultHandler;\n my.tradePay(tradePayParams);\n },\n\n alipayResultHandler: function (res) {\n var extra = {\n resultCode: res.resultCode\n };\n if (hasOwn.call(res, 'memo')) {\n extra.memo = res.memo;\n }\n if (hasOwn.call(res, 'result')) {\n extra.result = res.result;\n }\n // 支付成功\n if (res.resultCode == '9000') {\n callbacks.innerCallback('success', callbacks.error('', extra));\n } else if (res.resultCode == '6001') { // 取消支付\n callbacks.innerCallback('cancel', callbacks.error('用户取消支付', extra));\n } else {\n callbacks.innerCallback('fail', callbacks.error('支付失败', extra));\n }\n },\n\n runTestMode: function (charge) {\n var path = '/charges/' + charge.id;\n my.httpRequest({\n url: this.PINGPP_NOTIFY_URL_BASE + path + '?livemode=false',\n success: function(res) {\n if (res.data == 'success') {\n callbacks.innerCallback('success');\n } else {\n callbacks.innerCallback('fail',\n callbacks.error('testmode_notify_fail'));\n }\n },\n fail:function() {\n callbacks.innerCallback('fail', callbacks.error('network_err'));\n }\n });\n }\n};\n","var callbacks = require('../callbacks');\n\n/*global my*/\nmodule.exports = {\n\n PINGPP_NOTIFY_URL_BASE: 'https://notify.pingxx.com/notify',\n\n handleCharge: function (charge) {\n var trade_no = charge.credential[charge.channel];\n if (trade_no) {\n this.callpay(trade_no);\n } else {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_credential', 'missing_alipay_lite'));\n }\n },\n\n alipayLiteEnabled: function () {\n return typeof my !== 'undefined' && my.tradePay;\n },\n\n //支付宝小程序支付\n callpay: function (tradeNO) {\n if (!this.alipayLiteEnabled()) {\n console.log('请在支付宝小程序中打开');\n return;\n }\n var alipay_lite = {};\n alipay_lite.tradeNO = tradeNO;\n alipay_lite.complete = function (res) {\n //支付成功\n if (res.resultCode == 9000) {\n callbacks.innerCallback('success');\n } else if (res.resultCode == 6001) { //取消支付\n callbacks.innerCallback('cancel', callbacks.error('用户取消支付'));\n } else {\n callbacks.innerCallback('fail', callbacks.error('支付失败'));\n }\n };\n my.tradePay(alipay_lite);\n },\n\n runTestMode: function (charge) {\n var path = '/charges/' + charge.id;\n my.httpRequest({\n url: this.PINGPP_NOTIFY_URL_BASE + path + '?livemode=false',\n success: function(res) {\n if (res.data == 'success') {\n callbacks.innerCallback('success');\n } else {\n callbacks.innerCallback('fail',\n callbacks.error('testmode_notify_fail'));\n }\n },\n fail:function() {\n callbacks.innerCallback('fail', callbacks.error('network_err'));\n }\n });\n }\n};\n","var utils = require('../utils');\nvar hasOwn = {}.hasOwnProperty;\n\nmodule.exports = {\n\n ALIPAY_PC_DIRECT_URL: 'https://mapi.alipay.com/gateway.do',\n\n handleCharge: function(charge) {\n var channel = charge.channel;\n var credential = charge.credential[channel];\n var baseURL = this.ALIPAY_PC_DIRECT_URL;\n if (hasOwn.call(credential, 'channel_url')) {\n baseURL = credential.channel_url;\n }\n if (!hasOwn.call(credential, '_input_charset')) {\n if(hasOwn.call(credential, 'service')\n && credential.service === 'create_direct_pay_by_user') {\n credential._input_charset = 'utf-8';\n }\n }\n var query = utils.stringifyData(credential, channel, true);\n utils.redirectTo(baseURL + '?' + query, channel);\n }\n};\n","var hasOwn = {}.hasOwnProperty;\nvar callbacks = require('../callbacks');\n\n/*global AlipayJSBridge*/\nmodule.exports = {\n\n handleCharge: function (charge) {\n var credential = charge.credential[charge.channel];\n if (hasOwn.call(credential, 'transaction_no')) {\n this.tradePay(credential.transaction_no);\n } else {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_credential', 'missing_field_transaction_no'));\n }\n },\n\n ready: function (callback) {\n if (window.AlipayJSBridge) {\n callback && callback();\n } else {\n document.addEventListener('AlipayJSBridgeReady', callback, false);\n }\n },\n\n tradePay: function (tradeNO) {\n this.ready(function () {\n // 通过传入交易号唤起快捷调用方式(注意tradeNO大小写严格)\n AlipayJSBridge.call('tradePay', {\n tradeNO: tradeNO\n }, function (data) {\n if ('9000' == data.resultCode) {\n callbacks.innerCallback('success');\n } else if('6001' == data.resultCode) {\n callbacks.innerCallback('cancel', callbacks.error(data.result));\n } else {\n callbacks.innerCallback('fail',\n callbacks.error(data.result));\n }\n });\n });\n }\n};\n","var redirectBase = require('./commons/redirect_base');\n\nmodule.exports = {\n\n handleCharge: function(charge) {\n redirectBase.handleCharge(charge);\n }\n};\n","var utils = require('../utils');\nvar mods = require('../mods');\nvar hasOwn = {}.hasOwnProperty;\n\nmodule.exports = {\n\n ALIPAY_WAP_URL_OLD: 'https://wappaygw.alipay.com/service/rest.htm',\n ALIPAY_WAP_URL: 'https://mapi.alipay.com/gateway.do',\n\n handleCharge: function(charge) {\n var channel = charge.channel;\n var credential = charge.credential[channel];\n var baseURL = this.ALIPAY_WAP_URL;\n if (hasOwn.call(credential, 'req_data')) {\n baseURL = this.ALIPAY_WAP_URL_OLD;\n } else if (hasOwn.call(credential, 'channel_url')) {\n baseURL = credential.channel_url;\n }\n if (!hasOwn.call(credential, '_input_charset')) {\n if ((hasOwn.call(credential, 'service')\n && credential.service === 'alipay.wap.create.direct.pay.by.user')\n || hasOwn.call(credential, 'req_data')\n ) {\n credential._input_charset = 'utf-8';\n }\n }\n var query = utils.stringifyData(credential, channel, true);\n var targetURL = baseURL + '?' + query;\n var ap = mods.getExtraModule('ap');\n if (utils.inWeixin() && typeof ap !== 'undefined') {\n ap.pay(targetURL);\n } else {\n utils.redirectTo(targetURL, channel);\n }\n }\n};","var utils = require('../utils');\nvar callbacks = require('../callbacks');\nvar hasOwn = {}.hasOwnProperty;\n\nmodule.exports = {\n\n handleCharge: function(charge) {\n var channel = charge.channel;\n var credential = charge.credential[channel];\n\n if (!hasOwn.call(credential, 'url')) {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_credential', 'missing_field:url'));\n return;\n }\n utils.redirectTo(credential.url + '?' +\n utils.stringifyData(credential, channel), channel);\n }\n};\n","var utils = require('../utils');\nvar hasOwn = {}.hasOwnProperty;\n\nmodule.exports = {\n\n ALIPAY_PC_DIRECT_URL: 'https://intlmapi.alipay.com/gateway.do',\n\n handleCharge: function(charge) {\n var channel = charge.channel;\n var credential = charge.credential[channel];\n var baseURL = this.ALIPAY_PC_DIRECT_URL;\n if (hasOwn.call(credential, 'channel_url')) {\n baseURL = credential.channel_url;\n }\n\n if (!hasOwn.call(credential, '_input_charset')) {\n if(hasOwn.call(credential, 'service')\n && credential.service === 'create_forex_trade') {\n credential._input_charset = 'utf-8';\n }\n }\n var query = utils.stringifyData(credential, channel, true);\n\n utils.redirectTo(baseURL + '?' + query, channel);\n }\n};\n","var utils = require('../utils');\nvar mods = require('../mods');\nvar hasOwn = {}.hasOwnProperty;\n\nmodule.exports = {\n\n ALIPAY_WAP_URL: 'https://intlmapi.alipay.com/gateway.do',\n\n handleCharge: function(charge) {\n var channel = charge.channel;\n var credential = charge.credential[channel];\n var baseURL = this.ALIPAY_WAP_URL;\n if (hasOwn.call(credential, 'channel_url')) {\n baseURL = credential.channel_url;\n }\n if (!hasOwn.call(credential, '_input_charset')) {\n if ((hasOwn.call(credential, 'service')\n && credential.service === 'create_forex_trade_wap')\n ) {\n credential._input_charset = 'utf-8';\n }\n }\n\n var query = utils.stringifyData(credential, channel, true);\n var targetURL = baseURL + '?' + query;\n var ap = mods.getExtraModule('ap');\n if (utils.inWeixin() && typeof ap !== 'undefined') {\n ap.pay(targetURL);\n } else {\n utils.redirectTo(targetURL, channel);\n }\n }\n};\n","var callbacks = require('../callbacks');\nvar utils = require('../utils');\nvar stash = require('../stash');\nvar mods = require('../mods');\nvar hasOwn = {}.hasOwnProperty;\n\n/*global WeixinJSBridge*/\nmodule.exports = {\n\n PINGPP_NOTIFY_URL_BASE: 'https://notify.pingxx.com/notify',\n\n handleCharge: function(charge) {\n var credential = charge.credential[charge.channel];\n var fields = [\n 'appId', 'timeStamp', 'nonceStr', 'package', 'signType', 'paySign'\n ];\n for (var k = 0; k < fields.length; k++) {\n if (!hasOwn.call(credential, fields[k])) {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_credential', 'missing_field_' + fields[k]));\n return;\n }\n }\n stash.jsApiParameters = credential;\n this.callpay();\n },\n\n callpay: function() {\n var self = this;\n var wx_jssdk = mods.getExtraModule('wx_jssdk');\n if (typeof wx_jssdk !== 'undefined' && wx_jssdk.jssdkEnabled()) {\n wx_jssdk.callpay();\n } else if (typeof WeixinJSBridge == 'undefined') {\n var eventCallback = function() {\n self.jsApiCall();\n };\n if (document.addEventListener) {\n document.addEventListener('WeixinJSBridgeReady',\n eventCallback, false);\n } else if (document.attachEvent) {\n document.attachEvent('WeixinJSBridgeReady', eventCallback);\n document.attachEvent('onWeixinJSBridgeReady', eventCallback);\n }\n } else {\n this.jsApiCall();\n }\n },\n\n jsApiCall: function() {\n if (hasOwn.call(stash, 'jsApiParameters')) {\n WeixinJSBridge.invoke(\n 'getBrandWCPayRequest',\n stash.jsApiParameters,\n function(res) {\n delete stash.jsApiParameters;\n if (res.err_msg == 'get_brand_wcpay_request:ok') {\n callbacks.innerCallback('success');\n } else if (res.err_msg == 'get_brand_wcpay_request:cancel') {\n callbacks.innerCallback('cancel');\n } else {\n callbacks.innerCallback('fail',\n callbacks.error('wx_result_fail', res.err_msg));\n }\n }\n );\n }\n },\n\n runTestMode: function(charge) {\n var dopay = confirm('模拟付款?');\n if (dopay) {\n var path = '/charges/' + charge.id;\n utils.request(this.PINGPP_NOTIFY_URL_BASE + path + '?livemode=false',\n 'GET', null,\n function(data, status) {\n if (status >= 200 && status < 400 && data == 'success') {\n callbacks.innerCallback('success');\n } else {\n var extra = 'http_code:' + status + ';response:' + data;\n callbacks.innerCallback('fail',\n callbacks.error('testmode_notify_fail', extra));\n }\n },\n function() {\n callbacks.innerCallback('fail', callbacks.error('network_err'));\n });\n }\n }\n};\n","var utils = require('../utils');\nvar hasOwn = {}.hasOwnProperty;\nvar callbacks = require('../callbacks');\n\nmodule.exports = {\n\n CCB_WAP_URL_BASE: 'https://ibsbjstar.ccb.com.cn/CCBIS/ccbMain?',\n\n handleCharge: function(charge) {\n var channel = charge.channel;\n var credential = charge.credential[channel];\n if (!hasOwn.call(credential, 'orderinfo')) {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_credential', 'missing_field:orderinfo'));\n return;\n }\n\n var targetURL = this.CCB_WAP_URL_BASE + credential['orderinfo'];\n utils.redirectTo(targetURL, channel);\n }\n};\n","var utils = require('../utils');\nvar callbacks = require('../callbacks');\nvar hasOwn = {}.hasOwnProperty;\n\nmodule.exports = {\n handleCharge: function (charge) {\n var credential = charge.credential[charge.channel];\n if (typeof credential === 'string') {\n utils.redirectTo(credential, charge.channel);\n } else {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_credential', 'credential 格式不正确'));\n }\n }\n};\n","var utils = require('../utils');\nvar callbacks = require('../callbacks');\nvar hasOwn = {}.hasOwnProperty;\n\nmodule.exports = {\n handleCharge: function (charge) {\n var credential = charge.credential[charge.channel];\n if (typeof credential === 'string') {\n utils.redirectTo(credential, charge.channel);\n } else {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_credential', 'credential 格式不正确'));\n }\n }\n};","var utils = require('../utils');\nvar hasOwn = {}.hasOwnProperty;\n\nmodule.exports = {\n\n handleCharge: function(charge) {\n var channel = charge.channel;\n var credential = charge.credential[channel];\n var baseURL;\n if (hasOwn.call(credential, 'channel_url')) {\n baseURL = credential.channel_url;\n delete credential.channel_url;\n }\n\n utils.formSubmit(baseURL, 'post', credential);\n }\n};\n","var utils = require('../utils');\nvar hasOwn = {}.hasOwnProperty;\n\nmodule.exports = {\n\n CMB_WALLET_URL:\n 'https://netpay.cmbchina.com/netpayment/BaseHttp.dll?MB_EUserPay',\n\n handleCharge: function(charge) {\n var credential = charge.credential[charge.channel];\n var request_url = this.CMB_WALLET_URL;\n if (hasOwn.call(credential, 'ChannelUrl')) {\n request_url = credential.ChannelUrl;\n delete credential.ChannelUrl;\n }\n\n if (hasOwn.call(credential, 'channelVersion')) {\n delete credential.channelVersion;\n }\n\n utils.formSubmit(request_url, 'post', credential);\n }\n};\n","var utils = require('../../utils');\nvar callbacks = require('../../callbacks');\nvar hasOwn = {}.hasOwnProperty;\n\nmodule.exports = {\n\n handleCharge: function(charge) {\n var credential = charge.credential[charge.channel];\n var targetURL;\n if (typeof credential === 'string') {\n targetURL = credential;\n } else if (hasOwn.call(credential, 'url')) {\n targetURL = credential.url;\n } else {\n callbacks.innerCallback('fail', callbacks.error('invalid_credential',\n 'credential format is incorrect'));\n return;\n }\n utils.redirectTo(targetURL, charge.channel);\n }\n};\n","var utils = require('../utils');\n\nmodule.exports = {\n handleCharge: function(charge) {\n var credential = charge.credential[charge.channel];\n utils.formSubmit(credential.request_url, 'post', credential.request_data);\n }\n};\n","var utils = require('../utils');\n\nmodule.exports = {\n\n CP_B2B_URL: 'https://payment.chinapay.com/CTITS/service/rest/page/nref/000000000017/0/0/0/0/0',\n\n handleCharge: function(charge) {\n var credential = charge.credential[charge.channel];\n utils.formSubmit(this.CP_B2B_URL, 'post', credential);\n }\n};\n","var stash = require('../../stash');\nvar hasOwn = {}.hasOwnProperty;\n\n(function() {\n var b = {};\n var a = {};\n a.PADCHAR = '=';\n a.ALPHA = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n a.makeDOMException = function() {\n try {\n return new DOMException(DOMException.INVALID_CHARACTER_ERR);\n } catch (d) {\n var c = new Error('DOM Exception 5');\n c.code = c.number = 5;\n c.name = c.description = 'INVALID_CHARACTER_ERR';\n c.toString = function() {\n return 'Error: ' + c.name + ': ' + c.message;\n };\n return c;\n }\n };\n a.getbyte64 = function(e, d) {\n var c = a.ALPHA.indexOf(e.charAt(d));\n if (c === -1) {\n throw a.makeDOMException();\n }\n return c;\n };\n a.decode = function(f) {\n f = '' + f;\n var j = a.getbyte64;\n var h, e, g;\n var d = f.length;\n if (d === 0) {\n return f;\n }\n if (d % 4 !== 0) {\n throw a.makeDOMException();\n }\n h = 0;\n if (f.charAt(d - 1) === a.PADCHAR) {\n h = 1;\n if (f.charAt(d - 2) === a.PADCHAR) {\n h = 2;\n }\n d -= 4;\n }\n var c = [];\n for (e = 0; e < d; e += 4) {\n g = (j(f, e) << 18) |\n (j(f, e + 1) << 12) |\n (j(f, e + 2) << 6) |\n j(f, e + 3);\n c.push(String.fromCharCode(g >> 16, (g >> 8) & 255, g & 255));\n }\n switch (h) {\n case 1:\n g = (j(f, e) << 18) | (j(f, e + 1) << 12) | (j(f, e + 2) << 6);\n c.push(String.fromCharCode(g >> 16, (g >> 8) & 255));\n break;\n case 2:\n g = (j(f, e) << 18) | (j(f, e + 1) << 12);\n c.push(String.fromCharCode(g >> 16));\n break;\n }\n return c.join('');\n };\n a.getbyte = function(e, d) {\n var c = e.charCodeAt(d);\n if (c > 255) {\n throw a.makeDOMException();\n }\n return c;\n };\n a.encode = function(f) {\n if (arguments.length !== 1) {\n throw new SyntaxError('Not enough arguments');\n }\n var g = a.PADCHAR;\n var h = a.ALPHA;\n var k = a.getbyte;\n var e, j;\n var c = [];\n f = '' + f;\n var d = f.length - f.length % 3;\n if (f.length === 0) {\n return f;\n }\n for (e = 0; e < d; e += 3) {\n j = (k(f, e) << 16) | (k(f, e + 1) << 8) | k(f, e + 2);\n c.push(h.charAt(j >> 18));\n c.push(h.charAt((j >> 12) & 63));\n c.push(h.charAt((j >> 6) & 63));\n c.push(h.charAt(j & 63));\n }\n switch (f.length - d) {\n case 1:\n j = k(f, e) << 16;\n c.push(h.charAt(j >> 18) + h.charAt((j >> 12) & 63) + g + g);\n break;\n case 2:\n j = (k(f, e) << 16) | (k(f, e + 1) << 8);\n c.push(h.charAt(j >> 18) +\n h.charAt((j >> 12) & 63) +\n h.charAt((j >> 6) & 63) + g);\n break;\n }\n return c.join('');\n };\n b.url = 'pay.htm';\n b.pay = function(d) {\n var c = encodeURIComponent(a.encode(d));\n if (hasOwn.call(stash, 'APURL')) {\n b.url = stash.APURL;\n }\n location.href = b.url + '?goto=' + c;\n };\n b.decode = function(c) {\n return a.decode(decodeURIComponent(c));\n };\n\n module.exports = b;\n})();\n","var wxLite = require('./wx_lite');\n\nmodule.exports = wxLite;\n","var redirectBase = require('./commons/redirect_base');\nvar callbacks = require('../callbacks');\nvar utils = require('../utils');\nvar hasOwn = {}.hasOwnProperty;\n\nmodule.exports = {\n handleCharge: function (charge) {\n var extra = charge.extra;\n if (hasOwn.call(extra, 'pay_channel')) {\n var pay_channel = extra.pay_channel;\n if (pay_channel === 'wx' && !utils.inWeixin()) {\n callbacks.innerCallback('fail',\n callbacks.error('Not in the WeChat browser'));\n return;\n } else if (pay_channel === 'alipay' && !utils.inAlipay()) {\n callbacks.innerCallback('fail',\n callbacks.error('Not in the Alipay browser'));\n return;\n }\n } else {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_charge', 'charge 格式不正确'));\n return;\n }\n redirectBase.handleCharge(charge);\n }\n};\n","var utils = require('../utils');\nvar hasOwn = {}.hasOwnProperty;\n\nmodule.exports = {\n\n JDPAY_WAP_URL_OLD: 'https://m.jdpay.com/wepay/web/pay',\n JDPAY_H5_URL: 'https://h5pay.jd.com/jdpay/saveOrder',\n JDPAY_PC_URL: 'https://wepay.jd.com/jdpay/saveOrder',\n\n handleCharge: function(charge) {\n var credential = charge.credential[charge.channel];\n var request_url = this.JDPAY_H5_URL;\n if (hasOwn.call(credential, 'channelUrl')) {\n request_url = credential.channelUrl;\n delete credential.channelUrl;\n } else if (hasOwn.call(credential, 'merchantRemark')) {\n request_url = this.JDPAY_WAP_URL_OLD;\n }\n utils.formSubmit(request_url, 'post', credential);\n }\n};\n","var utils = require('../utils');\nvar hasOwn = {}.hasOwnProperty;\n\nmodule.exports = {\n handleCharge: function (charge) {\n var credential = charge.credential[charge.channel];\n if (hasOwn.call(credential, 'bankUrl')) {\n request_url = credential.bankUrl;\n delete credential.bankUrl;\n }\n\n utils.formSubmit(request_url, 'post', credential);\n }\n};\n","var utils = require('../utils');\n\nmodule.exports = {\n\n handleCharge: function(charge) {\n var credential = charge.credential[charge.channel];\n var request_url = credential.channelUrl;\n delete credential.channelUrl;\n\n utils.formSubmit(request_url, 'post', credential);\n }\n};\n","var utils = require('../utils');\n\nmodule.exports = {\n handleCharge: function(charge) {\n var credential = charge.credential[charge.channel];\n utils.redirectTo(credential, charge.channel);\n }\n};\n","var callbacks = require('../callbacks');\nvar utils = require('../utils');\nvar stash = require('../stash');\nvar hasOwn = {}.hasOwnProperty;\n\n/*global mqq*/\nmodule.exports = {\n SRC_URL: 'https://open.mobile.qq.com/sdk/qqapi.js?_bid=152',\n ID: 'mqq_api',\n\n handleCharge: function (charge) {\n var credential = charge.credential[charge.channel];\n\n if (!hasOwn.call(credential, 'token_id')) {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_credential', 'missing_token_id'));\n return;\n }\n stash.tokenId = credential.token_id;\n utils.loadUrlJs(this.ID, this.SRC_URL, this.callpay);\n },\n\n callpay: function () {\n if (typeof mqq != 'undefined') {\n if (mqq.QQVersion == 0) {\n callbacks.innerCallback('fail',\n callbacks.error('Not in the QQ client'));\n delete stash.tokenId;\n return;\n }\n mqq.tenpay.pay({\n tokenId: stash.tokenId\n }, function (result) {\n if (result.resultCode == 0) {\n callbacks.innerCallback('success');\n } else {\n callbacks.innerCallback('fail',\n callbacks.error(result.retmsg));\n }\n });\n } else {\n callbacks.innerCallback('fail',\n callbacks.error('network_err'));\n }\n delete stash.tokenId;\n }\n};","var utils = require('../utils');\n\nmodule.exports = {\n\n UPACP_PC_URL: 'https://gateway.95516.com/gateway/api/frontTransReq.do',\n\n handleCharge: function(charge) {\n var credential = charge.credential[charge.channel];\n utils.formSubmit(this.UPACP_PC_URL, 'post', credential);\n }\n};\n","var utils = require('../utils');\n\nmodule.exports = {\n\n UPACP_WAP_URL: 'https://gateway.95516.com/gateway/api/frontTransReq.do',\n\n handleCharge: function(charge) {\n var credential = charge.credential[charge.channel];\n utils.formSubmit(this.UPACP_WAP_URL, 'post', credential);\n }\n};\n","/**\n * Created by yulitao on 2016/12/29.\n */\nvar stash = require('../stash');\nvar callbacks = require('../callbacks');\nvar hasOwn = {}.hasOwnProperty;\n/*global wx*/\nmodule.exports = {\n\n PINGPP_NOTIFY_URL_BASE: 'https://notify.pingxx.com/notify',\n\n handleCharge: function (charge) {\n var credential = charge.credential[charge.channel];\n var fields = [\n 'appId', 'timeStamp', 'nonceStr', 'package', 'signType', 'paySign'\n ];\n for (var k = 0; k < fields.length; k++) {\n if (!hasOwn.call(credential, fields[k])) {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_credential', 'missing_field_' + fields[k]));\n return;\n }\n }\n stash.jsApiParameters = credential;\n this.callpay();\n },\n\n wxLiteEnabled: function () {\n return typeof wx !== 'undefined' && wx.requestPayment;\n },\n\n //微信小程序支付\n callpay: function () {\n if (!this.wxLiteEnabled()) {\n console.log('请在微信小程序中打开');\n return;\n }\n var wx_lite = stash.jsApiParameters;\n delete wx_lite.appId;\n wx_lite.complete = function (res) {\n //支付成功\n if (res.errMsg === 'requestPayment:ok') {\n callbacks.innerCallback('success');\n }\n //取消支付\n if (res.errMsg === 'requestPayment:cancel'\n || res.errMsg === 'requestPayment:fail cancel') {\n callbacks.innerCallback('cancel', callbacks.error('用户取消支付'));\n }\n //支付验证签名失败\n if (res.err_code !== 'undefined' && res.err_desc !== 'undefined') {\n callbacks.innerCallback('fail', callbacks.error(res.err_desc, res));\n }\n };\n wx.requestPayment(wx_lite);\n },\n\n runTestMode: function (charge) {\n var path = '/charges/' + charge.id;\n wx.request({\n url: this.PINGPP_NOTIFY_URL_BASE + path + '?livemode=false',\n success: function(res) {\n if (res.data == 'success') {\n callbacks.innerCallback('success');\n } else {\n callbacks.innerCallback('fail',\n callbacks.error('testmode_notify_fail'));\n }\n },\n fail:function() {\n callbacks.innerCallback('fail', callbacks.error('network_err'));\n }\n });\n }\n};\n","var wxPub = require('./wx_pub');\n\nmodule.exports = wxPub;\n","var utils = require('../utils');\nvar callbacks = require('../callbacks');\nvar hasOwn = {}.hasOwnProperty;\n\nmodule.exports = {\n\n handleCharge: function(charge) {\n var credential = charge.credential[charge.channel];\n if (typeof credential === 'string') {\n utils.redirectTo(credential, charge.channel);\n } else if (typeof credential === 'object'\n && hasOwn.call(credential, 'url')\n ) {\n utils.redirectTo(credential.url, charge.channel);\n } else {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_credential', 'credential 格式不正确'));\n }\n }\n};\n","var utils = require('../utils');\nvar callbacks = require('../callbacks');\nvar hasOwn = {}.hasOwnProperty;\n\nmodule.exports = {\n\n YEEPAY_WAP_URL: 'https://ok.yeepay.com/paymobile/api/pay/request',\n YEEPAY_WAP_TEST_URL: 'http://mobiletest.yeepay.com/paymobile/api/pay/request',\n\n handleCharge: function(charge) {\n var channel = charge.channel;\n var credential = charge.credential[channel];\n var fields = ['merchantaccount', 'encryptkey', 'data'];\n for (var k = 0; k < fields.length; k++) {\n if (!hasOwn.call(credential, fields[k])) {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_credential', 'missing_field_' + fields[k]));\n return;\n }\n }\n var baseURL;\n if (hasOwn.call(credential, 'mode') && credential.mode == 'test') {\n baseURL = this.YEEPAY_WAP_TEST_URL;\n } else {\n baseURL = this.YEEPAY_WAP_URL;\n }\n utils.redirectTo(baseURL + '?' +\n utils.stringifyData(credential, channel, true), charge.channel);\n }\n};\n","var error = function PingppError(message, extra) {\n this.message = message;\n this.extra = extra;\n};\n\nmodule.exports = {\n Error: error,\n};\n","var stash = require('./stash');\nvar utils = require('./utils');\n\nmodule.exports = {\n init: function() {\n var self = this;\n utils.documentReady(function(){\n try {\n (!(utils.inWxLite() || utils.inAlipayLite())) && self.initPuid();\n } catch (e){/* empty */}\n });\n },\n\n initPuid: function() {\n if (typeof window === 'undefined' || typeof localStorage === 'undefined'\n || localStorage === null) {\n return;\n }\n var puid = localStorage.getItem('pingpp_uid');\n if (puid === null) {\n puid = utils.randomString();\n try {\n localStorage.setItem('pingpp_uid', puid);\n } catch (e) {\n /* empty */\n }\n }\n stash.puid = puid;\n }\n};\n","var version = require('./version').v;\nvar hasOwn = {}.hasOwnProperty;\n\nvar PingppSDK = function () {\n require('./init').init();\n};\n\nPingppSDK.prototype.version = version;\n\nmodule.exports = new PingppSDK();\n\nvar testmode = require('./testmode');\nvar callbacks = require('./callbacks');\nvar PingppError = require('./errors').Error;\nvar mods = require('./mods');\nvar stash = require('./stash');\nvar payment_elements = require('./payment_elements');\n\nPingppSDK.prototype.createPayment = function (\n chargeJSON, callback, signature, debug\n) {\n if (typeof callback === 'function') {\n callbacks.userCallback = callback;\n }\n\n try {\n payment_elements.init(chargeJSON);\n } catch (e) {\n if (e instanceof PingppError) {\n callbacks.innerCallback('fail',\n callbacks.error(e.message, e.extra));\n return;\n } else {\n throw e;\n }\n }\n\n if (!hasOwn.call(payment_elements, 'id')) {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_charge', 'no_charge_id'));\n return;\n }\n if (!hasOwn.call(payment_elements, 'channel')) {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_charge', 'no_channel'));\n return;\n }\n\n if (hasOwn.call(payment_elements, 'app')) {\n if (typeof payment_elements.app === 'string') {\n stash.app_id = payment_elements.app;\n } else if (typeof payment_elements.app === 'object' &&\n typeof payment_elements.app.id === 'string') {\n stash.app_id = payment_elements.app.id;\n }\n }\n var channel = payment_elements.channel;\n if (!hasOwn.call(payment_elements, 'credential')) {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_charge', 'no_credential'));\n return;\n }\n if (payment_elements.paid && payment_elements.actual_amount === 0) {\n callbacks.innerCallback('success');\n return;\n }\n\n if (!payment_elements.credential) {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_credential', 'credential_is_undefined'));\n return;\n }\n if (!hasOwn.call(payment_elements.credential, channel)) {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_credential', 'credential_is_incorrect'));\n return;\n }\n if (!hasOwn.call(payment_elements, 'livemode')) {\n callbacks.innerCallback('fail',\n callbacks.error('invalid_charge', 'no_livemode_field'));\n return;\n }\n var channelModule = mods.getChannelModule(channel);\n if (typeof channelModule === 'undefined') {\n console.error('channel module \"' + channel + '\" is undefined');\n callbacks.innerCallback('fail',\n callbacks.error('invalid_channel',\n 'channel module \"' + channel + '\" is undefined')\n );\n return;\n }\n if (payment_elements.livemode === false) {\n if (hasOwn.call(channelModule, 'runTestMode')) {\n channelModule.runTestMode(payment_elements);\n } else {\n testmode.runTestMode(payment_elements);\n }\n return;\n }\n\n if (typeof signature != 'undefined') {\n stash.signature = signature;\n }\n if (typeof debug == 'boolean') {\n stash.debug = debug;\n }\n channelModule.handleCharge(payment_elements);\n};\n\nPingppSDK.prototype.setAPURL = function (url) {\n stash.APURL = url;\n};\n\nPingppSDK.prototype.setUrlReturnCallback = function (callback, channels) {\n if (typeof callback === 'function') {\n callbacks.urlReturnCallback = callback;\n } else {\n throw 'callback need to be a function';\n }\n\n if (typeof channels !== 'undefined') {\n if (Array.isArray(channels)) {\n callbacks.urlReturnChannels = channels;\n } else {\n throw 'channels need to be an array';\n }\n }\n};\n\nPingppSDK.prototype.signAgreement = function (agreement, callback) {\n if (typeof callback === 'function') {\n callbacks.userAgreementCallback = callback;\n }\n\n var module = mods.getExtraModule('agreement');\n if (typeof module === 'undefined') {\n console.error('module \"agreement\" is undefined');\n callbacks.innerCallback('fail',\n callbacks.error('invalid_module',\n 'module \"agreement\" is undefined')\n );\n return false;\n }\n\n return module.signAgreement(agreement);\n};\n","var hasOwn = {}.hasOwnProperty;\nvar mods = {};\nmodule.exports = mods;\n\nmods.channels = {\n alipay: require('./channels/alipay'),\n alipay_lite: require('./channels/alipay_lite'),\n alipay_pc_direct: require('./channels/alipay_pc_direct'),\n alipay_qr: require('./channels/alipay_qr'),\n alipay_qr_lakala: require('./channels/alipay_qr_lakala'),\n alipay_wap: require('./channels/alipay_wap'),\n alipay_wap_lakala: require('./channels/alipay_wap_lakala'),\n bfb_wap: require('./channels/bfb_wap'),\n cb_alipay_pc_direct: require('./channels/cb_alipay_pc_direct'),\n cb_alipay_wap: require('./channels/cb_alipay_wap'),\n cb_wx_pub: require('./channels/cb_wx_pub'),\n ccb_qr: require('./channels/ccb_qr'),\n ccb_wap: require('./channels/ccb_wap'),\n chinaums_alipay_pub: require('./channels/chinaums_alipay_pub'),\n chinaums_alipay_wap: require('./channels/chinaums_alipay_wap'),\n chinaums_upacp_wap: require('./channels/chinaums_upacp_wap'),\n chinaums_wx_pub: require('./channels/chinaums_wx_pub'),\n chinaums_wx_wap: require('./channels/chinaums_wx_wap'),\n cmb_pc_qr: require('./channels/cmb_pc_qr'),\n cmb_wallet: require('./channels/cmb_wallet'),\n coolcredit: require('./channels/coolcredit'),\n cp_b2b: require('./channels/cp_b2b'),\n isv_lite: require('./channels/isv_lite'),\n isv_wap: require('./channels/isv_wap'),\n jdpay_wap: require('./channels/jdpay_wap'),\n nucc_b2b_lakala: require('./channels/nucc_b2b_lakala'),\n nucc_b2c_lakala: require('./channels/nucc_b2c_lakala'),\n pab_pc: require('./channels/pab_pc'),\n paypal: require('./channels/paypal'),\n qpay_pub: require('./channels/qpay_pub'),\n upacp_b2b: require('./channels/upacp_b2b'),\n upacp_pc: require('./channels/upacp_pc'),\n upacp_wap: require('./channels/upacp_wap'),\n wx_lite: require('./channels/wx_lite'),\n wx_lite_pab: require('./channels/wx_lite_pab'),\n wx_pub: require('./channels/wx_pub'),\n wx_pub_hzbank: require('./channels/wx_pub_hzbank'),\n wx_pub_pab: require('./channels/wx_pub_pab'),\n wx_wap: require('./channels/wx_wap'),\n yeepay_wap: require('./channels/yeepay_wap')\n};\n\nmods.extras = {\n ap: require('./channels/extras/ap'),\n agreement: require('./agreement')\n};\n\nmods.getChannelModule = function(channel) {\n if (hasOwn.call(mods.channels, channel)) {\n return mods.channels[channel];\n }\n return undefined;\n};\n\nmods.getExtraModule = function(name) {\n if (hasOwn.call(mods.extras, name)) {\n return mods.extras[name];\n }\n return undefined;\n};\n","/**\n * Created by dong on 2016/12/30.\n */\n\nvar PingppError = require('./errors').Error;\nvar hasOwn = {}.hasOwnProperty;\n\nmodule.exports = {\n id: null,\n or_id: null,\n channel: null,\n app: null,\n credential: {},\n extra: null,\n livemode: null,\n order_no: null,\n time_expire: null,\n paid: false,\n status: null,\n actual_amount: null,\n\n init: function (charge_or_order) {\n var charge;\n if (typeof charge_or_order === 'string') {\n try {\n charge = JSON.parse(charge_or_order);\n } catch (err) {\n throw new PingppError('json_decode_fail', err);\n }\n } else {\n charge = charge_or_order;\n }\n\n if (typeof charge === 'undefined') {\n throw new PingppError('json_decode_fail');\n }\n\n if (hasOwn.call(charge, 'object') && charge.object == 'order') {\n charge.or_id = charge.id;\n charge.order_no = charge.merchant_order_no;\n var charge_essentials = charge.charge_essentials;\n charge.channel = charge_essentials.channel;\n charge.credential = charge_essentials.credential;\n charge.extra = charge_essentials.extra;\n if(hasOwn.call(charge, 'charge') && charge.charge != null) {\n charge.id = charge.charge;\n } else if(hasOwn.call(charge_essentials, 'id')\n && charge_essentials.id != null) {\n charge.id = charge_essentials.id;\n } else if(hasOwn.call(charge, 'charges')) {\n for(var i = 0; i < charge.charges.data.length; i++){\n if(charge.charges.data[i].channel === charge_essentials.channel) {\n charge.id = charge.charges.data[i].id;\n break;\n }\n }\n }\n } else if(hasOwn.call(charge, 'object') && charge.object == 'recharge') {\n charge = charge.charge;\n }\n\n for (var key in this) {\n if (hasOwn.call(charge, key)) {\n this[key] = charge[key];\n }\n }\n return this;\n },\n\n clear: function () {\n for (var key in this) {\n if (typeof this[key] !== 'function') {\n this[key] = null;\n }\n }\n }\n};","module.exports = {\n};\n","var utils = require('./utils');\nvar hasOwn = {}.hasOwnProperty;\nmodule.exports = {\n PINGPP_MOCK_URL: 'https://sissi.pingxx.com/mock.php',\n\n runTestMode: function (charge) {\n var params = {\n 'ch_id': charge.id,\n 'scheme': 'http',\n 'channel': charge.channel\n };\n\n if (hasOwn.call(charge, 'order_no')) {\n params.order_no = charge.order_no;\n } else if (hasOwn.call(charge, 'orderNo')) {\n params.order_no = charge.orderNo;\n }\n if (hasOwn.call(charge, 'time_expire')) {\n params.time_expire = charge.time_expire;\n } else if (hasOwn.call(charge, 'timeExpire')) {\n params.time_expire = charge.timeExpire;\n }\n if (hasOwn.call(charge, 'extra')) {\n params.extra = encodeURIComponent(JSON.stringify(charge.extra));\n }\n utils.redirectTo(\n this.PINGPP_MOCK_URL + '?' + utils.stringifyData(params),\n charge.channel\n );\n }\n};\n","var callbacks = require('./callbacks');\nvar hasOwn = {}.hasOwnProperty;\n\nvar utils = module.exports = {\n\n /**\n * 对象转换成 query string\n * @param object data 待转对象\n * @param string channel 渠道\n * @param boolean urlencode 是否需要 urlencode\n *\n * @return string query string\n */\n stringifyData: function (data, channel, urlencode) {\n if (typeof urlencode == 'undefined') {\n urlencode = false;\n }\n var output = [];\n for (var i in data) {\n if (!hasOwn.call(data, i) || typeof data[i] === 'function') {\n continue;\n }\n if (channel == 'bfb_wap' && i == 'url') {\n continue;\n }\n if (channel == 'yeepay_wap' && i == 'mode') {\n continue;\n }\n if (i == 'channel_url') {\n continue;\n }\n output.push(i + '=' +\n (urlencode ? encodeURIComponent(data[i]) : data[i]));\n }\n return output.join('&');\n },\n\n /**\n * 网络请求\n * @param string url\n * @param string method 请求方式, POST, GET ...\n * @param object requestData 请求数据\n * @param function successCallback 成功回调 (data, statusCode, xhr)\n * @param function errorCallback 错误回调 (xhr, statusCode, error)\n */\n request: function (url, method, requestData,\n successCallback, errorCallback, headers) {\n if (typeof XMLHttpRequest === 'undefined') {\n console.log('Function XMLHttpRequest is undefined.');\n return;\n }\n var xhr = new XMLHttpRequest();\n if (typeof xhr.timeout !== 'undefined') {\n xhr.timeout = 6000;\n }\n method = method.toUpperCase();\n\n if (method === 'GET' && typeof requestData === 'object' && requestData) {\n url += '?' + utils.stringifyData(requestData, '', true);\n }\n xhr.open(method, url, true);\n if (typeof headers !== 'undefined') {\n for (var k in headers) {\n if (hasOwn.call(headers, k)) {\n xhr.setRequestHeader(k, headers[k]);\n }\n }\n }\n if (method === 'POST') {\n xhr.setRequestHeader('Content-type', 'application/json; charset=utf-8');\n xhr.send(JSON.stringify(requestData));\n } else {\n xhr.send();\n }\n if (typeof successCallback == 'undefined') {\n successCallback = function () {};\n }\n if (typeof errorCallback == 'undefined') {\n errorCallback = function () {};\n }\n xhr.onreadystatechange = function () {\n if (xhr.readyState == 4) {\n successCallback(xhr.responseText, xhr.status, xhr);\n }\n };\n xhr.onerror = function (e) {\n errorCallback(xhr, 0, e);\n };\n },\n\n /**\n * 表单提交\n * @param string url\n * @param string method 请求方式, POST, GET ...\n * @param object params 请求数据\n */\n formSubmit: function (url, method, params) {\n if (typeof window === 'undefined') {\n console.log('Not a browser, form submit url: ' + url);\n return;\n }\n var form = document.createElement('form');\n form.setAttribute('method', method);\n form.setAttribute('action', url);\n\n for (var key in params) {\n if (hasOwn.call(params, key)) {\n var hiddenField = document.createElement('input');\n hiddenField.setAttribute('type', 'hidden');\n hiddenField.setAttribute('name', key);\n hiddenField.setAttribute('value', params[key]);\n form.appendChild(hiddenField);\n }\n }\n\n document.body.appendChild(form);\n form.submit();\n },\n\n randomString: function (length) {\n if (typeof length == 'undefined') {\n length = 32;\n }\n var chars =\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n var maxPos = chars.length;\n var str = '';\n for (var i = 0; i < length; i++) {\n str += chars.charAt(Math.floor(Math.random() * maxPos));\n }\n\n return str;\n },\n\n redirectTo: function (url, channel) {\n if (callbacks.shouldReturnUrlByCallback(channel)) {\n callbacks.triggerUrlReturnCallback(null, url);\n return;\n }\n if (typeof window === 'undefined') {\n console.log('Not a browser, redirect url: ' + url);\n return;\n }\n window.location.href = url;\n },\n\n inWeixin: function () {\n if (typeof navigator === 'undefined') {\n return false;\n }\n var ua = navigator.userAgent.toLowerCase();\n return ua.indexOf('micromessenger') !== -1;\n },\n\n inAlipay: function () {\n if (typeof navigator === 'undefined') {\n return false;\n }\n var ua = navigator.userAgent.toLowerCase();\n return ua.indexOf('alipayclient') !== -1;\n },\n\n /*global wx*/\n inWxLite: function() {\n if(typeof wx === 'undefined') {\n return false;\n }\n \n return wx.miniProgram || wx.requestPayment;\n },\n\n /*global my*/\n inAlipayLite: function() {\n if(typeof my === 'undefined') {\n return false;\n }\n\n return my.tradePay;\n },\n\n documentReady: function (fn) {\n if (typeof document === 'undefined') {\n fn();\n return;\n }\n if (document.readyState != 'loading') {\n fn();\n } else {\n document.addEventListener('DOMContentLoaded', fn);\n }\n },\n\n loadUrlJs: function (sid, jsurl, callback) {\n var nodeHead = document.getElementsByTagName('head')[0];\n var nodeScript = null;\n if (document.getElementById(sid) == null) {\n nodeScript = document.createElement('script');\n nodeScript.setAttribute('type', 'text/javascript');\n nodeScript.setAttribute('src', jsurl);\n nodeScript.setAttribute('id', sid);\n nodeScript.async = true;\n if (callback != null) {\n nodeScript.onload = nodeScript.onreadystatechange = function () {\n if (nodeScript.ready) {\n return false;\n }\n\n if (!nodeScript.readyState || nodeScript.readyState == 'loaded'\n || nodeScript.readyState == 'complete') {\n nodeScript.ready = true;\n callback();\n }\n };\n }\n nodeHead.appendChild(nodeScript);\n } else {\n if (callback != null) {\n callback();\n }\n }\n }\n};\n","module.exports = {\n v: '2.2.25'\n};\n"]}
|
package/package.json
CHANGED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
var utils = require('../utils');
|
|
2
|
+
var callbacks = require('../callbacks');
|
|
3
|
+
var hasOwn = {}.hasOwnProperty;
|
|
4
|
+
|
|
5
|
+
module.exports = {
|
|
6
|
+
handleCharge: function (charge) {
|
|
7
|
+
var credential = charge.credential[charge.channel];
|
|
8
|
+
if (typeof credential === 'string') {
|
|
9
|
+
utils.redirectTo(credential, charge.channel);
|
|
10
|
+
} else {
|
|
11
|
+
callbacks.innerCallback('fail',
|
|
12
|
+
callbacks.error('invalid_credential', 'credential 格式不正确'));
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
var utils = require('../utils');
|
|
2
|
+
var callbacks = require('../callbacks');
|
|
3
|
+
var hasOwn = {}.hasOwnProperty;
|
|
4
|
+
|
|
5
|
+
module.exports = {
|
|
6
|
+
handleCharge: function (charge) {
|
|
7
|
+
var credential = charge.credential[charge.channel];
|
|
8
|
+
if (typeof credential === 'string') {
|
|
9
|
+
utils.redirectTo(credential, charge.channel);
|
|
10
|
+
} else {
|
|
11
|
+
callbacks.innerCallback('fail',
|
|
12
|
+
callbacks.error('invalid_credential', 'credential 格式不正确'));
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
var utils = require('../utils');
|
|
2
|
+
var callbacks = require('../callbacks');
|
|
3
|
+
var hasOwn = {}.hasOwnProperty;
|
|
4
|
+
|
|
5
|
+
module.exports = {
|
|
6
|
+
handleCharge: function (charge) {
|
|
7
|
+
var credential = charge.credential[charge.channel];
|
|
8
|
+
if (typeof credential === 'string') {
|
|
9
|
+
utils.redirectTo(credential, charge.channel);
|
|
10
|
+
} else {
|
|
11
|
+
callbacks.innerCallback('fail',
|
|
12
|
+
callbacks.error('invalid_credential', 'credential 格式不正确'));
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
var utils = require('../utils');
|
|
2
|
+
var callbacks = require('../callbacks');
|
|
3
|
+
var hasOwn = {}.hasOwnProperty;
|
|
4
|
+
|
|
5
|
+
module.exports = {
|
|
6
|
+
handleCharge: function (charge) {
|
|
7
|
+
var credential = charge.credential[charge.channel];
|
|
8
|
+
if (typeof credential === 'string') {
|
|
9
|
+
utils.redirectTo(credential, charge.channel);
|
|
10
|
+
} else {
|
|
11
|
+
callbacks.innerCallback('fail',
|
|
12
|
+
callbacks.error('invalid_credential', 'credential 格式不正确'));
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
var utils = require('../utils');
|
|
2
|
+
var callbacks = require('../callbacks');
|
|
3
|
+
var hasOwn = {}.hasOwnProperty;
|
|
4
|
+
|
|
5
|
+
module.exports = {
|
|
6
|
+
handleCharge: function (charge) {
|
|
7
|
+
var credential = charge.credential[charge.channel];
|
|
8
|
+
if (typeof credential === 'string') {
|
|
9
|
+
utils.redirectTo(credential, charge.channel);
|
|
10
|
+
} else {
|
|
11
|
+
callbacks.innerCallback('fail',
|
|
12
|
+
callbacks.error('invalid_credential', 'credential 格式不正确'));
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
var utils = require('../utils');
|
|
2
|
+
var hasOwn = {}.hasOwnProperty;
|
|
3
|
+
|
|
4
|
+
module.exports = {
|
|
5
|
+
handleCharge: function (charge) {
|
|
6
|
+
var credential = charge.credential[charge.channel];
|
|
7
|
+
if (hasOwn.call(credential, 'bankUrl')) {
|
|
8
|
+
request_url = credential.bankUrl;
|
|
9
|
+
delete credential.bankUrl;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
utils.formSubmit(request_url, 'post', credential);
|
|
13
|
+
}
|
|
14
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
var utils = require('../utils');
|
|
2
|
+
var hasOwn = {}.hasOwnProperty;
|
|
3
|
+
|
|
4
|
+
module.exports = {
|
|
5
|
+
handleCharge: function (charge) {
|
|
6
|
+
var credential = charge.credential[charge.channel];
|
|
7
|
+
if (hasOwn.call(credential, 'bankUrl')) {
|
|
8
|
+
request_url = credential.bankUrl;
|
|
9
|
+
delete credential.bankUrl;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
utils.formSubmit(request_url, 'post', credential);
|
|
13
|
+
}
|
|
14
|
+
};
|
package/src/init.js
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
var stash = require('./stash');
|
|
2
2
|
var utils = require('./utils');
|
|
3
|
-
var dc = require('./collection');
|
|
4
3
|
|
|
5
4
|
module.exports = {
|
|
6
|
-
SRC_URL: 'https://cookie.pingxx.com',
|
|
7
|
-
|
|
8
5
|
init: function() {
|
|
9
6
|
var self = this;
|
|
10
7
|
utils.documentReady(function(){
|
|
@@ -29,20 +26,5 @@ module.exports = {
|
|
|
29
26
|
}
|
|
30
27
|
}
|
|
31
28
|
stash.puid = puid;
|
|
32
|
-
if (!document.getElementById('p_analyse_iframe')) {
|
|
33
|
-
var iframe;
|
|
34
|
-
try {
|
|
35
|
-
iframe = document.createElement('iframe');
|
|
36
|
-
}catch(e){
|
|
37
|
-
iframe = document.createElement('<iframe name="ifr"></iframe>');
|
|
38
|
-
}
|
|
39
|
-
iframe.id = 'p_analyse_iframe';
|
|
40
|
-
iframe.src = this.SRC_URL + '/?puid=' + puid;
|
|
41
|
-
iframe.style.display = 'none';
|
|
42
|
-
document.body.appendChild(iframe);
|
|
43
|
-
}
|
|
44
|
-
setTimeout(function() {
|
|
45
|
-
dc.send();
|
|
46
|
-
}, 0);
|
|
47
29
|
}
|
|
48
30
|
};
|
package/src/main.js
CHANGED
|
@@ -14,7 +14,6 @@ var callbacks = require('./callbacks');
|
|
|
14
14
|
var PingppError = require('./errors').Error;
|
|
15
15
|
var mods = require('./mods');
|
|
16
16
|
var stash = require('./stash');
|
|
17
|
-
var dc = require('./collection');
|
|
18
17
|
var payment_elements = require('./payment_elements');
|
|
19
18
|
|
|
20
19
|
PingppSDK.prototype.createPayment = function (
|
|
@@ -55,11 +54,6 @@ PingppSDK.prototype.createPayment = function (
|
|
|
55
54
|
stash.app_id = payment_elements.app.id;
|
|
56
55
|
}
|
|
57
56
|
}
|
|
58
|
-
dc.report({
|
|
59
|
-
type: stash.type || 'pure_sdk_click',
|
|
60
|
-
channel: payment_elements.channel,
|
|
61
|
-
ch_id: payment_elements.id
|
|
62
|
-
});
|
|
63
57
|
var channel = payment_elements.channel;
|
|
64
58
|
if (!hasOwn.call(payment_elements, 'credential')) {
|
|
65
59
|
callbacks.innerCallback('fail',
|
package/src/mods.js
CHANGED
|
@@ -16,6 +16,11 @@ mods.channels = {
|
|
|
16
16
|
cb_wx_pub: require('./channels/cb_wx_pub'),
|
|
17
17
|
ccb_qr: require('./channels/ccb_qr'),
|
|
18
18
|
ccb_wap: require('./channels/ccb_wap'),
|
|
19
|
+
chinaums_alipay_pub: require('./channels/chinaums_alipay_pub'),
|
|
20
|
+
chinaums_alipay_wap: require('./channels/chinaums_alipay_wap'),
|
|
21
|
+
chinaums_upacp_wap: require('./channels/chinaums_upacp_wap'),
|
|
22
|
+
chinaums_wx_pub: require('./channels/chinaums_wx_pub'),
|
|
23
|
+
chinaums_wx_wap: require('./channels/chinaums_wx_wap'),
|
|
19
24
|
cmb_pc_qr: require('./channels/cmb_pc_qr'),
|
|
20
25
|
cmb_wallet: require('./channels/cmb_wallet'),
|
|
21
26
|
coolcredit: require('./channels/coolcredit'),
|
|
@@ -23,6 +28,8 @@ mods.channels = {
|
|
|
23
28
|
isv_lite: require('./channels/isv_lite'),
|
|
24
29
|
isv_wap: require('./channels/isv_wap'),
|
|
25
30
|
jdpay_wap: require('./channels/jdpay_wap'),
|
|
31
|
+
nucc_b2b_lakala: require('./channels/nucc_b2b_lakala'),
|
|
32
|
+
nucc_b2c_lakala: require('./channels/nucc_b2c_lakala'),
|
|
26
33
|
pab_pc: require('./channels/pab_pc'),
|
|
27
34
|
paypal: require('./channels/paypal'),
|
|
28
35
|
qpay_pub: require('./channels/qpay_pub'),
|
package/src/testmode.js
CHANGED
package/src/version.js
CHANGED
package/src/collection.js
DELETED
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
var utils = require('./utils');
|
|
2
|
-
var stash = require('./stash');
|
|
3
|
-
var md5 = require('./libs/md5');
|
|
4
|
-
|
|
5
|
-
var collection = {
|
|
6
|
-
seperator: '###',
|
|
7
|
-
limit: 1,
|
|
8
|
-
report_url: 'https://statistics.pingxx.com/one_stats',
|
|
9
|
-
timeout: 100
|
|
10
|
-
};
|
|
11
|
-
var getParam = function(str, param) {
|
|
12
|
-
var reg = new RegExp('(^|&)' + param + '=([^&]*)(&|$)', 'i');
|
|
13
|
-
var r = str.substring(0).match(reg);
|
|
14
|
-
if (r !== null) return unescape(r[2]);
|
|
15
|
-
return null;
|
|
16
|
-
};
|
|
17
|
-
var getUserAgent = function() {
|
|
18
|
-
if (typeof navigator === 'undefined') {
|
|
19
|
-
return '';
|
|
20
|
-
}
|
|
21
|
-
return navigator.userAgent;
|
|
22
|
-
};
|
|
23
|
-
var getHost = function() {
|
|
24
|
-
if (typeof window === 'undefined') {
|
|
25
|
-
return '';
|
|
26
|
-
}
|
|
27
|
-
return window.location.host;
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
collection.store = function(obj) {
|
|
31
|
-
if (utils.inWxLite() || utils.inAlipayLite()) {
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
if (typeof localStorage === 'undefined' || localStorage === null) return;
|
|
35
|
-
var _this = this;
|
|
36
|
-
var reportData = {};
|
|
37
|
-
reportData.app_id = obj.app_id || stash.app_id || 'app_not_defined';
|
|
38
|
-
reportData.ch_id = obj.ch_id || '';
|
|
39
|
-
reportData.channel = obj.channel || '';
|
|
40
|
-
reportData.type = obj.type || '';
|
|
41
|
-
reportData.user_agent = getUserAgent();
|
|
42
|
-
reportData.host = getHost();
|
|
43
|
-
reportData.time = new Date().getTime();
|
|
44
|
-
reportData.puid = stash.puid;
|
|
45
|
-
|
|
46
|
-
var reportStr = 'app_id=' + reportData.app_id +
|
|
47
|
-
'&channel=' + reportData.channel + '&ch_id=' + reportData.ch_id +
|
|
48
|
-
'&host=' + reportData.host + '&time=' + reportData.time +
|
|
49
|
-
'&type=' + reportData.type + '&user_agent=' + reportData.user_agent +
|
|
50
|
-
'&puid=' + reportData.puid;
|
|
51
|
-
|
|
52
|
-
var statsToSave = reportStr;
|
|
53
|
-
if (localStorage.getItem('PPP_ONE_STATS') !== null &&
|
|
54
|
-
localStorage.getItem('PPP_ONE_STATS').length !== 0
|
|
55
|
-
) {
|
|
56
|
-
statsToSave = localStorage.getItem('PPP_ONE_STATS') +
|
|
57
|
-
_this.seperator + reportStr;
|
|
58
|
-
}
|
|
59
|
-
try {
|
|
60
|
-
localStorage.setItem('PPP_ONE_STATS', statsToSave);
|
|
61
|
-
} catch (e) {
|
|
62
|
-
/* empty */
|
|
63
|
-
}
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
collection.send = function() {
|
|
67
|
-
if (typeof localStorage === 'undefined' || localStorage === null) return;
|
|
68
|
-
var _this = this;
|
|
69
|
-
var pppOneStats = localStorage.getItem('PPP_ONE_STATS');
|
|
70
|
-
if (pppOneStats === null ||
|
|
71
|
-
pppOneStats.split(_this.seperator).length < _this.limit) {
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
try {
|
|
75
|
-
var data = [];
|
|
76
|
-
var origin = pppOneStats.split(_this.seperator);
|
|
77
|
-
var token = md5(origin.join('&'));
|
|
78
|
-
|
|
79
|
-
for (var i = 0; i < origin.length; i++) {
|
|
80
|
-
data.push({
|
|
81
|
-
app_id: getParam(origin[i], 'app_id'),
|
|
82
|
-
channel: getParam(origin[i], 'channel'),
|
|
83
|
-
ch_id: getParam(origin[i], 'ch_id'),
|
|
84
|
-
host: getParam(origin[i], 'host'),
|
|
85
|
-
time: getParam(origin[i], 'time'),
|
|
86
|
-
type: getParam(origin[i], 'type'),
|
|
87
|
-
user_agent: getParam(origin[i], 'user_agent'),
|
|
88
|
-
puid: getParam(origin[i], 'puid')
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
utils.request(_this.report_url, 'POST', data, function(data, status) {
|
|
93
|
-
if (status == 200) {
|
|
94
|
-
localStorage.removeItem('PPP_ONE_STATS');
|
|
95
|
-
}
|
|
96
|
-
}, undefined, {
|
|
97
|
-
'X-Pingpp-Report-Token': token
|
|
98
|
-
});
|
|
99
|
-
} catch (e) {
|
|
100
|
-
/* empty */
|
|
101
|
-
}
|
|
102
|
-
};
|
|
103
|
-
|
|
104
|
-
collection.report = function(obj) {
|
|
105
|
-
if (utils.inWxLite() || utils.inAlipayLite()) {
|
|
106
|
-
return;
|
|
107
|
-
}
|
|
108
|
-
var _this = this;
|
|
109
|
-
_this.store(obj);
|
|
110
|
-
setTimeout(function(){
|
|
111
|
-
_this.send();
|
|
112
|
-
}, _this.timeout);
|
|
113
|
-
};
|
|
114
|
-
|
|
115
|
-
module.exports = collection;
|