@@ -821,25 +821,40 @@ private void checkParameters(Map<String, String> parameters) {
821
821
throw new IllegalArgumentException ("Reqiured argument 'product_id' is missing when trade_type is 'NATIVE'." );
822
822
}
823
823
824
+ @ Override
825
+ public Map <String , String > getJsapiPayInfo (String openId ,String outTradeNo , double amt , String body ,String ip , String callbackUrl ) throws WxErrorException {
826
+ Map <String , String > packageParams = new HashMap <String , String >();
827
+ packageParams .put ("appid" , wxMpConfigStorage .getAppId ());
828
+ packageParams .put ("mch_id" , wxMpConfigStorage .getPartnerId ());
829
+ packageParams .put ("body" , body );
830
+ packageParams .put ("out_trade_no" , outTradeNo );
831
+ packageParams .put ("total_fee" , (int ) (amt * 100 ) + "" );
832
+ packageParams .put ("spbill_create_ip" , ip );
833
+ packageParams .put ("notify_url" , callbackUrl );
834
+ packageParams .put ("trade_type" , "JSAPI" );
835
+ packageParams .put ("openid" , openId );
836
+
837
+ return getPayInfo (packageParams );
838
+ }
839
+
840
+ @ Override
841
+ public Map <String , String > getNativePayInfo (String productId ,String outTradeNo , double amt , String body ,String ip , String callbackUrl ) throws WxErrorException {
842
+ Map <String , String > packageParams = new HashMap <String , String >();
843
+ packageParams .put ("appid" , wxMpConfigStorage .getAppId ());
844
+ packageParams .put ("mch_id" , wxMpConfigStorage .getPartnerId ());
845
+ packageParams .put ("body" , body );
846
+ packageParams .put ("out_trade_no" , outTradeNo );
847
+ packageParams .put ("total_fee" , (int ) (amt * 100 ) + "" );
848
+ packageParams .put ("spbill_create_ip" , ip );
849
+ packageParams .put ("notify_url" , callbackUrl );
850
+ packageParams .put ("trade_type" , "NATIVE" );
851
+ packageParams .put ("product_id" , productId );
852
+
853
+ return getPayInfo (packageParams );
854
+ }
855
+
824
856
@ Override
825
- public Map <String , String > getJSSDKPayInfo (String openId , String outTradeNo , double amt , String body , String tradeType , String ip , String callbackUrl )
826
- throws WxErrorException {
827
- Map <String , String > packageParams = new HashMap <String , String >();
828
- packageParams .put ("appid" , wxMpConfigStorage .getAppId ());
829
- packageParams .put ("mch_id" , wxMpConfigStorage .getPartnerId ());
830
- packageParams .put ("body" , body );
831
- packageParams .put ("out_trade_no" , outTradeNo );
832
- packageParams .put ("total_fee" , String .format ("%.0f" , amt * 100 ));
833
- packageParams .put ("spbill_create_ip" , ip );
834
- packageParams .put ("notify_url" , callbackUrl );
835
- packageParams .put ("trade_type" , tradeType );
836
- packageParams .put ("openid" , openId );
837
-
838
- return getJSSDKPayInfo (packageParams );
839
- }
840
-
841
- @ Override
842
- public Map <String , String > getJSSDKPayInfo (Map <String , String > parameters ) throws WxErrorException {
857
+ public Map <String , String > getPayInfo (Map <String , String > parameters ) throws WxErrorException {
843
858
WxMpPrepayIdResult wxMpPrepayIdResult = getPrepayId (parameters );
844
859
845
860
if (!"SUCCESS" .equalsIgnoreCase (wxMpPrepayIdResult .getReturn_code ())
@@ -866,7 +881,9 @@ public Map<String, String> getJSSDKPayInfo(Map<String, String> parameters) throw
866
881
payInfo .put ("nonceStr" , System .currentTimeMillis () + "" );
867
882
payInfo .put ("package" , "prepay_id=" + prepayId );
868
883
payInfo .put ("signType" , "MD5" );
869
- payInfo .put ("code_url" ,wxMpPrepayIdResult .getCode_url ());
884
+ if ("NATIVE" .equals (parameters .get ("trade_type" ))){
885
+ payInfo .put ("codeUrl" , wxMpPrepayIdResult .getCode_url ());
886
+ }
870
887
871
888
String finalSign = WxCryptUtil .createSign (payInfo , wxMpConfigStorage .getPartnerKey ());
872
889
payInfo .put ("paySign" , finalSign );
0 commit comments