From fccdb9c8edeac721098bc2a646f8fe88aa3a1507 Mon Sep 17 00:00:00 2001 From: Cool <747682928@qq.com> Date: Wed, 4 Sep 2024 22:24:50 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E4=BB=98=E5=8A=9F=E8=83=BD=EF=BC=88?= =?UTF-8?q?=E6=9C=AA=E5=AE=9E=E7=8E=B0=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wxappserver/config/MyWxPayConfig.java | 6 ++-- .../controller/TestController.java | 26 ++++++++++-------- src/main/resources/application.yml | 5 ++-- .../resources/template/apiclient_cert.p12 | Bin 0 -> 2782 bytes 4 files changed, 21 insertions(+), 16 deletions(-) create mode 100644 src/main/resources/template/apiclient_cert.p12 diff --git a/src/main/java/com/bigdata/wxappserver/config/MyWxPayConfig.java b/src/main/java/com/bigdata/wxappserver/config/MyWxPayConfig.java index e7ee012..5009672 100644 --- a/src/main/java/com/bigdata/wxappserver/config/MyWxPayConfig.java +++ b/src/main/java/com/bigdata/wxappserver/config/MyWxPayConfig.java @@ -33,8 +33,10 @@ public class MyWxPayConfig { payConfig.setAppId(StringUtils.trimToNull(this.properties.getAppId())); payConfig.setMchId(StringUtils.trimToNull(this.properties.getMchId())); payConfig.setMchKey(StringUtils.trimToNull(this.properties.getSecret())); - payConfig.setKeyPath(StringUtils.trimToNull(this.properties.getPrivateKeyFilePath())); - + payConfig.setApiV3Key(StringUtils.trimToNull(this.properties.getApiV3Key())); + payConfig.setPrivateKeyPath(StringUtils.trimToNull(this.properties.getPrivateKeyFilePath())); + payConfig.setPrivateCertPath(StringUtils.trimToNull(this.properties.getWeChatPayCertFilePath())); + // payConfig.setPrivateKeyPath(); // 可以指定是否使用沙箱环境 payConfig.setUseSandboxEnv(false); diff --git a/src/main/java/com/bigdata/wxappserver/controller/TestController.java b/src/main/java/com/bigdata/wxappserver/controller/TestController.java index 02ddb88..e0c1218 100644 --- a/src/main/java/com/bigdata/wxappserver/controller/TestController.java +++ b/src/main/java/com/bigdata/wxappserver/controller/TestController.java @@ -1,8 +1,9 @@ package com.bigdata.wxappserver.controller; import com.bigdata.wxappserver.result.Result; -import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest; +import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderV3Request; import com.github.binarywang.wxpay.bean.result.WxPayOrderQueryResult; +import com.github.binarywang.wxpay.bean.result.enums.TradeTypeEnum; import com.github.binarywang.wxpay.service.WxPayService; import lombok.extern.slf4j.Slf4j; @@ -29,17 +30,20 @@ public class TestController { @PostMapping("/unifiedOrder") public Result unifiedOrder() throws Exception { String orderCode = UUID.randomUUID().toString().replace("-", ""); - WxPayUnifiedOrderRequest wxPayUnifiedOrderRequest = new WxPayUnifiedOrderRequest(); - wxPayUnifiedOrderRequest.setBody("测试"); - wxPayUnifiedOrderRequest.setNotifyUrl("payCallBack"); - wxPayUnifiedOrderRequest.setOutTradeNo(orderCode); - wxPayUnifiedOrderRequest.setOpenid(UUID.randomUUID().toString().replace("-", "")); - wxPayUnifiedOrderRequest.setSpbillCreateIp("127.0.0.1"); - wxPayUnifiedOrderRequest.setSignType("MD5"); - wxPayUnifiedOrderRequest.setTotalFee(50); - wxPayUnifiedOrderRequest.setTradeType("JSAPI"); + WxPayUnifiedOrderV3Request wxPayUnifiedOrderRequest = new WxPayUnifiedOrderV3Request(); - return Result.success(wxService.unifiedOrder(wxPayUnifiedOrderRequest)); + wxPayUnifiedOrderRequest.setDescription("商品描述"); + wxPayUnifiedOrderRequest.setOutTradeNo(orderCode); + wxPayUnifiedOrderRequest.setNotifyUrl("https://49.233.248.140:8082/order/loadData"); + + WxPayUnifiedOrderV3Request.Amount amount = new WxPayUnifiedOrderV3Request.Amount(); + amount.setTotal(100); // 订单总金额,单位为分 + wxPayUnifiedOrderRequest.setAmount(amount); + WxPayUnifiedOrderV3Request.Payer payer = new WxPayUnifiedOrderV3Request.Payer(); + payer.setOpenid(UUID.randomUUID().toString().replace("-", "")); // 需要获取用户的OpenID + wxPayUnifiedOrderRequest.setPayer(payer); + wxService.createOrderV3(TradeTypeEnum.JSAPI, wxPayUnifiedOrderRequest); + return Result.success(); } @PostMapping("/queryOrder") diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index ab07ec3..225351a 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -19,10 +19,9 @@ dx: appId: wx865aefa5a7115ae0 secret: df0817d59696a6160de2770222d8ec53 mchId: 1684540409 - mchSerialNo: 250414966CEADA52CF0A989445FB3190C5A82F40 - privateKeyFilePath: classpath:template/bddf2dc508484b6bb086fe748e813260.pem + mchSerialNo: 1E860B81D50719F1AA6AB92F00033A222F81C72C + privateKeyFilePath: classpath:template/wechatpay_429733475DFDCEBE2A6135485F984EE337297F4F.pem apiV3Key: d5a58d44588b42cbbe01daa5cfa4e792 - #未填写及以下 weChatPayCertFilePath: classpath:template/wechatpay_429733475DFDCEBE2A6135485F984EE337297F4F.pem notifyUrl: https://www.weixin.qq.com/wxpay/pay.php refundNotifyUrl: https://www.weixin.qq.com/wxpay/pay.php diff --git a/src/main/resources/template/apiclient_cert.p12 b/src/main/resources/template/apiclient_cert.p12 new file mode 100644 index 0000000000000000000000000000000000000000..b5f65f10f36107c525a3b5998417097b634f895c GIT binary patch literal 2782 zcmY+^cRU-476ZMACe71U~KkD9%u6sbL`t)ddMw%U}`rZ!b2 zMywXsj2hQYjpu$o@4frpALnyE=XcKM{P{&v#}5W5(_?|0{-3h|JeYMSE-@@{y-0;MlyhDYfzd_<0Ua(R8+Kp zP%OCj&Tt+H{C?T{yz)zZ!6St~I@MfX_==k|G9d~bAMdJSLDE- zF&)|;6{yS~XqE2&)06zNBpaG335PE`QbO}`)m~ZWW{psEW%ZKbE&{>)n!7hx;&;MX ze$SGuS9fe%G-0N!X(=Spsav=ESC>*HB{WhU>=rZ+SB&H!Plm_d8I@+_hfp7UU_SH+ zO7l&mAIQ}`mXE$Kp0bzCXz|%y0^TD&{(01g|7F8UO^wRRk!q1#*|r@%6xeIb6DgD) zM~k;EWzeu^_zTRKeE0S<5+WgCsmlZ-{^C(Un74bm-y=!7GEUOZ*!Hib)649j*a*p_ zG{mk*fE2)WqBC7tMtZRV8ni2ANH`5TT-J7-JqWbr1q>+_G&=HC$r zy`z$oYr7n%sPkIQ+Blz!`O=Dmy3FH!iutH1o1J6F3}i=Hn)~Hy&1XzBu}+mNpO1Y%c( zxdd7TnGk9cvChW&*|4We*VhkPR4!rlb5KHt0X6%Ey=xxTjnF*lMSmi9e7uj(>}!s(6(ugJ`#`1*;tEx5_Y-ltdEJ>=pP6+FRv{rrxoR1m(FW$sL9@&U= z&9_veVu1#3E_)-xQ}C$bf>oof=z9zK5rb?mPs|ANI*zSR+@Ac|-r{zZ6r2`UtgSrO z_l^I&q6qKx)57(;jtHj<6sO>&yBr^RV6VJ>{)v3=e5oWX%Bw?=82heng}pb2n%yIC zW4{UAsD+5*T*hw7(<@}{K7Ym&_}1RKFpF!r-7=0pcpdQArHpS@{X@nz@~X9hakFFh zQ<~*HV7F+5dyY2SOsK@zTZEtN8^YFhvtiznN>E#9jN2&Z8Fgc6x}i9LRUXcH*v+zMlL?QAo1z{z;{8S6BrA@T*S5)Wkn79 z4}(x3RW=s9c>(46|LF+&TSw5rQGstYP5$3Hf-iJ*wJPjX|7+EzO3Hd8?|i03CklVS z)L8${sq%(QbFh3Q1H#8(T8=*eo^{7V$(&ATt~}b7K(mbzc@=q&{4poz5g(gJYB`k@ zIW?9?WJfrqDD^B5RvR;oN0QqP=apC?Ij?)T2SGYvU}xje8#H$aHa)(>7~JKVhZa8* zVL^m+M>&)@^D~kjdJ+UV(uk|zGASJAn07bzEp!_ULU-vm)nrU@T08;SKTP&XaW;N( zdPkQJp^J!qhx&NyHtr@LR{dHv8vxvaG<~bB>1Jk^l&+qzjS={SB;c!1Oe#fr_@hPmQb7MxH z`@6wxstSn!6%=?sf6R7gxjfUlw$%(VCiQEk&M6ly^GCCpQa)&LbAg!7t?K%q^MS?O z`Q2_y&!_n_-g<8f!i(E>hC90&R3D#LY9x1UsZMy;!bk}Q?H%5BOH;>1YUt?{kwo66 zh_G}P+FuiUf-2~;+>^;NGigfLQj#f`qyg}KA3U}zb(AqARxSyp`v^Jc$*fFM|u?*iyZ`=Ceyf_fX z%9Wz4fM&w2lN7ZIQKTjtbPmq&MPD3+^L#ZV9@dy+;O*_iA2`f=J4?N)DUO4t&A*?ICY5)mlvdW2ODn!b zQQbG9+gL)+#>_5Z&mPZwHPH%da9JjPwdj6`fPVR$UC(W!_cqdea810}Rnupq@Ux#2 zw>33RGt>MDmOWa(3lNS!PFSb&#=f;X#Knr*fi;yJJS`4NZ+e=E&)ISnX>Q6tF5Js$ zbGD2OsjJ>UN#96?M;eWofvY^p?)x@#be(^~CfAye!JcDpjv zb3w;1SM2k`#|rDOu~rUwtXAb>Pro{!>o`6a9cn5URmQ$Jp9^dL&f(O%6c6InhTyao z2SdwO(QqirZ|rmSk8+DIU5Y@$By(-S-Gzr$Y^---fdvWmN>T<*A&34tYU0nmN=q_Rm}FA`