ASP.NET CORE微信支付回调示例代码
/// <summary>
/// 接收微信支付异步通知
/// </summary>
/// <returns></returns>
public async Task<ActionResult> NotifyUrl() {
// 读取请求体中的数据
/*
<xml>
<appid><![CDATA[wxd64fd8b6cee248db]]></appid>
<bank_type><![CDATA[OTHERS]]></bank_type>
<cash_fee><![CDATA[1]]></cash_fee>
<fee_type><![CDATA[CNY]]></fee_type>
<is_subscribe><![CDATA[N]]></is_subscribe>
<mch_id><![CDATA[1628692716]]></mch_id>
<nonce_str><![CDATA[776c2f5829eb4656ba7c7d9113e952e0]]></nonce_str>
<openid><![CDATA[oOGeG6xoflRianAWRn8UpyCgyZiM]]></openid>
<out_trade_no><![CDATA[20240808105415f1f6]]></out_trade_no>
<result_code><![CDATA[SUCCESS]]></result_code>
<return_code><![CDATA[SUCCESS]]></return_code>
<sign><![CDATA[31EEED7D5D8F220856F4A961673D5B58]]></sign>
<time_end><![CDATA[20240808105434]]></time_end>
<total_fee>1</total_fee>
<trade_type><![CDATA[JSAPI]]></trade_type>
<transaction_id><![CDATA[4200002339202408086696010804]]></transaction_id>
</xml>
*/
using (StreamReader reader = new StreamReader(Request.Body, Encoding.UTF8))
{
string body = await reader.ReadToEndAsync();
_logger.LogInformation($"收到微信支付异步通知:{body}");
// 这里可以添加更多的逻辑,比如验证签名、更新数据库等
// 返回成功响应给微信支付服务器
return Ok("success");
}
}