From 736e3d53e1cff01fdf6715f2416342149658c1ed Mon Sep 17 00:00:00 2001 From: winter <664946893@qq.com> Date: Sat, 2 Nov 2024 22:10:59 +0800 Subject: [PATCH] fix --- .../controller/callback/AliPayController.java | 3 +- .../service/pay/alipay/api/AliPayApi.java | 67 +++++++++++++------ 2 files changed, 49 insertions(+), 21 deletions(-) diff --git a/mallinkCallback/src/main/java/com/iformall/controller/callback/AliPayController.java b/mallinkCallback/src/main/java/com/iformall/controller/callback/AliPayController.java index f4cfac41c..d62d29ef9 100644 --- a/mallinkCallback/src/main/java/com/iformall/controller/callback/AliPayController.java +++ b/mallinkCallback/src/main/java/com/iformall/controller/callback/AliPayController.java @@ -96,7 +96,8 @@ public class AliPayController extends BaseController { writeResponse(response,"Param Error!state is null."); return; } - String tenantId = new String(Base64Util.decode(state)); + //String tenantId = new String(Base64Util.decode(state)); + String tenantId = state; if (StringUtils.isBlank(tenantId)) { writeResponse(response,"Param Error!tenantId is null."); return; diff --git a/mallinkService/src/main/java/com/iformall/service/pay/alipay/api/AliPayApi.java b/mallinkService/src/main/java/com/iformall/service/pay/alipay/api/AliPayApi.java index d4c6ca864..cbc0f2712 100644 --- a/mallinkService/src/main/java/com/iformall/service/pay/alipay/api/AliPayApi.java +++ b/mallinkService/src/main/java/com/iformall/service/pay/alipay/api/AliPayApi.java @@ -18,6 +18,7 @@ import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.Date; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -72,29 +73,55 @@ public class AliPayApi { * @throws UnsupportedEncodingException */ public static String getAppAuthUrl(Config config,String callback,String param) throws UnsupportedEncodingException { - String paramstr = ""; +// String paramstr = ""; +// if (!StringUtils.isBlank(param)) { +// paramstr = "&state="+Base64Util.encode(param).replaceAll("=", ""); +// } +// return "https://openauth.alipay.com/oauth2/appToAppAuth.htm?app_id="+config.appId+"&application_type=TINYAPP,WEBAPP,MOBILEAPP,PUBLICAPP&redirect_uri="+URLEncoder.encode(callback, "utf-8")+paramstr; + String state = ""; if (!StringUtils.isBlank(param)) { - paramstr = "&state="+Base64Util.encode(param).replaceAll("=", ""); + state = param; } - return "https://openauth.alipay.com/oauth2/appToAppAuth.htm?app_id="+config.appId+"&application_type=TINYAPP,WEBAPP,MOBILEAPP,PUBLICAPP&redirect_uri="+URLEncoder.encode(callback, "utf-8")+paramstr; -// String state = ""; -// if (!StringUtils.isBlank(param)) { -// state = param; + Map map = new LinkedHashMap(); + map.put("platformCode", "O"); + map.put("taskType", "INTERFACE_AUTH"); + + Map agentOpParam = new LinkedHashMap(); + agentOpParam.put("redirectUri", callback); + String[] apptypes = new String[]{"TINYAPP","WEBAPP","MOBILEAPP","PUBLICAPP"}; + agentOpParam.put("appTypes", apptypes); + agentOpParam.put("isvAppId", config.appId); + agentOpParam.put("state", state); +// if (StringUtils.isNotBlank(state)) { +// agentOpParam.put("state", Base64Util.encode(state).replaceAll("=", "")); // } -// Map map = new HashMap(); -// map.put("platformCode", "0"); -// map.put("taskType", "INTERFACE_AUTH"); -// -// Map agentOpParam = new HashMap(); -// agentOpParam.put("redirectUri", callback); -// String[] apptypes = new String[]{"MOBILEAPP","WEBAPP","PUBLICAPP","TINYAPP","BASEAPP"}; -// agentOpParam.put("appTypes", apptypes); -// agentOpParam.put("isvAppId", config.appId); -// agentOpParam.put("state", Base64Util.encode(param)); -// -// map.put("agentOpParam", agentOpParam); -// -// return "https://b.alipay.com/page/message/tasksDetail?bizData="+URLEncoder.encode(JSON.toJSONString(map), "utf-8"); + + map.put("agentOpParam", agentOpParam); + + return "https://b.alipay.com/page/message/tasksDetail?bizData="+URLEncoder.encode(JSON.toJSONString(map), "utf-8"); + } + + public static void main(String[] args) { + Map map = new LinkedHashMap(); + map.put("platformCode", "O"); + map.put("taskType", "INTERFACE_AUTH"); + + Map agentOpParam = new LinkedHashMap(); + agentOpParam.put("redirectUri", "https://callback.malls.iformall.com/api/alipay/notify/callback"); + String[] apptypes = new String[]{"TINYAPP","WEBAPP","MOBILEAPP","PUBLICAPP"}; + agentOpParam.put("appTypes", apptypes); + agentOpParam.put("isvAppId", "2021002140616334"); + agentOpParam.put("state", "1096"); + + map.put("agentOpParam", agentOpParam); + try { + String s = "https://b.alipay.com/page/message/tasksDetail?bizData="+URLEncoder.encode(JSON.toJSONString(map), "utf-8"); + System.out.println(s); + } catch (UnsupportedEncodingException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } /**