鏈枃浠呬緵璁板綍鍜屽涔犮€傚鏈夎艾璇紝璇锋寚鏁欙紙闉犺含浠嬬粛h5椤甸潰锛岄泦鎴愪簡寰俊娴忚鍣ㄧ幆澧冩敮浠橈紙wx_pub锛夋敮浠樺疂鎵嬫満缃戠珯鏀粯锛坅lipay_wap锛夊井淇″皬绋嬪簭鏀粯锛坵x_lite锛塧pp鏀粯锛堜笌鎴戜滑鐨刟pp浜や簰锛岄€氳繃app璋冪敤寰俊appwx/鏀粯瀹漚ppalipay锛夋敮浠樻祦绋嬪厛闄勪笂鏂囨。馃憠PING++H5SDK鎺ュ叆鎸囧崡澶ц嚧娴佺▼濡備笅锛氬噯澶囧悗鍙版帴鍙e弬鏁?>璋冪敤鍚庡彴鎺ュ彛鑾峰彇ping++鏀惰垂瀵硅薄=>浠harge瀵硅薄璋冪敤ping++sdk=>鑾峰彇ping++鏀粯缁撴灉/澶勭悊鏀粯缁撴灉鐜鍒ゆ柇鍥犱负h5宓屽叆鍦ㄥ悇涓钩鍙帮紝鎵€浠ラ渶瑕佸垽鏂綋鍓嶆槸鍝釜骞冲彴銆傝嚦浜庢€庝箞鍒ゆ柇锛岃嚜宸辫В鍐冲搱鍝堝搱鍝坈reated(){constchannels=[{icon:'ic_wechat',title:'寰俊鏀粯',tips:'鎺ㄨ崘瀹夎寰俊5.0鍙婁互涓婄殑鐢ㄦ埛浣跨敤',name:'wx_pub'},{icon:'ic_alipay',title:'鏀粯瀹濇敮浠?,tips:'鎺ㄨ崘缁欐湁鏀粯瀹濊处鎴风殑鐢ㄦ埛',name:'alipay_wap'},]if(this.$env.wechatApplet){this.paySubChannel='wx_lite'//榛樿瀹為檯鏀粯閫氶亾this.paySubChannels=[]//瀹為檯鍙€夋敮浠橀€氶亾鏁扮粍}elseif(this.$env.wechat){this.paySubChannel='wx_pub'this.paySubChannels=channels.slice(0,1)}elseif(this.$env.alipay){this.paySubChannel='alipay_wap'this.paySubChannels=channels.slice(1)}else{//appthis.paySubChannel=''this.paySubChannels=channels}},鍑嗗鍚庡彴鎺ュ彛鍙傛暟鑾峰彇ping++璁¤垂瀵硅薄鍦ㄨ皟鐢ㄥ悗鍙版帴鍙h幏鍙杙ing++璁¤垂瀵硅薄涔嬪墠锛岄渶瑕佸噯澶囦竴浜涗笉鍚屾笭閬撴敮浠橀渶瑕佺殑鍙傛暟銆倀ips:params涓鸿姹傚悗鍙版帴鍙f敮浠橀渶瑕佺殑鍙傛暟瀵硅薄wx_pubif(this.paySubChannel==='wx_pub'){params.openId=getOpenId()//濡備綍鑾峰彇openId鏈枃涓嶈璁簘alipay_wap鏀粯鍥犱负ping++浼氬湪successUrl?result=success/fail绛夊悗闈㈠姞涓婂弬鏁帮紝鎵€浠ユ垜浠繖閲屼笉鑳介厤缃弬鏁帮細params.successUrl=`${window.location.origin}/#/payResult?serialNo=${this.payInfo锛焥erialNo}`鎵€浠ヤ娇鐢ㄥ姩鎬佽矾鐢变紶閫掓敮浠樼粨鏋滈〉闈㈤渶瑕佺殑鍙傛暟锛歩f(this.paySubChannel==='alipay_wap'){params.successUrl=`${window.location.origin}/#/payResult/${this.payInfo?.serialNo}/${this.otherProp}`}璺敱閰嶇疆{path:'/payResult/:serialNo/:otherProp',name:'payResult',component:()=>import('views/common/payResult/index.vue'),meta:{title:'paymentresult'}}锛岄偅涔堟垜浠氨鍙互鍦ㄦ敮浠樼粨鏋滈〉闈㈤€氳繃this.$route.params鑾峰彇serialNootherProp杩欎袱涓弬鏁般€傛墍浠ュ鏋滀綘鐨勪笟鍔¢渶瑕佸甫token锛屽彲浠ョ洿鎺ユ坊鍔?:token銆傛煡鐪嬫枃妗?dynamicrouting浜嗚В鏇村鍏充簬鍔ㄦ€佽矾鐢辩殑鐭ヨ瘑o(锟b柦锟?銉梬x_lite鏀粯鍚庡彴锛歨5宓屽叆灏忕▼搴弚ebviewh5浠g爜锛?/鍏坕mportwxsdkimportwxfrom'weixin-js-sdk'if(this.paySubChannel==='wx_lite'){//鐩存帴璺宠浆鍒板皬绋嬪簭鏀粯椤甸潰wx.miniProgram.redirectTo({url:`/pages/webview/pay?params=${JSON.stringify(params)}`})}鐒跺悗鎵€鏈夋祦绋嬮兘浜ょ粰灏忕▼搴忚嚜宸卞鐞嗭紝鍗筹細鍑嗗鍚庡彴鎺ュ彛鍙傛暟=>璋冪敤鍚庡彴鎺ュ彛鑾峰彇ping++璁¤垂瀵硅薄=>璋冪敤ping++sdkcharge瀵硅薄=>鑾峰彇ping++鏀粯缁撴灉/澶勭悊鏀粯缁撴灉銆傛敞鎰忥細openId涔熸槸闇€瑕佸湪灏忕▼搴忎腑鏀粯params鐨勶紝鍙互鍦ㄥ皬绋嬪簭涓幏鍙栥€備笌app浜や簰锛岃app璋冪敤鏀粯锛岄潪甯哥畝鍗曪紝缁檃pp浼犻€掑弬鏁帮紝璁゛pp璋冪敤瀵瑰簲鐨勫井淇?鏀粯瀹濇敮浠樺嵆鍙€傛垜浠殑椤甸潰鍏佽鐢ㄦ埛閫夋嫨寰俊鎴栬€呮敮浠樺疂鏀粯锛屾墍浠ラ€夋嫨涔嬪悗锛屾妸ping++鏀惰垂瀵硅薄缁檃pp锛歛synchandleAppPay(params){try{letchannelswitch(this.paySubChannel){case'wx_pub':channel='wx'涓柇锛沜ase'alipay_wap':channel='alipay'break;榛樿鍊硷細涓柇锛泒params.paySubChannel=channelif(!this.pingPayParams){const{data}=awaitapi.req(JSON.stringify(params),'payRequest')this.pingPayParams=data}//appPay鏄竴涓敤浜庝氦浜掔殑鍗忚appappPay({PingParam:JSON.stringify(this.pingPayParams),})//娉ㄥ唽js鍑芥暟methodCalledByNative('handlePayResult',(result)=>this.handlePayResult(result))this.$on("hook:beforeDestroy",()=>(window.handlePayResult=null));}catch(error){console.log(error)}},鑾峰彇Ping++鏀粯缁撴灉/澶勭悊鏀粯缁撴灉鏀粯瀹濈綉椤垫敮浠樻敮浠樺畬鎴愬悗浼氱洿鎺ュ埌successUrl,//app/寰俊jsapi/寰俊灏忕▼搴忔敮浠樹細鍘昏繖閲宎synchandlePayResult(result){console.log('ping++鏀粯缁撴灉锛?,result);鍒囨崲锛堢粨鏋滐級{case'success':this.$router.push({name:'payResult',params:{otherProp:this.otherProp,serialNo:this.payInfo.serialNo}})breakcase'fail':this.$router.push({name:'payResult',params:{result:'fail'}})breakcase'cancel':console.log('cancelpayment')breakcase'invalid':this.$toast.fail(this.paySubChannel==='wx_pub'?'鐢ㄦ埛娌℃湁瀹夎寰俊':'鐢ㄦ埛娌℃湁瀹夎鏀粯瀹?)breakdefault:break}},鏀粯缁撴灉椤甸潰asynccreated(){const{serialNo,otherProp,result}=this.$璺嚎銆俻aramsif(result==='fail'){//鍙互鐩存帴鏄剧ず鏀粯澶辫触return}this.otherProp=otherPropthis.serialNo=serialNothis.queryPayResult()}锛屾湰鏂囦粎渚涘涔犱娇鐢紝濡傛湁璋锛岃澶у摜鎸囨暀锛堥灎韬?/p>
