mirror of
https://gitee.com/egzosn/pay-java-parent.git
synced 2026-05-07 19:46:15 +08:00
修复 微信V3:商户上送敏感信息时加密秘钥错误问题
修复 支付宝:交易查询接口调用getBizContent方法tradeNo与outTradeNo弄反问题
This commit is contained in:
@@ -5,6 +5,7 @@ import java.nio.charset.StandardCharsets;
|
||||
import java.security.cert.Certificate;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.http.Header;
|
||||
import org.apache.http.HttpEntity;
|
||||
import org.apache.http.entity.ContentType;
|
||||
import org.apache.http.message.BasicHeader;
|
||||
@@ -105,6 +106,17 @@ public class DefaultWxPayAssistService implements WxPayAssistService {
|
||||
if (statusCode >= 400) {
|
||||
throw new PayErrorException(new WxPayError(responseBody.getString(WxConst.CODE), responseBody.getString(WxConst.MESSAGE), responseBody.toJSONString()));
|
||||
}
|
||||
Header[] headers = responseEntity.getHeaders();
|
||||
if (headers == null) {
|
||||
return responseBody;
|
||||
}
|
||||
for (Header header : headers) {
|
||||
if ("Wechatpay-Serial".equals(header.getName())) {
|
||||
// 更新平台证书的序列号,需要每次都更新,因为这个可能会改变
|
||||
payConfigStorage.getCertEnvironment().setPlatformSerialNumber(header.getValue());
|
||||
break;
|
||||
}
|
||||
}
|
||||
return responseBody;
|
||||
}
|
||||
|
||||
|
||||
@@ -657,7 +657,8 @@ public class WxPayService extends BasePayService<WxPayConfigStorage> implements
|
||||
return null;
|
||||
}
|
||||
|
||||
String serialNumber = payConfigStorage.getCertEnvironment().getSerialNumber();
|
||||
// 商户上送敏感信息时使用`微信支付平台公钥`加密
|
||||
String serialNumber = payConfigStorage.getCertEnvironment().getPlatformSerialNumber();
|
||||
Certificate certificate = getAssistService().getCertificate(serialNumber);
|
||||
return transferDetails.stream()
|
||||
.peek(transferDetailListItem -> {
|
||||
|
||||
@@ -26,7 +26,10 @@ public class CertEnvironment {
|
||||
*/
|
||||
private String serialNumber;
|
||||
|
||||
|
||||
/**
|
||||
* 微信平台证书序列号
|
||||
*/
|
||||
private String platformSerialNumber;
|
||||
|
||||
|
||||
|
||||
@@ -63,4 +66,12 @@ public class CertEnvironment {
|
||||
public void setSerialNumber(String serialNumber) {
|
||||
this.serialNumber = serialNumber;
|
||||
}
|
||||
}
|
||||
|
||||
public String getPlatformSerialNumber() {
|
||||
return platformSerialNumber;
|
||||
}
|
||||
|
||||
public void setPlatformSerialNumber(String platformSerialNumber) {
|
||||
this.platformSerialNumber = platformSerialNumber;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user