docs: 完善文档

This commit is contained in:
Fu Diwei
2022-03-03 17:19:29 +08:00
parent d1347ce8c7
commit 5c8c7a6654
8 changed files with 26 additions and 12 deletions

View File

@@ -20,6 +20,8 @@ var response = await client.ExecuteCgibinTicketGetTicketAsync(request);
var paramMap = client.GenerateParametersForJSSDKConfig(response.Ticket, "https://example.com"); var paramMap = client.GenerateParametersForJSSDKConfig(response.Ticket, "https://example.com");
``` ```
注意上述示例代码中的 JsapiTicket 与微信 AccessToken 类似,有每日获取频率限制和过期时间限制,开发者应自行实现相关持久化和更新机制。
--- ---
### 【附】生成参数相关扩展方法速查表: ### 【附】生成参数相关扩展方法速查表:

View File

@@ -14,12 +14,11 @@
/* 微信商户平台发来的通知内容 */ /* 微信商户平台发来的通知内容 */
string callbackXml = "<xml> ... </xml>"; string callbackXml = "<xml> ... </xml>";
/* 将 XML 反序列化得到通知对象 */ /* 将 XML 反序列化得到通知对象 */
var callbackModel = client.DeserializeEvent(callbackJson); var callbackModel = client.DeserializeEvent(callbackXml);
/* 解密得到支付通知敏感数据(以退款结果通知为例) */ /* 解密得到支付通知敏感数据(以退款结果通知为例) */
var callbackResource = client.DecryptEventRequestInfo<Events.RefundEventRequestInfo>(callbackModel); var callbackEventInfo = client.DecryptEventRequestInfo<Events.RefundEventRequestInfo>(callbackModel);
string outRefundNumber = callbackResource.OutRefundNumber; string outRefundNumber = callbackResource.OutRefundNumber;
string refundId = callbackResource.RefundId; string refundId = callbackResource.RefundId;
}
``` ```
完整的回调通知模型定义可以参考项目目录下的 _src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Events_ 目录。 完整的回调通知模型定义可以参考项目目录下的 _src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Events_ 目录。

View File

@@ -34,7 +34,7 @@
| √ | 支付工具:小程序红包 | 普通商户 & 境内服务商 | | | √ | 支付工具:小程序红包 | 普通商户 & 境内服务商 | |
| √ | 支付工具:付款到零钱 | 普通商户 | | | √ | 支付工具:付款到零钱 | 普通商户 | |
| √ | 支付工具:付款到银行卡 | 普通商户 | | | √ | 支付工具:付款到银行卡 | 普通商户 | |
| × | <del>支付工具:分账</del> | 普通商户 & 境内服务商</del> | 请升级至 v3 API | | × | <del>支付工具:分账</del> | <del>普通商户 & 境内服务商</del> | 请升级至 v3 API |
| √ | 支付工具:扣款服务(原委托代扣) | 普通商户 & 境内服务商 | | | √ | 支付工具:扣款服务(原委托代扣) | 普通商户 & 境内服务商 | |
| √ | 支付工具:酒店押金 | 境内服务商 | | | √ | 支付工具:酒店押金 | 境内服务商 | |
| √ | 支付工具:车主服务 | 境内服务商 | | | √ | 支付工具:车主服务 | 境内服务商 | |

View File

@@ -94,7 +94,7 @@ else
- [如何使用拦截器?](./Advanced_Interceptor.md) - [如何使用拦截器?](./Advanced_Interceptor.md)
- [如何解密回调通知事件中的敏感数据?](./Advanced_EventResourceDecryption.md) - [如何解密回调通知事件中的敏感数据?](./Advanced_EventInfoDecryption.md)
- [如何验证回调通知事件签名?](./Advanced_EventSignatureVerification.md) - [如何验证回调通知事件签名?](./Advanced_EventSignatureVerification.md)

View File

