pingpp-js 2.2.23 → 2.2.24

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 CHANGED
@@ -1,5 +1,9 @@
1
1
  # ChangeLog
2
2
 
3
+ ## 2.2.24
4
+
5
+ - 新增chinaums_alipay_wap, chinaums_upacp_wap, chinaums_wx_wap, chinaums_alipay_pub, chinaums_wx_pub
6
+
3
7
  ## 2.2.23
4
8
 
5
9
  - 新增 nucc_b2b_lakala,nucc_b2c_lakala
package/dist/pingpp.js CHANGED
@@ -1,2 +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 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":47}],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":44}],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":47}],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":18}],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":43,"../utils":47}],9:[function(e,a,n){arguments[4][7][0].apply(n,arguments)},{"./commons/redirect_base":18,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":47}],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":47}],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":43,"../utils":47}],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":43,"../stash":45,"../utils":47}],14:[function(e,a,n){arguments[4][7][0].apply(n,arguments)},{"./commons/redirect_base":18,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":47}],16:[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":47}],17:[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":47}],18:[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":47}],19:[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":47}],20:[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":47}],21:[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":45}],22:[function(e,a,n){var r=e('./wx_lite');a.exports=r},{"./wx_lite":33}],23:[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":47,"./commons/redirect_base":18}],24:[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":47}],25:[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":47}],26:[function(e,a,n){arguments[4][25][0].apply(n,arguments)},{"../utils":47,dup:25}],27:[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":47}],28:[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":47}],29:[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":45,"../utils":47}],30:[function(e,a,n){arguments[4][16][0].apply(n,arguments)},{"../utils":47,dup:16}],31:[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":47}],32:[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":47}],33:[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":45}],34:[function(e,a,n){arguments[4][22][0].apply(n,arguments)},{"./wx_lite":33,dup:22}],35:[function(e,a,n){arguments[4][13][0].apply(n,arguments)},{"../callbacks":2,"../mods":43,"../stash":45,"../utils":47,dup:13}],36:[function(e,a,n){var r=e('./wx_pub');a.exports=r},{"./wx_pub":35}],37:[function(e,a,n){arguments[4][36][0].apply(n,arguments)},{"./wx_pub":35,dup:36}],38:[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":47}],39:[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":47}],40:[function(e,a,n){a.exports={Error:function(e,a){this.message=e,this.extra=a}}},{}],41:[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":45,"./utils":47}],42:[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'),d=e('./stash'),p=e('./payment_elements');PingppSDK.prototype.createPayment=function(e,a,n,r){'function'==typeof a&&(o.userCallback=a);try{p.init(e)}catch(e){if(e instanceof s)return void o.innerCallback('fail',o.error(e.message,e.extra));throw e}if(i.call(p,'id'))if(i.call(p,'channel')){i.call(p,'app')&&('string'==typeof p.app?d.app_id=p.app:'object'==typeof p.app&&'string'==typeof p.app.id&&(d.app_id=p.app.id));var t=p.channel;if(i.call(p,'credential'))if(p.paid&&0===p.actual_amount)o.innerCallback('success');else if(p.credential)if(i.call(p.credential,t))if(i.call(p,'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!==p.livemode?(void 0!==n&&(d.signature=n),'boolean'==typeof r&&(d.debug=r),l.handleCharge(p)):i.call(l,'runTestMode')?l.runTestMode(p):c.runTestMode(p)}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,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":40,"./init":41,"./mods":43,"./payment_elements":44,"./stash":45,"./testmode":46,"./version":48}],43:[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'),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/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/nucc_b2b_lakala":25,"./channels/nucc_b2c_lakala":26,"./channels/pab_pc":27,"./channels/paypal":28,"./channels/qpay_pub":29,"./channels/upacp_b2b":30,"./channels/upacp_pc":31,"./channels/upacp_wap":32,"./channels/wx_lite":33,"./channels/wx_lite_pab":34,"./channels/wx_pub":35,"./channels/wx_pub_hzbank":36,"./channels/wx_pub_pab":37,"./channels/wx_wap":38,"./channels/yeepay_wap":39}],44:[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":40}],45:[function(e,a,n){a.exports={}},{}],46:[function(e,a,n){var r=e('./utils'),t={}.hasOwnProperty;a.exports={PINGPP_MOCK_URL:'http://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":47}],47:[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}],48:[function(e,a,n){a.exports={v:'2.2.23'}},{}]},{},[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:'http://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.24'}},{}]},{},[47])(47)});
2
2
  //# sourceMappingURL=pingpp.js.map
@@ -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/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","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":"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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');\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 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: '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.23'\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":"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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 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: '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.24'\n};\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pingpp-js",
3
- "version": "2.2.23",
3
+ "version": "2.2.24",
4
4
  "description": "Ping++ HTML5 SDK",
5
5
  "main": "src/main.js",
6
6
  "homepage": "https://www.pingxx.com",
@@ -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
+ };
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'),
package/src/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  module.exports = {
2
- v: '2.2.23'
2
+ v: '2.2.24'
3
3
  };