1.微信支付修复部分jdk无法加载证书问题

2.微信下载对账单报无法类型转换问题
3.微信退款非必填参数忽略
This commit is contained in:
egzosn
2021-11-20 23:49:58 +08:00
parent e4ca2a0e7d
commit 6ab618ca44
11 changed files with 76 additions and 60 deletions

View File

@@ -70,7 +70,8 @@ public class DefaultWxPayAssistService implements WxPayAssistService {
* @return 响应内容体
*/
public JSONObject doExecute(Map<String, Object> parameters, TransactionType transactionType) {
String requestBody = JSON.toJSONString(parameters, SerializerFeature.WriteMapNullValue);
// String requestBody = JSON.toJSONString(parameters, SerializerFeature.WriteMapNullValue);
String requestBody = JSON.toJSONString(parameters);
return doExecute(requestBody, transactionType);
}

View File

@@ -302,7 +302,7 @@ public class WxPayService extends BasePayService<WxPayConfigStorage> {
params.put("prepayid", prepayId);
params.put("package", "Sign=WXPay");
}
String signText = StringUtils.joining("\n", appId, timeStamp, prepayId);
String signText = StringUtils.joining("\n", appId, timeStamp, randomStr, prepayId);
String paySign = createSign(signText, payConfigStorage.getInputCharset());
params.put(WxTransactionType.JSAPI.equals(order.getTransactionType()) ? "paySign" : "sign", paySign);
return params;
@@ -525,6 +525,8 @@ public class WxPayService extends BasePayService<WxPayConfigStorage> {
}
/**
* 查询退款
*

View File

@@ -10,6 +10,7 @@ import java.security.KeyStoreException;
import java.security.NoSuchProviderException;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.Security;
import java.security.cert.Certificate;
import java.security.cert.CertificateException;
import java.security.cert.CertificateFactory;
@@ -21,6 +22,8 @@ import javax.crypto.Cipher;
import javax.crypto.spec.GCMParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import com.egzosn.pay.common.exception.PayErrorException;
import com.egzosn.pay.common.util.sign.encrypt.Base64;
import com.egzosn.pay.wx.bean.WxPayError;
@@ -49,6 +52,10 @@ public final class AntCertificationUtil {
static {
try {
if (null == Security.getProvider("BC")) {
Security.removeProvider("SunEC");
Security.addProvider(new BouncyCastleProvider());
}
PKCS12_KEY_STORE = KeyStore.getInstance("PKCS12");
}
catch (KeyStoreException e) {
@@ -133,7 +140,7 @@ public final class AntCertificationUtil {
* @param cipherText 需要解密的文本
* @param secretKey 密钥
* @param characterEncoding 编码类型
* @return 解密后的信息
* @return 解密后的信息
*/
public static String decryptToString(String associatedData, String nonce, String cipherText, String secretKey, String characterEncoding) {
@@ -156,7 +163,7 @@ public final class AntCertificationUtil {
*
* @param message the message
* @param certificate the certificate
* @return 加密后的内容
* @return 加密后的内容
*/
public static String encryptToString(String message, Certificate certificate) {
try {