|
|
@@ -1,6 +1,9 @@
|
|
|
package com.dataeasy.server.pay;
|
|
|
|
|
|
+import com.github.binarywang.wxpay.bean.notify.SignatureHeader;
|
|
|
import com.github.binarywang.wxpay.bean.notify.WxPayNotifyResponse;
|
|
|
+import com.github.binarywang.wxpay.bean.notify.WxPayNotifyV3Response;
|
|
|
+import com.github.binarywang.wxpay.bean.notify.WxPayNotifyV3Result;
|
|
|
import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult;
|
|
|
import com.github.binarywang.wxpay.bean.order.WxPayMpOrderResult;
|
|
|
import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest;
|
|
|
@@ -33,25 +36,11 @@ public class PayService {
|
|
|
private WxPayService wxPayService;
|
|
|
|
|
|
public WxPayUnifiedOrderV3Result.JsapiResult createDdzqOrder()throws WxPayException {
|
|
|
-// String endPayMoney = new BigDecimal("0.01").multiply(BigDecimal.valueOf(100)).stripTrailingZeros().toPlainString(); //将金额转换为分
|
|
|
- WxPayUnifiedOrderRequest.WxPayUnifiedOrderRequestBuilder builder = WxPayUnifiedOrderRequest.newBuilder();
|
|
|
- WxPayUnifiedOrderRequest wxOrder = builder
|
|
|
- .body("测试测试商品描述") //商品描述
|
|
|
- .openid("oaeVR7FhHMDu3iqUOhcTgJJVdOM0") //用户openid
|
|
|
- .outTradeNo("20250304000001") //商户订单号
|
|
|
-// .spbillCreateIp("0.0.0.0") //终端IP
|
|
|
-// .totalFee(endPayMoney) // 支付收款金额 100分 注意:单位(分)
|
|
|
- .totalFee(1) //测试时可以设置一分钱
|
|
|
- .timeStart(DateTimeUtils.yyyyMMddHHmmssDateTime(0)) //交易起始时间
|
|
|
- .timeExpire(DateTimeUtils.yyyyMMddHHmmssDateTime(10)) //交易结束时间
|
|
|
- .tradeType(WxPayConstants.TradeType.JSAPI).build();
|
|
|
- wxOrder.setSignType("MD5");
|
|
|
-// wxOrder.setNotifyUrl("http://ra36qh.natappfree.cc/pay/ddzqOrder"); //不测试时需要放开注释
|
|
|
WxPayUnifiedOrderV3Request wxOrderV3 = new WxPayUnifiedOrderV3Request();
|
|
|
wxOrderV3.setDescription("测试商品得描述书");
|
|
|
- wxOrderV3.setOutTradeNo("20250305000001");
|
|
|
- wxOrderV3.setTimeExpire("2025-03-05T10:34:56+08:00");
|
|
|
- wxOrderV3.setNotifyUrl("http://ra36qh.natappfree.cc/pay/ddzqOrder");
|
|
|
+ wxOrderV3.setOutTradeNo("20250305000007");
|
|
|
+ wxOrderV3.setTimeExpire("2025-03-05T16:34:56+08:00");
|
|
|
+ wxOrderV3.setNotifyUrl("http://hcedwe.natappfree.cc/pay/ddzqOrder");
|
|
|
WxPayUnifiedOrderV3Request.Amount amount = new WxPayUnifiedOrderV3Request.Amount();
|
|
|
WxPayUnifiedOrderV3Request.Payer payer = new WxPayUnifiedOrderV3Request.Payer();
|
|
|
payer.setOpenid("oSoRX7Ll01EB7XfsYt5aVrF_KfLU");
|
|
|
@@ -59,17 +48,26 @@ public class PayService {
|
|
|
amount.setTotal(1);
|
|
|
wxOrderV3.setAmount(amount);
|
|
|
return wxPayService.createOrderV3(TradeTypeEnum.JSAPI, wxOrderV3);
|
|
|
-// return wxPayService.createOrder(wxOrder);
|
|
|
}
|
|
|
|
|
|
public String ddzqOrder(HttpServletRequest request) {
|
|
|
|
|
|
try {
|
|
|
String xmlResult = IOUtils.toString(request.getInputStream(), request.getCharacterEncoding());
|
|
|
- WxPayOrderNotifyResult payResult = wxPayService.parseOrderNotifyResult(xmlResult);
|
|
|
+// WxPayOrderNotifyResult payResult = wxPayService.parseOrderNotifyResult(xmlResult);
|
|
|
+ SignatureHeader signatureHeader = new SignatureHeader();
|
|
|
+ signatureHeader.setNonce(request.getHeader("Wechatpay-Nonce"));
|
|
|
+ signatureHeader.setSignature(request.getHeader("Wechatpay-Signature"));
|
|
|
+ signatureHeader.setSerial(request.getHeader("Wechatpay-Serial"));
|
|
|
+ signatureHeader.setTimeStamp(request.getHeader("Wechatpay-Timestamp"));
|
|
|
+ WxPayNotifyV3Result payResult1 = wxPayService.parseOrderNotifyV3Result(xmlResult, signatureHeader);
|
|
|
+ WxPayNotifyV3Result.DecryptNotifyResult payResult = payResult1.getResult();
|
|
|
String masterOrderId = payResult.getOutTradeNo();//内部订单记录ID
|
|
|
String wxTransactionId = payResult.getTransactionId();//商户号订单ID
|
|
|
- BigDecimal wxRealPayAmount = new BigDecimal(BaseWxPayResult.fenToYuan(payResult.getTotalFee()));//微信真实支付金额
|
|
|
+ log.info("内部订单ID:{}", masterOrderId);
|
|
|
+ log.info("商户号订单ID:{}", wxTransactionId);
|
|
|
+ log.info("微信真实支付金额:{}", payResult.getAmount());
|
|
|
+// BigDecimal wxRealPayAmount = new BigDecimal(BaseWxPayResult.fenToYuan(payResult.getTotalFee()));//微信真实支付金额
|
|
|
// StOrder stOrder = stOrderMapper.selectByEOrderId(masterOrderId);
|
|
|
// Date nowTime = new Date();
|
|
|
// if(stOrder.getPayStatus() == 1){
|
|
|
@@ -100,10 +98,10 @@ public class PayService {
|
|
|
// }
|
|
|
|
|
|
log.info("微信支付,回调处理成功");
|
|
|
- return WxPayNotifyResponse.success("处理成功!");
|
|
|
+ return WxPayNotifyV3Response.success("处理成功!");
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
- return WxPayNotifyResponse.fail(e.getMessage());
|
|
|
+ return WxPayNotifyV3Response.fail(e.getMessage());
|
|
|
}
|
|
|
|
|
|
}
|