记得上下班打卡 | git大法好,push需谨慎

Commit 1a008a15 authored by zhengfuxin's avatar zhengfuxin

修改抖音支付回调。

parent ce1f2675
......@@ -84,7 +84,7 @@ public class PayChannelStrategyDouYinImpl extends AbstractPayChannelStrategyImpl
if (DragonConstant.PayStatusEnum.STATUS_PAID.getCode().equals(dragonOrdersDto.getStatus())) {
throw new LiquidnetServiceException(DragonErrorCodeEnum.TRADE_ERROR_HAS_PAID.getCode(),DragonErrorCodeEnum.TRADE_ERROR_HAS_PAID.getMessage());
}
String sign = msg.get("msg_signature").toString();
String sign = jsonObject.get("msg_signature").toString();
boolean notifyResult = false;
if (PayDouYinpayUtils.getInstance().notifySign( sign,jsonObject)) {// 根据配置信息验证签名
//抖音回调 就代表成功了
......@@ -98,8 +98,10 @@ public class PayChannelStrategyDouYinImpl extends AbstractPayChannelStrategyImpl
if(notifyResult){
returnStr = "<xml>\n" + " <return_code><![CDATA[SUCCESS]]></return_code>\n" + " <return_msg><![CDATA[OK]]></return_msg>\n" + "</xml>";
}*/
return "{\"err_no\": 0,\"err_tips\": \"success\"}";
} else {
log.error("wepay notify fail code:{} msg:{} ",DragonErrorCodeEnum.TRADE_DOUYINPAY_SIGN_ERROR.getCode(),DragonErrorCodeEnum.TRADE_DOUYINPAY_SIGN_ERROR.getMessage());
log.error("touyin notify fail code:{} msg:{} ",DragonErrorCodeEnum.TRADE_DOUYINPAY_SIGN_ERROR.getCode(),DragonErrorCodeEnum.TRADE_DOUYINPAY_SIGN_ERROR.getMessage());
}
} catch (Exception e) {
e.printStackTrace();
......
......@@ -5,6 +5,7 @@ import com.alipay.api.internal.util.file.IOUtils;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.liquidnet.commons.lang.util.MD5Utils;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.config.Registry;
import org.apache.http.config.RegistryBuilder;
......@@ -49,6 +50,7 @@ public class PayDouYinpayUtils {
private final String APP_ID="tt0d647bd9925c076801";
private final String TOKEN="NdUpRqpXmDfddigojFzIxzXNVg1SffdA";
......@@ -155,6 +157,8 @@ public class PayDouYinpayUtils {
}
return hexValue.toString();
}
public String createSign(Map<String, Object> paramsMap) {
List<String> paramsArr = new ArrayList<>();
for (Map.Entry<String, Object> entry : paramsMap.entrySet()) {
......@@ -196,13 +200,20 @@ public class PayDouYinpayUtils {
return this.partnerKey;
}
public boolean notifySign(String sign, JSONObject jsonObject) {
Map<String, Object> map = new HashMap<>();
//循环转换
public boolean notifySign(String sign, JSONObject jsonObject) throws Exception {
jsonObject.remove("msg_signature");
jsonObject.remove("type");
jsonObject.put("token",TOKEN);
SortedMap<String,String> sortedMap = new TreeMap<String,String>();
for (Map.Entry<String, Object> entry : jsonObject.entrySet()) {
map.put(entry.getKey(), entry.getValue());
sortedMap.put(entry.getValue().toString(), entry.getValue().toString());
}
StringBuffer sb = new StringBuffer();
for(String key:sortedMap.keySet()){
sb.append(sortedMap.get(key));
}
String signBack=PayDouYinpayUtils.getInstance().createSign(map);
String signBack= DigestUtils.sha1Hex(sb.toString());
//PayDouYinpayUtils.getInstance().createSign(map);
if(sign.equals(signBack))
return true;
else
......@@ -236,17 +247,21 @@ public class PayDouYinpayUtils {
public static void main(String[] args) {
String s="{\n" +
" \"timestamp\":1602507471,\n" +
" \"nonce\":\"797\",\n" +
" \"msg\":\"{\\\"appid\\\":\\\"tt07e3715e98c9aac0\\\",\\\"cp_orderno\\\":\\\"out_order_no_1\\\",\\\"cp_extra\\\":\\\"\\\",\\\"way\\\":\\\"2\\\",\\\"payment_order_no\\\":\\\"2021070722001450071438803941\\\",\\\"total_amount\\\":9980,\\\"status\\\":\\\"SUCCESS\\\",\\\"seller_uid\\\":\\\"69631798443938962290\\\",\\\"extra\\\":\\\"null\\\",\\\"item_id\\\":\\\"\\\"}\",\n" +
" \"msg_signature\":\"52fff5f7a4bf4a921c2daf83c75cf0e716432c73\",\n" +
" \"type\":\"payment\"\n" +
"}";
JSONObject jsonObject = JSONObject.parseObject(s);
System.out.println(jsonObject.getString("type"));
JSONObject msg = jsonObject.getJSONObject("msg");
System.out.println(msg.getString("cp_orderno"));
SortedMap<String,String> sortedMap = new TreeMap<String,String>();
sortedMap.put("timestamp","1602507471");
sortedMap.put("nonce","797");
sortedMap.put("msg","{\"appid\":\"tt07e3715e98c9aac0\",\"cp_orderno\":\"out_order_no_1\",\"cp_extra\":\"\",\"way\":\"2\",\"payment_order_no\":\"2021070722001450071438803941\",\"total_amount\":9980,\"status\":\"SUCCESS\",\"seller_uid\":\"69631798443938962290\",\"extra\":\"null\",\"item_id\":\"\"}");
sortedMap.remove("msg_signature");
sortedMap.remove("type");
sortedMap.put("token","NdUpRqpXmDfddigojFzIxzXNVg1SffdA");
StringBuffer sb = new StringBuffer();
for(String key:sortedMap.keySet()){
sb.append(sortedMap.get(key));
}
System.out.println(sortedMap.toString());
System.out.println(sb.toString());
String signBack= DigestUtils.sha1Hex(sb.toString());
System.out.println(signBack);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment