提交修改

This commit is contained in:
quyixiao 2025-11-07 13:23:09 +08:00
parent 6ad4cccb2a
commit 8240104de7
4 changed files with 34 additions and 14 deletions

View File

@ -14,6 +14,10 @@ public class WxPayVO {
private String paySign;
// 商户号
private String mchid;
/***
* 签名类型
*/
private String signType = "RSA";
}

View File

@ -96,7 +96,7 @@ public class PemUtil {
* @return RSA私钥
*/
public static PrivateKey loadPrivateKeyFromPath(String keyPath) {
return loadPrivateKeyFromString(readKeyStringFromPath(keyPath));
return loadPrivateKeyFromString(keyPath);
}
/**

View File

@ -361,13 +361,11 @@ public class AppOrderController {
message.getMessageProperties().setDelay((second) * 1000); // 毫秒为单位指定此消息的延时时长 ,+ 1 尽量保证机器人跑完了再发送消息
return message;
});
}
WxPayVO vo = new WxPayVO();
Long timeStamp = System.currentTimeMillis() / 1000;
String nonceStr = UUID.randomUUID().toString().replaceAll("-", "").substring(0, 32);
String signatureStr = Stream.of(appid, String.valueOf(timeStamp), nonceStr, "prepay_id=" + prepay_id)
.collect(Collectors.joining("\n", "", "\n"));
@ -376,21 +374,16 @@ public class AppOrderController {
// "package": "prepay_id=wx201410272009395522657a690389285100",
// "signType": "RSA",
// "paySign": "oR9d",
String sign = JsapiPrepay.getSign(signatureStr, privateKey);
vo.setNonceStr(nonceStr);
vo.setTimeStamp(timeStamp);
vo.setMchid(mchid);
vo.setPaySign(sign);
vo.setPrepayId("prepay_id=" + prepay_id);
return R.ok().setData(vo);
}
@Describe("删除订单")
@RequestMapping("/delete")
public R add(@RequestBody VvTradeOrderDeleteDTO vvOrderRequest) {
@ -401,8 +394,6 @@ public class AppOrderController {
return R.ok();
}
/***
* 订单 妥投 /app/order/delivered
*/

View File

@ -3,10 +3,11 @@ package com.api.test;
import com.alibaba.fastjson.JSON;
import com.heyu.api.jsapi.JsapiPrepay;
import com.heyu.api.jsapi.WXPayUtility;
import com.heyu.api.jsapi.dto.CommonAmountInfo;
import com.heyu.api.jsapi.dto.DirectAPIv3JsapiPrepayRequest;
import com.heyu.api.jsapi.dto.DirectAPIv3JsapiPrepayResponse;
import com.heyu.api.jsapi.dto.JsapiReqPayerInfo;
import com.heyu.api.jsapi.dto.*;
import java.util.UUID;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class TestJSAPI {
@ -107,6 +108,30 @@ public class TestJSAPI {
try {
DirectAPIv3JsapiPrepayResponse response = client.doPay(request);
System.out.println(JSON.toJSONString(response));
String prepay_id = response.getPrepayId();
WxPayVO vo = new WxPayVO();
Long timeStamp = System.currentTimeMillis() / 1000;
String nonceStr = UUID.randomUUID().toString().replaceAll("-", "").substring(0, 32);
String signatureStr = Stream.of(appid, String.valueOf(timeStamp), nonceStr, "prepay_id=" + prepay_id)
.collect(Collectors.joining("\n", "", "\n"));
// "timeStamp": "1414561699",
// "nonceStr": "5K8264ILTKCH16CQ2502SI8ZNMTM67VS",
// "package": "prepay_id=wx201410272009395522657a690389285100",
// "signType": "RSA",
// "paySign": "oR9d",
String sign = JsapiPrepay.getSign(signatureStr, privateKey);
vo.setNonceStr(nonceStr);
vo.setTimeStamp(timeStamp);
vo.setMchid(mchid);
vo.setPaySign(sign);
vo.setPrepayId("prepay_id=" + prepay_id);
System.out.println(JSON.toJSONString(vo));
// TODO: 请求成功继续业务逻辑
System.out.println(response);
} catch (Exception e) {