package Ġcom . hu ot u . android . m if ang . util Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Handler Ċ import Ġandroid . os . Message Ċ import Ġandroid . text . TextUtils Ċ import Ġandroid . util . Log Ċ Ċ import Ġcom . alipay . sdk . app . Pay Task Ċ import Ġcom . hu ot u . android . library . lib pay . alipay . Ali Order Info Ċ import Ġcom . hu ot u . android . library . lib pay . alipay V 2 . Ali Pay Result V 2 Ċ import Ġcom . hu ot u . android . library . lib pay . weixin . Wei X in Order Info Ċ import Ġcom . hu ot u . android . library . lib pay . weixin . Wei X in Pay Info Ċ import Ġcom . hu ot u . android . library . lib pay . weixin . Wei X in Pay Util Ċ import Ġcom . hu ot u . android . m if ang . base . Base Application Ċ import Ġcom . hu ot u . android . m if ang . bean . Pay Model Ċ import Ġcom . hu ot u . android . m if ang . bean . PayOrder Bean Ċ import Ġjava . util .* ĊĊ Ċ /** Ċ Ġ* ĠCreated Ġby Ġj inx iang dong Ġon Ġ 2 0 1 7 / 1 2 / 2 0 . Ċ Ġ*/ Ċ class ĠPay Utils Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠSDK _ Ali _ PAY _ V 2 _ FLAG Ġ= Ġ 6 0 0 1 ĊĠĠĠ Ġ} ĊĊĊĊĠĠĠ Ġ// ĠĠĠ Ġpublic Ġstatic Ġvoid Ġpay Success Callback ( Context Ġcontext , ĠBase Resp Ġresp ) Ġ{ ĊĠĠĠ Ġ// ĠĠĠĠĠĠĠ ĠPay Resp Ġpay Resp Ġ= Ġ( Pay Resp ) Ġresp ; ĊĠĠĠ Ġ// ĠĠĠĠĠĠĠ ĠBundle Ġbundle Ġ= Ġnew ĠBundle (); ĊĠĠĠ Ġ// ĠĠĠĠĠĠĠ Ġif Ġ( pay Resp Ġ!= Ġnull Ġ&& Ġpay Resp . ext Data Ġ!= Ġnull ) Ġ{ ĊĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠ ĠW x Pay Success Callback Model Ġext Data Ġ= ĠJSON Util . get Gson (). fromJson ( pay Resp . ext Data , ĠW x Pay Success Callback Model . class ); ĊĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . put Serializable ( Constants . HU OT U _ PAY _ CALLBACK _ KEY , Ġext Data ); ĊĠĠĠ Ġ// ĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ// ĠĠĠĠĠĠĠ ĠMy Broadcast Receiver . send Broadcast ( ĠBase Application . single , ĠMy Broadcast Receiver . ACTION _ PAY _ SUCCESS , Ġbundle ); ĊĠĠĠ Ġ// ĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠĠĠ Ġpublic Ġstatic Ġvoid Ġwx Pay Cancel Callback ( ĠBase Resp Ġresp ){ ĊĠĠĠ Ġ// ĠĠĠĠĠĠĠ ĠPay Resp Ġpay Resp Ġ= Ġ( Pay Resp ) Ġresp ; ĊĠĠĠ Ġ// ĠĠĠĠĠĠĠ ĠBundle Ġbundle Ġ= Ġnew ĠBundle (); ĊĠĠĠ Ġ// ĠĠĠĠĠĠĠ Ġif Ġ( pay Resp Ġ!= Ġnull Ġ&& Ġpay Resp . ext Data Ġ!= Ġnull ) Ġ{ ĊĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠ ĠW x Pay Success Callback Model Ġext Data Ġ= ĠJSON Util . get Gson (). fromJson ( pay Resp . ext Data , ĠW x Pay Success Callback Model . class ); ĊĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . put Serializable ( Constants . HU OT U _ PAY _ CALLBACK _ KEY , Ġext Data ); ĊĠĠĠ Ġ// ĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ// ĠĠĠĠĠĠĠ ĠMy Broadcast Receiver . send Broadcast ( Base Application . single Ġ, ĠMy Broadcast Receiver . ACTION _ WX _ PAY _ CANCEL _ CALLBACK , Ġbundle ); ĊĠĠĠ Ġ// ĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠĠĠ Ġpublic Ġstatic Ġvoid Ġwx Pay Error Callback ( Base Resp Ġresp ){ ĊĠĠĠ Ġ// ĠĠĠĠĠĠĠ ĠPay Resp Ġpay Resp Ġ= Ġ( Pay Resp ) Ġresp ; ĊĠĠĠ Ġ// ĠĠĠĠĠĠĠ ĠBundle Ġbundle Ġ= Ġnew ĠBundle (); ĊĠĠĠ Ġ// ĠĠĠĠĠĠĠ Ġif Ġ( pay Resp Ġ!= Ġnull Ġ&& Ġpay Resp . ext Data Ġ!= Ġnull ) Ġ{ ĊĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠ ĠW x Pay Success Callback Model Ġext Data Ġ= ĠJSON Util . get Gson (). fromJson ( pay Resp . ext Data , ĠW x Pay Success Callback Model . class ); ĊĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . put Serializable ( Constants . HU OT U _ PAY _ CALLBACK _ KEY , Ġext Data ); ĊĠĠĠ Ġ// ĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ// ĠĠĠĠĠĠĠ ĠMy Broadcast Receiver . send Broadcast ( Base Application . single Ġ, ĠMy Broadcast Receiver . ACTION _ WX _ PAY _ ERROR _ CALLBACK , Ġbundle ); ĊĠĠĠ Ġ// ĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æĶ¯ä»ĺ å®Ŀ æĶ¯ä»ĺ ĊĠĠĠĠ Ġ* Ġ@ param Ġpay Order Bean ĊĠĠĠĠ Ġ* Ġ@ param Ġat y ĊĠĠĠĠ Ġ* Ġ@ param Ġpay Info ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġali Native Pay ( Ġali Order Info : ĠAli Order Info Ġ, Ġat y : ĠActivity , Ġpay Info : ĠString , Ġhandler : ĠHandler ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġpay Runnable Ġ= ĠRunnable Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġal ipay Ġ= ĠPay Task ( at y ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġal ipay . pay V 2 ( pay Info , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i (" msp ", Ġresult . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// todo Ġ æĶ¯ä»ĺ å®Ŀ Ġ æĶ¯ä»ĺ å®ĮæĪĲ åĽŀè°ĥ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// EventBus . getDefault (). post ( new ĠAli Pay Return Event ( Ġresult Ġ, Ġpay Order Bean Ġ)); ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmsg Ġ= ĠMessage () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmsg . what Ġ= ĠSDK _ Ali _ PAY _ V 2 _ FLAG ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġali Pay Result V 2 Ġ= ĠAli Pay Result V 2 ( result , Ġali Order Info ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmsg . obj Ġ= Ġali Pay Result V 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandler . sendMessage ( msg ) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġpay Thread Ġ= ĠThread ( pay Runnable ) ĊĠĠĠĠĠĠĠ Ġpay Thread . start () ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ å¾®ä¿¡ æĶ¯ä»ĺ ĊĠĠĠĠ Ġ* Ġ@ param Ġat y ĊĠĠĠĠ Ġ* Ġ@ param Ġm Handler ĊĠĠĠĠ Ġ* Ġ@ param Ġpay Model ĊĠĠĠĠ Ġ*/ ĊĠĠĠĠ Ġfun Ġwx Pay ( context Ġ: ĠContext Ġ, Ġm Handler Ġ: ĠHandler , Ġpay Model : Pay Model Ġ) Ġ{ ĊĊĊĠĠĠĠĠĠĠ Ġif Ġ( TextUtils . isEmpty ( pay Model . wx AppId ) Ġ|| ĠText Utils . isEmpty ( pay Model . wx App M ch Id )) Ġ{// ç¼º å°ĳ æĶ¯ä»ĺ ä¿¡æģ¯ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast Utils . single . show Toast (" ç¼º å°ĳ å¾®ä¿¡ æĶ¯ä»ĺ App id , me ch id ä¿¡æģ¯ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġwe i X in Order Info Ġ= Wei X in Order Info () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwe i X in Order Info . body Ġ= Ġpay Model . detail ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwe i X in Order Info . order No Ġ= Ġpay Model . trade No Ġ+ Ġ"_" Ġ+ Ġpay Model . custom Id Ġ+ Ġ"_" Ġ+ ĠRandom (). nextInt ( 9 9 9 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwe i X in Order Info . attach Ġ= Ġpay Model . attach ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwe i X in Order Info . total _ fee Ġ= Ġpay Model . amount ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġwe i X in Pay Info Ġ= ĠWe i X in Pay Info ( pay Model . wx AppId Ġ, Ġpay Model . wx App M ch Id , Ġ"" Ġ, Ġpay Model . notify url Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠWe i X in Pay Util ( Ġcontext Ġ, Ġm Handler Ġ, Ġwe i X in Pay Info Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. send Pay Req ( Ġpay Model . wx Pre Pay Id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ, pay Model .` package ` Ġ, Ġpay Model . nonce Str , Ġpay Model . time Stamp , pay Model . sign , pay Model . ext Data ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// var Ġwe i X in Pay Util Ġ= ĠWe i X in Pay Util ( at y , Ġm Handler , Ġwe i X in Pay Info ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// wei X in Pay Util . pay ( wei X in Order Info ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊ Ċ } Ċ