docs: 完善文档

This commit is contained in:
fudiwei 2022-12-19 22:34:23 +08:00
parent 4d1b15f762
commit 19a1827251
7 changed files with 61 additions and 13 deletions

View File

@ -1,4 +1,4 @@
## 如何生成客户端JS-SDK、小程序、App 等)所需的参数及签名?
## 如何生成客户端JS-SDK、App、小程序等)所需的参数及签名?
---
@ -27,6 +27,7 @@ var request = new Models.CreatePayUnifiedOrderRequest()
SignType = "HMAC-SHA256"
};
var response = await client.ExecuteCreatePayUnifiedOrderAsync(request);
/* 下面的参数字典可直接以 JSON 格式返回给客户端,客户端反序列化后再原样传递给 wx.chooseWXPay() 方法即可 */
var paramMap = client.GenerateParametersForJsapiGetBrandPayRequest(request.AppId, response.PrepayId, request.SignType);
```

View File

@ -94,7 +94,7 @@ else
- [如何验证回调通知事件签名?](./Advanced_EventSignatureVerification.md)
- [如何生成客户端JSAPI、小程序、App 等)所需的参数及签名?](./Advanced_Parameters.md)
- [如何生成客户端JSAPI、App、小程序等)所需的参数及签名?](./Advanced_Parameters.md)
- [如何在 ASP.NET Core 中与 `IHttpClientFactory` 集成?](./Advanced_IHttpClientFactory.md)

View File

@ -1,4 +1,4 @@
## 如何生成客户端JSAPI、小程序、App 等)所需的参数及二次签名?
## 如何生成客户端JSAPI、App、小程序等)所需的参数及二次签名?
---
@ -32,6 +32,7 @@ var request = new Models.CreatePayTransactionJsapiRequest()
}
};
var response = await client.ExecuteCreatePayTransactionJsapiAsync(request);
/* 下面的参数字典可直接以 JSON 格式返回给客户端,客户端反序列化后再原样传递给 WeixinJSBridge.invoke('getBrandWCPayRequest') 方法即可 */
var paramMap = client.GenerateParametersForJsapiPayRequest(request.AppId, response.PrepayId);
```

View File

@ -106,7 +106,7 @@ else
- [如何验证回调通知事件签名?](./Advanced_EventSignatureVerification.md)
- [如何生成客户端JSAPI、小程序、App 等)所需的参数及二次签名?](./Advanced_Parameters.md)
- [如何生成客户端JSAPI、App、小程序等)所需的参数及二次签名?](./Advanced_Parameters.md)
- [如何接入国密算法?](./Advanced_SMAlgorithm.md)

View File

@ -1,4 +1,4 @@
using System.IO;
using System.IO;
using System.Text;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
@ -58,20 +58,28 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Sample.Controllers
_logger.LogInformation("接收到微信推送的数据:{0}", content);
var client = _wechatApiHttpClientFactory.Create(appId);
var msgType = client.DeserializeEventFromXml(content).MessageType;
var msgType = client.DeserializeEventFromXml(content).MessageType?.ToUpper();
switch (msgType)
{
case "text":
case "TEXT":
{
var eventModel = client.DeserializeEventFromXml<TextMessageEvent>(content);
// Do Something
_logger.LogInformation("接收到微信推送的文本消息,消息内容:{0}", eventModel.Content);
// 后续处理略
}
break;
case "image":
case "IMAGE":
{
var eventModel = client.DeserializeEventFromXml<ImageMessageEvent>(content);
// Do Something
_logger.LogInformation("接收到微信推送的图片消息,图片链接:{0}", eventModel.PictureUrl);
// 后续处理略
}
break;
default:
{
// 其他情况略
}
break;
}

View File

@ -1,4 +1,4 @@
using System.IO;
using System.IO;
using System.Text;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
@ -46,13 +46,32 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Sample.Controllers
if (!valid)
{
// NOTICE:
// 需提前注入 CertificateManager、并添加平台证书,才可以使用扩展方法执行验签操作。
// 需提前注入 CertificateManager、并下载平台证书,才可以使用扩展方法执行验签操作。
// 有关 CertificateManager 的用法请参阅《开发文档 / 高级技巧 / 如何验证回调通知事件签名?》。
// 后续如何解密并反序列化,请参阅《开发文档 / 高级技巧 / 如何解密回调通知事件中的敏感数据?》。
return new JsonResult(new { code = "FAIL", message = "验签失败" });
}
var callbackModel = client.DeserializeEvent(content);
var eventType = callbackModel.EventType?.ToUpper();
switch (eventType)
{
case "TRANSACTION.SUCCESS":
{
var callbackResource = client.DecryptEventResource<Events.TransactionResource>(callbackModel);
_logger.LogInformation("接收到微信支付推送的订单支付成功通知,商户订单号:{0}", callbackResource.OutTradeNumber);
// 后续处理略
}
break;
default:
{
// 其他情况略
}
break;
}
return new JsonResult(new { code = "SUCCESS", message = "成功" });
}
}

View File

@ -1,4 +1,4 @@
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Sample.Controllers
namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Sample.Controllers
{
[RoutePrefix("api/notify")]
public class TenpayNotifyController : ApiController
@ -44,6 +44,25 @@
return Json(new { code = "FAIL", message = "验签失败" });
}
var callbackModel = client.DeserializeEvent(content);
var eventType = callbackModel.EventType?.ToUpper();
switch (eventType)
{
case "TRANSACTION.SUCCESS":
{
var callbackResource = client.DecryptEventResource<Events.TransactionResource>(callbackModel);
Debug.WriteLine("接收到微信支付推送的订单支付成功通知,商户订单号:{0}", callbackResource.OutTradeNumber);
// 后续处理略
}
break;
default:
{
// 其他情况略
}
break;
}
return Json(new { code = "SUCCESS", message = "成功" });
}
}