为了进一步增强交易请求的安全性,Ping++ 交易接口针对所有的 POST 和 PUT 请求已经新增 RSA 加密验签功能。如果使用该签名验证功能,你需要生成一对 RSA 密钥,将公钥上传至 Ping++ 管理平台的「商户 RSA 公钥」并启用验签开关,然后将私钥配置到你的代码中。步骤如下:
首先你需要本地生成 RSA 密钥,生成方法请参考:如何获取 RSA 公钥和私钥?
将公钥上传至 Ping++ 管理平台的「商户 RSA 公钥」并启用验签开关
注:配置完商户 RSA 公钥后,Test 模式加密验签功能将自动开启,Live 模式在手动开启后加密验签功能生效。开启后不可关闭,所有的 API 请求将会要求验证签名。
在服务端配置「商户 RSA 公钥」对应的私钥
① 如果你是使用的 SDK,则可以读取配置私钥文件的路径或者直接定义变量,各 SDK 配置示例如下:
PHP SDK :
\Pingpp\Pingpp::setPrivateKeyPath(__DIR__ . '/your_rsa_private_key.pem');
JAVA SDK :
Pingpp.privateKeyPath = "/path/to/your_rsa_private_key.pem";
NODE.JS SDK :
pingpp.setPrivateKeyPath(__dirname + "/your_rsa_private_key.pem");
PYTHON SDK :
pingpp.private_key_path = 'your_rsa_private_key.pem'
RUBY SDK :
Pingpp.private_key_path = File.dirname(__FILE__) + '/your_rsa_private_key.pem'
GO SDK :
privateKey, err := ioutil.ReadFile("your_rsa_private_key.pem")
C# SDK :
Pingpp.Pingpp.SetPrivateKeyPath(@"你生成的私钥文件的路径");
② 如果你调用 API 接口校验的话,需要生成 RSA 签名(SHA256)并在请求头中添加 Pingplusplus-Signature,详细方法请参考:新的接口验签方式说明
上一篇 微信扫码报错:对支付请求未能成功。来自 wx_pub_qr 渠道的错误信息:受理机构必须传入sub_mch_id?