From 2c99eb1b27b9fbad752aaeab8783399af32514e6 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 15 一月 2025 21:00:38 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/payment/TransferUtil.java | 28 ++++++++++++++++++----------
1 files changed, 18 insertions(+), 10 deletions(-)
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/payment/TransferUtil.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/payment/TransferUtil.java
index d503443..6ce1a8b 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/payment/TransferUtil.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/payment/TransferUtil.java
@@ -1,5 +1,6 @@
package com.ruoyi.account.util.payment;
+import cn.hutool.http.ContentType;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.http.HttpUtil;
@@ -30,6 +31,10 @@
* 商户号
*/
private static final String merchantNo = "888122600004175";
+ /**
+ * 平台-报备商户号
+ */
+ public static final String sysTradeMerchantNo = "777168500885852";
private static final String format = "yyyy-MM-dd HH:mm:ss";
/**
@@ -46,11 +51,12 @@
public static SinglePayResult singlePay(SinglePay singlePay){
String url = "https://www.joinpay.com/payment/pay/singlePay";
HttpRequest post = HttpUtil.createPost(url);
+ post.contentType(ContentType.JSON.toString());
JSONObject body = new JSONObject();
//商户编号
body.put("userNo", merchantNo);
//报备商户号
- body.put("tradeMerchantNo", singlePay.getTradeMerchantNo());
+// body.put("tradeMerchantNo", singlePay.getTradeMerchantNo());
//产品类型
body.put("productCode", "BANK_PAY_DAILY_ORDER");
//交易请求时间
@@ -128,6 +134,7 @@
public static SinglePayQueryResult singlePayQuery(String merchantOrderNo){
String url = "https://www.joinpay.com/payment/pay/singlePayQuery";
HttpRequest post = HttpUtil.createPost(url);
+ post.contentType(ContentType.JSON.toString());
JSONObject body = new JSONObject();
//商户编号
body.put("userNo", merchantNo);
@@ -171,6 +178,7 @@
public static AccountBalanceQueryResult accountBalanceQuery(){
String url = "https://www.joinpay.com/payment/pay/accountBalanceQuery";
HttpRequest post = HttpUtil.createPost(url);
+ post.contentType(ContentType.JSON.toString());
JSONObject body = new JSONObject();
//商户编号
body.put("userNo", merchantNo);
@@ -207,18 +215,12 @@
- public static String sign(JSONObject body) throws Exception{
+ public static String sign(JSONObject body) {
+ //构建字段顺序必须按照文档签名顺序
Set<Map.Entry<String, Object>> entries = body.entrySet();
- List<Map.Entry<String, Object>> infoIds = new ArrayList<Map.Entry<String, Object>>(entries);
- // 对所有传入参数按照字段名的 ASCII 码从小到大排序(字典序)
- Collections.sort(infoIds, new Comparator<Map.Entry<String, Object>>() {
- public int compare(Map.Entry<String, Object> o1, Map.Entry<String, Object> o2) {
- return (o1.getKey()).toString().compareTo(o2.getKey());
- }
- });
// 构造签名键值对的格式
StringBuilder sb = new StringBuilder();
- for (Map.Entry<String, Object> item : infoIds) {
+ for (Map.Entry<String, Object> item : entries) {
if (item.getKey() != null || item.getKey() != "") {
Object val = item.getValue();
if (!(val == "" || val == null)) {
@@ -227,7 +229,13 @@
}
}
sb.append(key);
+ log.info("待签名串:{}", sb.toString());
return MD5AndKL.MD5(sb.toString());
}
+
+ public static void main(String[] args) {
+ TransferUtil.accountBalanceQuery();
+ }
+
}
--
Gitblit v1.7.1