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 d9e7632d8..d4c6ca864 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 @@ -10,9 +10,9 @@ import com.iformall.service.pay.alipay.api.reqEntity.AlipayMemberCardModelColumn import com.iformall.service.pay.alipay.api.reqEntity.AlipayMemberCardModelFieldRule; import com.iformall.service.pay.alipay.api.reqEntity.AlipayMemberCardModelRequest; import com.iformall.service.pay.alipay.api.reqEntity.AlipayMemberCardModelStyle; +import com.iformall.utils.Base64Util; import com.iformall.utils.DateUtils; import org.apache.commons.lang3.StringUtils; -import org.apache.logging.log4j.util.Base64Util; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; @@ -72,29 +72,29 @@ public class AliPayApi { * @throws UnsupportedEncodingException */ public static String getAppAuthUrl(Config config,String callback,String param) throws UnsupportedEncodingException { - //String paramstr = ""; - //if (!StringUtils.isBlank(param)) { - // paramstr = "&state="+param; - //} - //return "https://openauth.alipay.com/oauth2/appToAppBatchAuth.htm?app_id="+config.appId+"&application_type=TINYAPP,WEBAPP,MOBILEAPP,PUBLICAPP&redirect_uri="+URLEncoder.encode(callback, "utf-8")+paramstr; - String state = ""; + String paramstr = ""; if (!StringUtils.isBlank(param)) { - state = param; + paramstr = "&state="+Base64Util.encode(param).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"); + 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 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"); } /** diff --git a/mallinkService/src/main/java/com/iformall/utils/Base64Util.java b/mallinkService/src/main/java/com/iformall/utils/Base64Util.java index 9ce83afef..605c4de9a 100644 --- a/mallinkService/src/main/java/com/iformall/utils/Base64Util.java +++ b/mallinkService/src/main/java/com/iformall/utils/Base64Util.java @@ -170,6 +170,15 @@ public class Base64Util { } + /** + * + * @param data + * @return + */ + public static String encode(String data) { + return encode(data.getBytes()); + } + /** * * @param data