@@ -8,6 +8,19 @@
--- ---
### 重要须知:
请在开发过程中注意区分**商户证书**和**平台证书**
- **商户证书**用于生成请求的签名,需要通过微信商户后台申请并下载,并在构建客户端配置项时指定(即 `WechatTenpayClientOptions` 对象中的商户证书序列号和商户公钥两个参数);
- **平台证书**用于验证响应或回调的签名,需要在程序运行时实时通过接口动态获取(即 `QueryCertificatesAsync` 方法,注意证书内容需要解密)。
如果你在开发过程出现验签不通过的情况,请先检查是否混淆了这两个证书。
关于证书的更多注意事项,请参阅[《微信支付开发者文档 - 常见问题:证书相关》](https://pay.weixin.qq.com/wiki/doc/apiv3/wechatpay/wechatpay7_0.shtml)
---
### 密钥文件格式说明: ### 密钥文件格式说明:
需要注意的是,平台为商户提供的是 PEM 格式的密钥文件,需注意文件格式之间的不同。 需要注意的是,平台为商户提供的是 PEM 格式的密钥文件,需注意文件格式之间的不同。

View File

@@ -15,9 +15,9 @@
请在开发过程中注意区分**商户证书**和**平台证书** 请在开发过程中注意区分**商户证书**和**平台证书**
- **商户证书**与请求中的敏感数据加密无关; - **商户证书**与请求中的敏感数据加密无关;
- **平台证书**用于加密请求中的敏感信息字段,需要通过接口获取(即 `QueryCertificatesAsync` 方法,注意证书内容需先经 AES-GCM 解密一次)。 - **平台证书**用于加密请求中的敏感信息字段,需要在程序运行时实时通过接口动态获取(即 `QueryCertificatesAsync` 方法,注意证书内容需先经 AES-GCM 解密一次)。
如果你在请求过程中出现请求加密失败、服务器响应私钥解密失败的情况,请先检查是否混淆了这两个证书。 如果你在开发过程中出现请求加密失败、服务器响应私钥解密失败的情况,请先检查是否混淆了这两个证书。
关于证书的更多注意事项,请参阅[《微信支付开发者文档 - 常见问题:证书相关》](https://pay.weixin.qq.com/wiki/doc/apiv3/wechatpay/wechatpay7_0.shtml) 关于证书的更多注意事项,请参阅[《微信支付开发者文档 - 常见问题:证书相关》](https://pay.weixin.qq.com/wiki/doc/apiv3/wechatpay/wechatpay7_0.shtml)

View File

@@ -12,10 +12,10 @@
请在开发过程中注意区分**商户证书**和**平台证书** 请在开发过程中注意区分**商户证书**和**平台证书**
- **商户证书**用于生成请求的签名,需要在构建客户端配置项时指定(即 `WechatTenpayClientOptions` 对象中的证书序列号和公钥 - **商户证书**用于生成请求的签名,需要通过微信商户后台申请并下载,并在构建客户端配置项时指定(即 `WechatTenpayClientOptions` 对象中的商户证书序列号和商户公钥两个参数
- **平台证书**用于验证响应或回调的签名,需要通过接口获取(即 `QueryCertificatesAsync` 方法,注意证书内容需要解密)。 - **平台证书**用于验证响应或回调的签名,需要在程序运行时实时通过接口动态获取(即 `QueryCertificatesAsync` 方法,注意证书内容需要解密)。
如果你在验签过程出现验签不通过的情况,请先检查是否混淆了这两个证书。 如果你在开发过程出现验签不通过的情况,请先检查是否混淆了这两个证书。
关于证书的更多注意事项,请参阅[《微信支付开发者文档 - 常见问题:证书相关》](https://pay.weixin.qq.com/wiki/doc/apiv3/wechatpay/wechatpay7_0.shtml) 关于证书的更多注意事项,请参阅[《微信支付开发者文档 - 常见问题:证书相关》](https://pay.weixin.qq.com/wiki/doc/apiv3/wechatpay/wechatpay7_0.shtml)

View File

@@ -92,8 +92,6 @@ else
## 高级技巧 ## 高级技巧
- [如何查看商户证书序列号?](./Advanced_MerchantCertificateSerialNumber.md)
- [如何快速找到需要调用的 API 模型类名 / 方法名(附完整 API 对照表)?](./Advanced_ModelDefinition.md) - [如何快速找到需要调用的 API 模型类名 / 方法名(附完整 API 对照表)?](./Advanced_ModelDefinition.md)
- [如何在 ASP.NET Core 中与 `IHttpClientFactory` 集成?](./Advanced_IHttpClientFactory.md) - [如何在 ASP.NET Core 中与 `IHttpClientFactory` 集成?](./Advanced_IHttpClientFactory.md)
@@ -102,6 +100,8 @@ else
- [如何使用拦截器?](./Advanced_Interceptor.md) - [如何使用拦截器?](./Advanced_Interceptor.md)
- [如何查看商户证书序列号?](./Advanced_MerchantCertificateSerialNumber.md)
- [如何加密请求中的敏感数据?](./Advanced_RequestSensitiveDataEncryption.md) - [如何加密请求中的敏感数据?](./Advanced_RequestSensitiveDataEncryption.md)
- [如何解密响应中的敏感数据?](./Advanced_ResponseSensitiveDataDecryption.md) - [如何解密响应中的敏感数据?](./Advanced_ResponseSensitiveDataDecryption.md)