@@ -844,25 +844,40 @@ private void checkParameters(Map<String, String> parameters) {
844
844
throw new IllegalArgumentException ("Reqiured argument 'product_id' is missing when trade_type is 'NATIVE'." );
845
845
}
846
846
847
+ @ Override
848
+ public Map <String , String > getJsapiPayInfo (String openId ,String outTradeNo , double amt , String body ,String ip , String callbackUrl ) throws WxErrorException {
849
+ Map <String , String > packageParams = new HashMap <String , String >();
850
+ packageParams .put ("appid" , wxMpConfigStorage .getAppId ());
851
+ packageParams .put ("mch_id" , wxMpConfigStorage .getPartnerId ());
852
+ packageParams .put ("body" , body );
853
+ packageParams .put ("out_trade_no" , outTradeNo );
854
+ packageParams .put ("total_fee" , (int ) (amt * 100 ) + "" );
855
+ packageParams .put ("spbill_create_ip" , ip );
856
+ packageParams .put ("notify_url" , callbackUrl );
857
+ packageParams .put ("trade_type" , "JSAPI" );
858
+ packageParams .put ("openid" , openId );
859
+
860
+ return getPayInfo (packageParams );
861
+ }
862
+
863
+ @ Override
864
+ public Map <String , String > getNativePayInfo (String productId ,String outTradeNo , double amt , String body ,String ip , String callbackUrl ) throws WxErrorException {
865
+ Map <String , String > packageParams = new HashMap <String , String >();
866
+ packageParams .put ("appid" , wxMpConfigStorage .getAppId ());
867
+ packageParams .put ("mch_id" , wxMpConfigStorage .getPartnerId ());
868
+ packageParams .put ("body" , body );
869
+ packageParams .put ("out_trade_no" , outTradeNo );
870
+ packageParams .put ("total_fee" , (int ) (amt * 100 ) + "" );
871
+ packageParams .put ("spbill_create_ip" , ip );
872
+ packageParams .put ("notify_url" , callbackUrl );
873
+ packageParams .put ("trade_type" , "NATIVE" );
874
+ packageParams .put ("product_id" , productId );
875
+
876
+ return getPayInfo (packageParams );
877
+ }
878
+
847
879
@ Override
848
- public Map <String , String > getJSSDKPayInfo (String openId , String outTradeNo , double amt , String body , String tradeType , String ip , String callbackUrl )
849
- throws WxErrorException {
850
- Map <String , String > packageParams = new HashMap <String , String >();
851
- packageParams .put ("appid" , wxMpConfigStorage .getAppId ());
852
- packageParams .put ("mch_id" , wxMpConfigStorage .getPartnerId ());
853
- packageParams .put ("body" , body );
854
- packageParams .put ("out_trade_no" , outTradeNo );
855
- packageParams .put ("total_fee" , String .format ("%.0f" , amt * 100 ));
856
- packageParams .put ("spbill_create_ip" , ip );
857
- packageParams .put ("notify_url" , callbackUrl );
858
- packageParams .put ("trade_type" , tradeType );
859
- packageParams .put ("openid" , openId );
860
-
861
- return getJSSDKPayInfo (packageParams );
862
- }
863
-
864
- @ Override
865
- public Map <String , String > getJSSDKPayInfo (Map <String , String > parameters ) throws WxErrorException {
880
+ public Map <String , String > getPayInfo (Map <String , String > parameters ) throws WxErrorException {
866
881
WxMpPrepayIdResult wxMpPrepayIdResult = getPrepayId (parameters );
867
882
868
883
if (!"SUCCESS" .equalsIgnoreCase (wxMpPrepayIdResult .getReturn_code ())
@@ -889,7 +904,9 @@ public Map<String, String> getJSSDKPayInfo(Map<String, String> parameters) throw
889
904
payInfo .put ("nonceStr" , System .currentTimeMillis () + "" );
890
905
payInfo .put ("package" , "prepay_id=" + prepayId );
891
906
payInfo .put ("signType" , "MD5" );
892
- payInfo .put ("code_url" ,wxMpPrepayIdResult .getCode_url ());
907
+ if ("NATIVE" .equals (parameters .get ("trade_type" ))){
908
+ payInfo .put ("codeUrl" , wxMpPrepayIdResult .getCode_url ());
909
+ }
893
910
894
911
String finalSign = WxCryptUtil .createSign (payInfo , wxMpConfigStorage .getPartnerKey ());
895
912
payInfo .put ("paySign" , finalSign );
0 commit comments