提交修改

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 paySign;
// 商户号 // 商户号
private String mchid; private String mchid;
/***
* 签名类型
*/
private String signType = "RSA";
} }

View File

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

View File

@ -3,10 +3,11 @@ package com.api.test;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.heyu.api.jsapi.JsapiPrepay; import com.heyu.api.jsapi.JsapiPrepay;
import com.heyu.api.jsapi.WXPayUtility; import com.heyu.api.jsapi.WXPayUtility;
import com.heyu.api.jsapi.dto.CommonAmountInfo; import com.heyu.api.jsapi.dto.*;
import com.heyu.api.jsapi.dto.DirectAPIv3JsapiPrepayRequest;
import com.heyu.api.jsapi.dto.DirectAPIv3JsapiPrepayResponse; import java.util.UUID;
import com.heyu.api.jsapi.dto.JsapiReqPayerInfo; import java.util.stream.Collectors;
import java.util.stream.Stream;
public class TestJSAPI { public class TestJSAPI {
@ -107,6 +108,30 @@ public class TestJSAPI {
try { try {
DirectAPIv3JsapiPrepayResponse response = client.doPay(request); DirectAPIv3JsapiPrepayResponse response = client.doPay(request);
System.out.println(JSON.toJSONString(response)); 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: 请求成功继续业务逻辑 // TODO: 请求成功继续业务逻辑
System.out.println(response); System.out.println(response);
} catch (Exception e) { } catch (Exception e) {