Просмотр исходного кода

fix pay v3

release_toaliyun_real
zhengfangyuan 3 лет назад
Родитель
Сommit
451850ae96
2 измененных файлов: 27 добавлений и 2 удалений
  1. +2
    -0
      mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/BaseWxPayAdapterService.java
  2. +25
    -2
      mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/v3/miniApp/appPay/WxMiniAppPayV3AdapterService.java

+ 2
- 0
mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/BaseWxPayAdapterService.java Просмотреть файл

@@ -2,6 +2,7 @@ package com.iformall.service.pay.service.pay.wx;

import java.io.File;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import org.apache.commons.lang3.StringUtils;
@@ -40,6 +41,7 @@ import com.iformall.service.pay.service.pay.entity.PayAdapterResult;
import com.iformall.service.pay.service.pay.entity.PayQueryAdapterResult;
import com.iformall.utils.BeanUtils;
import com.iformall.utils.MaUtil;
import com.iformall.utils.MapUtil;
import com.iformall.utils.QRCodeUtils;
import com.iformall.utils.Utility;



+ 25
- 2
mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/v3/miniApp/appPay/WxMiniAppPayV3AdapterService.java Просмотреть файл

@@ -4,6 +4,7 @@ import java.io.File;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@@ -108,7 +109,7 @@ public class WxMiniAppPayV3AdapterService extends BaseWxPayV3AdapterService impl
return req;
}
private PayAdapterResult getOrderPResult(String response,WxPayOrder record) {
private PayAdapterResult getOrderPResult(String response,WxPayOrder record,WxPayAccount payAccount,WxAppinfo appInfo) {
PayAdapterResult par = new PayAdapterResult();
if (StringUtils.isBlank(response)) {
par.setSuccess(false);
@@ -124,11 +125,33 @@ public class WxMiniAppPayV3AdapterService extends BaseWxPayV3AdapterService impl
par.setMsg("success.");
record.setPrepayId(prepayId);
record.setUpdateTime(new Date());
par.setData(getPayRetMap(appInfo, prepayId, payAccount, record));
}
}
return par;
}
private Map getPayRetMap(WxAppinfo appInfo,String prepayId,WxPayAccount payAccount,WxPayOrder record) {
String timestamp = String.valueOf(Utility.getCurrentTimeStamp());
String noncestr = Utility.generate32UUID();
Map<String, String> sighMap = MapUtil.getOrderMap();
sighMap.put("appId", appInfo.getAppId());
sighMap.put("timeStamp", timestamp);
sighMap.put("nonceStr", noncestr);
sighMap.put("package", "prepay_id=" + prepayId);
sighMap.put("signType", "RSA");
String signAgent = WxPayment.createSignHMAC(sighMap, payAccount.getApiKey());
Map returnMap = new HashMap();
returnMap.put("appId", appInfo.getAppId());
returnMap.put("timeStamp", timestamp);
returnMap.put("nonceStr", noncestr);
returnMap.put("package", "prepay_id=" + prepayId);
returnMap.put("paySign", signAgent);
returnMap.put("signType", "RSA");
returnMap.put("payOrderId", String.valueOf(record.getId()));
return returnMap;
}
private V3CombinePayCommonMiniAppReq generateCombinePayReqeust(WxPayAccount payAccount,WxComposeOrder composeOrder,List<WxOrder> childOrders,String productName,
WxPayOrder record,WxAppinfo appInfo,String openId,String appId,Date currentDate,EnumPayShare isShare) throws Exception {
@@ -191,7 +214,7 @@ public class WxMiniAppPayV3AdapterService extends BaseWxPayV3AdapterService impl
V3PayCommonMiniAppReq payReq = generatePayCommonRequest(payAccount,composeOrder,productName,record,openId,appInfo,currentDate);
try {
String response = WxPayV3.payCommonWithMiniApp(payService, payReq);
return getOrderPResult(response,record);
return getOrderPResult(response,record,payAccount,appInfo);
}catch(WxPayException e) {
log.error("wexin pay v3 error",e);
throw new MallinkException(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),e.getCustomErrorMsg());


Загрузка…
Отмена
Сохранить