mirror of
https://gitee.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat.git
synced 2025-09-18 09:44:43 +08:00
docs: 完善文档
This commit is contained in:
@@ -20,6 +20,8 @@ var response = await client.ExecuteCgibinTicketGetTicketAsync(request);
|
||||
var paramMap = client.GenerateParametersForJSSDKConfig(response.Ticket, "https://example.com");
|
||||
```
|
||||
|
||||
注意上述示例代码中的 JsapiTicket 与微信 AccessToken 类似,有每日获取频率限制和过期时间限制,开发者应自行实现相关持久化和更新机制。
|
||||
|
||||
---
|
||||
|
||||
### 【附】生成参数相关扩展方法速查表:
|
||||
|
@@ -14,12 +14,11 @@
|
||||
/* 微信商户平台发来的通知内容 */
|
||||
string callbackXml = "<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 refundId = callbackResource.RefundId;
|
||||
}
|
||||
```
|
||||
|
||||
完整的回调通知模型定义可以参考项目目录下的 _src/SKIT.FlurlHttpClient.Wechat.TenpayV2/Events_ 目录。
|
@@ -34,7 +34,7 @@
|
||||
| √ | 支付工具:小程序红包 | 普通商户 & 境内服务商 | |
|
||||
| √ | 支付工具:付款到零钱 | 普通商户 | |
|
||||
| √ | 支付工具:付款到银行卡 | 普通商户 | |
|
||||
| × | <del>支付工具:分账</del> | 普通商户 & 境内服务商</del> | 请升级至 v3 API |
|
||||
| × | <del>支付工具:分账</del> | <del>普通商户 & 境内服务商</del> | 请升级至 v3 API |
|
||||
| √ | 支付工具:扣款服务(原委托代扣) | 普通商户 & 境内服务商 | |
|
||||
| √ | 支付工具:酒店押金 | 境内服务商 | |
|
||||
| √ | 支付工具:车主服务 | 境内服务商 | |
|
||||
|
@@ -94,7 +94,7 @@ else
|
||||
|
||||
- [如何使用拦截器?](./Advanced_Interceptor.md)
|
||||
|
||||
- [如何解密回调通知事件中的敏感数据?](./Advanced_EventResourceDecryption.md)
|
||||
- [如何解密回调通知事件中的敏感数据?](./Advanced_EventInfoDecryption.md)
|
||||
|
||||
- [如何验证回调通知事件签名?](./Advanced_EventSignatureVerification.md)
|
||||
|
||||
|
@@ -8,6 +8,19 @@
|
||||
|
||||
---
|
||||
|
||||
### 重要须知:
|
||||
|
||||
请在开发过程中注意区分**商户证书**和**平台证书**:
|
||||
|
||||
- **商户证书**用于生成请求的签名,需要通过微信商户后台申请并下载,并在构建客户端配置项时指定(即 `WechatTenpayClientOptions` 对象中的商户证书序列号和商户公钥两个参数);
|
||||
- **平台证书**用于验证响应或回调的签名,需要在程序运行时实时通过接口动态获取(即 `QueryCertificatesAsync` 方法,注意证书内容需要解密)。
|
||||
|
||||
如果你在开发过程出现验签不通过的情况,请先检查是否混淆了这两个证书。
|
||||
|
||||
关于证书的更多注意事项,请参阅[《微信支付开发者文档 - 常见问题:证书相关》](https://pay.weixin.qq.com/wiki/doc/apiv3/wechatpay/wechatpay7_0.shtml)
|
||||
|
||||
---
|
||||
|
||||
### 密钥文件格式说明:
|
||||
|
||||
需要注意的是,平台为商户提供的是 PEM 格式的密钥文件,需注意文件格式之间的不同。
|
||||
|
@@ -15,9 +15,9 @@
|
||||
请在开发过程中注意区分**商户证书**和**平台证书**:
|
||||
|
||||
- **商户证书**与请求中的敏感数据加密无关;
|
||||
- **平台证书**用于加密请求中的敏感信息字段,需要通过接口获取(即 `QueryCertificatesAsync` 方法,注意证书内容需先经 AES-GCM 解密一次)。
|
||||
- **平台证书**用于加密请求中的敏感信息字段,需要在程序运行时实时通过接口动态获取(即 `QueryCertificatesAsync` 方法,注意证书内容需先经 AES-GCM 解密一次)。
|
||||
|
||||
如果你在请求过程中出现请求加密失败、服务器响应私钥解密失败的情况,请先检查是否混淆了这两个证书。
|
||||
如果你在开发过程中出现请求加密失败、服务器响应私钥解密失败的情况,请先检查是否混淆了这两个证书。
|
||||
|
||||
关于证书的更多注意事项,请参阅[《微信支付开发者文档 - 常见问题:证书相关》](https://pay.weixin.qq.com/wiki/doc/apiv3/wechatpay/wechatpay7_0.shtml)
|
||||
|
||||
|
@@ -12,10 +12,10 @@
|
||||
|
||||
请在开发过程中注意区分**商户证书**和**平台证书**:
|
||||
|
||||
- **商户证书**用于生成请求的签名,需要在构建客户端配置项时指定(即 `WechatTenpayClientOptions` 对象中的证书序列号和公钥);
|
||||
- **平台证书**用于验证响应或回调的签名,需要通过接口获取(即 `QueryCertificatesAsync` 方法,注意证书内容需要解密)。
|
||||
- **商户证书**用于生成请求的签名,需要通过微信商户后台申请并下载,并在构建客户端配置项时指定(即 `WechatTenpayClientOptions` 对象中的商户证书序列号和商户公钥两个参数);
|
||||
- **平台证书**用于验证响应或回调的签名,需要在程序运行时实时通过接口动态获取(即 `QueryCertificatesAsync` 方法,注意证书内容需要解密)。
|
||||
|
||||
如果你在验签过程出现验签不通过的情况,请先检查是否混淆了这两个证书。
|
||||
如果你在开发过程出现验签不通过的情况,请先检查是否混淆了这两个证书。
|
||||
|
||||
关于证书的更多注意事项,请参阅[《微信支付开发者文档 - 常见问题:证书相关》](https://pay.weixin.qq.com/wiki/doc/apiv3/wechatpay/wechatpay7_0.shtml)
|
||||
|
||||
|
@@ -92,8 +92,6 @@ else
|
||||
|
||||
## 高级技巧
|
||||
|
||||
- [如何查看商户证书序列号?](./Advanced_MerchantCertificateSerialNumber.md)
|
||||
|
||||
- [如何快速找到需要调用的 API 模型类名 / 方法名(附完整 API 对照表)?](./Advanced_ModelDefinition.md)
|
||||
|
||||
- [如何在 ASP.NET Core 中与 `IHttpClientFactory` 集成?](./Advanced_IHttpClientFactory.md)
|
||||
@@ -102,6 +100,8 @@ else
|
||||
|
||||
- [如何使用拦截器?](./Advanced_Interceptor.md)
|
||||
|
||||
- [如何查看商户证书序列号?](./Advanced_MerchantCertificateSerialNumber.md)
|
||||
|
||||
- [如何加密请求中的敏感数据?](./Advanced_RequestSensitiveDataEncryption.md)
|
||||
|
||||
- [如何解密响应中的敏感数据?](./Advanced_ResponseSensitiveDataDecryption.md)
|
||||
|
Reference in New Issue
Block a user