Skip to content

Commit 8bdf764

Browse files
chore(doc): Q/A on the Rsa[encrypt|decrypt] usages
1 parent e2272f6 commit 8bdf764

File tree

1 file changed

+15
-10
lines changed

1 file changed

+15
-10
lines changed

README.md

+15-10
Original file line numberDiff line numberDiff line change
@@ -548,6 +548,20 @@ console.info(params)
548548

549549
## 常见问题
550550

551+
Q: `APIv3`上请求参数敏感信息如何加密?返回参数敏感信息如何解密?
552+
553+
> 接口区分国内版还是国际版,国内版的`RSA`填充方案是`RSA_PKCS1_OAEP_PADDING`,方法如下:
554+
>
555+
> 请求字段需要密文的,加密方法: `Rsa.encrypt('原始信息', Rsa.from(platformPublicKeyFilePath, Rsa.KEY_TYPE_PUBLIC), Rsa.RSA_PKCS1_OAEP_PADDING)`
556+
>
557+
> 返回字段需要明文的,解密方法: `Rsa.decrypt('密文base64', Rsa.from(merchantPrivateKeyFilePath, Rsa.KEY_TYPE_PRIVATE), Rsa.RSA_PKCS1_OAEP_PADDING)`
558+
>
559+
> 国际版的`RSA`填充方案是`RSA_PKCS1_PADDING`(不是所有node版本都支持),方法如下:
560+
>
561+
> 请求字段需要密文的,加密方法: `Rsa.encrypt('原始信息', Rsa.from(platformCertificateFilePath, Rsa.KEY_TYPE_PUBLIC), Rsa.RSA_PKCS1_PADDING)`
562+
>
563+
> 返回字段需要明文的,解密方法: `Rsa.decrypt('密文base64', Rsa.from(merchantPrivateKeyFilePath, Rsa.KEY_TYPE_PRIVATE), Rsa.RSA_PKCS1_PADDING)`
564+
551565
Q: 如何安全地在应用内使用`APIv2``APIv3`对称密钥?
552566

553567
> `v0.9.0`提供了统一的对称密钥加载函数 `Hash.keyObjectFrom(thing: BinaryLike): KeyObject`,建议应用升级至`v0.9.2`使用此函数进行统一对称密钥管理;
@@ -572,16 +586,7 @@ Q: 敏感信息或者幂等操作要求额外头信息上送时,应该如何
572586
573587
> `DELETE`/`GET`请求的第一个参数,`POST`/`PUT`/`PATCH`请求的第二个参数,是 [AxiosRequestConfig](https://github.com/axios/axios) 对象,可以按需上送额外头参数,例如:
574588
> ```js
575-
> wxpay.v3.applyment4sub.applyment.$noop$(
576-
> {},
577-
> { noop: '', headers: { 'Wechatpay-Serial': '123456' } },
578-
> ).then(console.info).catch(console.error);
579-
> ```
580-
> 可参考 [#17](https://github.com/TheNorthMemory/wechatpay-axios-plugin/issues/17)
581-
582-
Q: 接口地址为slash(`/`)结尾的,应该如何构建请求参数?
583-
584-
> 动态参数`uri_template`或者属性`property`方式构建,可参考 [#16](https://github.com/TheNorthMemory/wechatpay-axios-plugin/issues/16)
589+
> 可参考 [这里](https://wechatpay.js.org/openapi/v3/applyment4sub/applyment/) 或 [这里](https://wechatpay.js.org/openapi/v3/marketing/partnerships/build) 的实现
585590
586591
## 单元测试
587592

0 commit comments

Comments
 (0)