个人案例
地球城商城
2017年公司电商网站小程序
地球城商城扫码体验
平台证书文件:wechatpay_xxxxxxxxxxxx.pem 序列号:40位的一个字符串,从API安全里的 微信支付平台中的国际RSA证书 下的那个序列号 未开通微信支付公钥,只开通了平台证书,代码中使用的证书都是昨天刚申请的证书
运营工具商家转账,调用APIv3接口提示平台证书序列号Wechatpay-Serial错误,怎么解?微信支付运营工具商家转账功能接口/v3/fund-app/mch-transfer/transfer-bills对接,Wechatpay-Serial 使用RSA方式从平台证书中提取公钥对平台证书的序列号进行加密,提示:{"code":"PARAM_ERROR","message":"平台证书序列号Wechatpay-Serial错误"} ,按照常见问题:https://pay.weixin.qq.com/doc/v3/merchant/4013053279 确认了,都没有问题,还是一直显示那个错误! 下面代码是加密方法:、 public static string EncryptWithPlatformCertificate(string plainText, string platformCertificatePath) { try { string certificateText = File.ReadAllText(platformCertificatePath); certificateText = certificateText.Replace("-----BEGIN CERTIFICATE-----", ""). Replace("-----END CERTIFICATE-----", ""). Replace("\n", ""). Replace("\r", ""); byte[] certificateBytes = Convert.FromBase64String(certificateText); X509Certificate2 certificate = new X509Certificate2(certificateBytes); RSACryptoServiceProvider rsa = (RSACryptoServiceProvider)certificate.PublicKey.Key; byte[] plainTextBytes = Encoding.UTF8.GetBytes(plainText); byte[] encryptedBytes = rsa.Encrypt(plainTextBytes, true); return Convert.ToBase64String(encryptedBytes); } catch (Exception ex) { throw new Exception("加密失败: " + ex.Message); } }
04-28