package Ġcom . pay . wechat Ċ Ċ import Ġandroid . content . Context Ċ import Ġcom . tencent . mm . opens dk . model pay . Pay Req Ċ import Ġcom . tencent . mm . opens dk . openapi . WX API Factory Ċ Ċ object ĠW X Pay Utils Ġ{ ĊĠĠĠ Ġ/** * ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ ProjectName : ĠĠĠ Ġ çĶ Ħ åĵģ éĽĨ ĊĠĠĠĠ Ġ* Ġ@ Package : ĊĠĠĠĠ Ġ* Ġ@ ClassName : ĊĠĠĠĠ Ġ* Ġ@ Description : ĠĠĠĠ Ġ å¼Ģå§ĭ å¾®ä¿¡ æĶ¯ä»ĺ ĊĠĠĠĠ Ġ* Ġ@ Author : ĠĠĠĠĠĠĠĠ Ġä½ľèĢħ ï¼ļ dyn SSD ĊĠĠĠĠ Ġ* Ġ@ Create Date : ĠĠĠĠĠ 2 0 2 0 / 3 / 1 7 Ġ 1 3 : 4 2 ĊĠĠĠĠ Ġ* Ġ@ Update User : ĠĠĠĠ ĠæĽ´æĸ° èĢħ ï¼ļ dyn SSD ĊĠĠĠĠ Ġ* Ġ@ Update Date : ĠĠĠĠĠ 2 0 2 0 / 3 / 1 7 Ġ 1 3 : 4 2 ĊĠĠĠĠ Ġ* Ġ@ Update Remark : ĠĠ ĠæĽ´æĸ° è¯´æĺİ ï¼ļ ĊĠĠĠĠ Ġ* Ġ@ Version : ĠĠĠĠĠĠĠĠ 1 . 0 ĊĠĠĠĠ Ġ* Ġ@ return Ġ 0 çŃ¾åĲį ä¸ºç©º Ġ- 1 Ġæ ² ¡ æľī å®īè£ħ å¾®ä¿¡ Ġ 1 Ġ è°ĥ èµ· äºĨ å¾®ä¿¡ æĶ¯ä»ĺ ĊĠĠĠĠ Ġ**/ ĊĠĠĠ Ġfun Ġstart Pay ( context : ĠContext , Ġapp id : ĠString , Ġpartner Id : ĠString , Ġpre pay Id : ĠString , Ġ Ġnonce Str : ĠString , Ġtime Stamp : ĠString , Ġsign : ĠString ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġreq Ġ= ĠPay Req () ĊĠĠĠĠĠĠĠ Ġval Ġmsg Api Ġ= ĠW X API Factory . create WX API ( context , Ġnull ) ĊĠĠĠĠĠĠĠ Ġmsg Api . register App ( appid ) ĊĊĠĠĠĠĠĠĠ Ġreq . appId Ġ= Ġapp id ĊĠĠĠĠĠĠĠ Ġreq . partner Id Ġ= Ġpartner Id ĊĠĠĠĠĠĠĠ Ġreq . pre pay Id Ġ= Ġpre pay Id ĊĠĠĠĠĠĠĠ Ġreq . package Value Ġ= Ġ" Sign = WX Pay " ĊĠĠĠĠĠĠĠ Ġreq . nonce Str Ġ= Ġnonce Str ĊĠĠĠĠĠĠĠ Ġreq . time Stamp Ġ= Ġtime Stamp Ċ Ċ // ĠĠĠĠĠĠĠ Ġvar Ġsign Params Ġ= Ġmap Of ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" appid " Ġto Ġapp id , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" nonce str " Ġto Ġ Ġnonce Str , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" package " Ġto Ġ Ġ" Sign = WX Pay ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" partner id " Ġto Ġ Ġpartner Id , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" pre pay id " Ġto Ġ Ġpre pay Id , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" timestamp " Ġto Ġ Ġtime Stamp ) Ċ // ĠĠĠĠĠĠĠ Ġvar Ġsign Ġ= Ġgen App Sign ( sign Params , Ġkey ) ĊĠĠĠĠĠĠĠ Ġreq . sign Ġ= Ġsign ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( sign . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 ĊĠĠĠĠĠĠĠ Ġ} Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! msg Api . is WX App Installed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmsg Api . send Req ( req ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġgen App Sign ( params : ĠMap < String , ĠString >, Ġkey : ĠString ): ĠString ? Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġsb Ġ= ĠStringBuilder () ĊĊĠĠĠĠĠĠĠ Ġparams . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append ("${ it . key } =${ it . value }& ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsb . append (" key =") ĊĠĠĠĠĠĠĠ Ġsb . append ( key ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠW X Pay MD 5 . getMessage Digest ( sb . toString (). toByteArray ()) ?. toUpperCase () ĊĠĠĠ Ġ} Ċ }