C# MVC 微信支付教程系列之公众号支付代码
C MVC 微信支付教程系列之公众号支付代码
前言----
本文是微信支付系列教程的第三篇,主要讲解如何实现公众号支付。公众号支付是微信支付中的一种常见支付方式,用户通过公众号菜单链接进入商城后,可以使用微信支付进行支付。
环境准备-----
1. 微信支付平台首先,我们需要在微信支付平台上创建一个应用,并获取相关的API密钥和证书。具体步骤如下:
* 登录微信支付平台,点击左侧菜单中的“应用管理”。
* 点击“新建应用”,填写应用名称、商户号等信息。
*生成API密钥和证书。
2. C MVC项目接下来,我们需要在C MVC项目中创建一个控制器来处理公众号支付的逻辑。具体步骤如下:
* 在项目中新建一个控制器,例如“WeChatPayController.cs”。
* 在控制器中添加相关的属性和方法。
3. 公众号支付配置最后,我们需要在微信支付平台上配置公众号支付相关信息。具体步骤如下:
* 登录微信支付平台,点击左侧菜单中的“应用管理”。
* 点击“公众号支付”,填写相关的信息。
代码实现-----
1. 公众号支付控制器```csharpusing System;
using System.Net.Http;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
namespace WeChatPay.Controllers{
public class WeChatPayController : Controller {
private readonly HttpClient _ public WeChatPayController(HttpClient {
_ = }
[HttpPost]
public async Task
{
// 公众号支付请求参数 var requestParams = new {
appid = "your_app_id",
mch_id = "your_mch_id",
nonce_str = Guid.NewGuid().ToString(),
sign_type = "HMAC-SHA256",
body,
total_fee = (int)(totalFee *100),
spbill_create_ip = GetIp(),
trade_type = "JSAPI",
openid };
// 公众号支付请求签名 var requestSign = GetRequestSign(requestParams);
// 公众号支付请求体 var requestBody = new {
appid,
mch_id,
nonce_str,
sign_type,
body,
total_fee,
spbill_create_ip,
trade_type,
openid,
attach = "",
time_end = DateTime.Now.ToString("yyyyMMddHHmmss"),
notify_url = "your_notify_url",
prepay_id = GetPrepayId(requestParams),
package = "prepay_id=" + requestParams.prepay_id };
// 公众号支付请求体签名 var requestBodySign = GetRequestBodySign(requestBody);
// 公众号支付请求体JSON var requestBodyJson = JsonConvert.SerializeObject(requestBody);
// 公众号支付请求头部 var requestHeaders = new[]
{
new { Key = "Content-Type", Value = "application/json" },
new { Key = "Sign", Value = requestBodySign }
};
// 公众号支付请求体JSON签名 var requestBodyJsonSign = GetRequestBodyJsonSign(requestBodyJson);
// 公众号支付请求体JSON签名 var requestJsonSign = GetRequestJsonSign(requestHeaders, requestBodyJson);
// 公众号支付请求体JSON签名 var requestJsonSign2 = GetRequestJsonSign(requestHeaders, requestBodyJson);
// 公众号支付请求体JSON签名 var requestJsonSign3 = GetRequestJsonSign(requestHeaders, requestBodyJson);
// 公众号支付请求体JSON签名 var requestJsonSign4 = GetRequestJsonSign(requestHeaders, requestBodyJson);
// 公众号支付请求体JSON签名 var requestJsonSign5 = GetRequestJsonSign(requestHeaders, requestBodyJson);
// 公众号支付请求体JSON签名 var requestJsonSign6 = GetRequestJsonSign(requestHeaders, requestBodyJson);
// 公众号支付请求体JSON签名 var requestJsonSign7 = GetRequestJsonSign(requestHeaders, requestBodyJson);
// 公众号支付请求体JSON签名 var requestJsonSign8 = GetRequestJsonSign(requestHeaders, requestBodyJson);
// 公众号支付请求体JSON签名 var requestJsonSign9 = GetRequestJsonSign(requestHeaders, requestBodyJson);
// 公众号支付请求体JSON签名 var requestJsonSign10 = GetRequestJsonSign(requestHeaders, requestBodyJson);
// 公众号支付请求体JSON签名 var requestJsonSign11 = GetRequestJsonSign(requestHeaders, requestBodyJson);
// 公众号支付请求体JSON签名 var requestJsonSign12 = GetRequestJsonSign(requestHeaders, requestBodyJson);
// 公众号支付请求体JSON签名 var requestJsonSign13 = GetRequestJsonSign(requestHeaders, requestBodyJson);
// 公众号支付请求体JSON签名 var requestJsonSign14 = GetRequestJsonSign(requestHeaders, requestBodyJson);
// 公众号支付请求体JSON签名 var requestJsonSign15 = GetRequestJsonSign(requestHeaders, requestBodyJson);
// 公众号支付请求体JSON签名 var requestJsonSign16 = GetRequestJsonSign(requestHeaders, requestBodyJson);
// 公众号支付请求体JSON签名 var requestJsonSign17 = GetRequestJsonSign(requestHeaders, requestBodyJson);
// 公众号支付请求体JSON签名 var requestJsonSign18 = GetRequestJsonSign(requestHeaders, requestBodyJson);
// 公众号支付请求体JSON签名 var requestJsonSign19 = GetRequestJsonSign(requestHeaders, requestBodyJson);
// 公众号支付请求体JSON签名 var requestJsonSign20 = GetRequestJsonSign(requestHeaders, requestBodyJson);
// 公众号支付请求体JSON签名 var requestJsonSign21 = GetRequestJsonSign(requestHeaders, requestBodyJson);
// 公众号支付请求体JSON签名 var requestJsonSign22 = GetRequestJsonSign(requestHeaders, requestBodyJson);
// 公众号支付请求体JSON签名 var requestJsonSign23 = GetRequestJsonSign(requestHeaders, requestBodyJson);
// 公众号支付请求体JSON签名 var requestJsonSign24 = GetRequestJsonSign(requestHeaders, requestBodyJson);
// 公众号支付请求体JSON签名 var requestJsonSign25 = GetRequestJsonSign(requestHeaders, requestBodyJson);
// 公众号支付请求体JSON签名 var requestJsonSign26 = GetRequestJsonSign(requestHeaders, requestBodyJson);
// 公众号支付请求体JSON签名 var requestJsonSign27 = GetRequestJsonSign(requestHeaders, requestBodyJson);
// 公众号支付请求体JSON签名 var requestJsonSign28 = GetRequestJsonSign(requestHeaders, requestBodyJson);
// 公众号支付请求体JSON签名 var requestJsonSign29 = GetRequestJsonSign(requestHeaders, requestBodyJson);
// 公众号支付请求体JSON签名 var requestJsonSign30 = GetRequestJsonSign(requestHeaders, requestBodyJson);
// 公众号支付请求体JSON签名 var requestJsonSign31 = GetRequestJsonSign(requestHeaders, requestBodyJson);
// 公众号支付请求体JSON签名 var requestJsonSign32 = GetRequestJsonSign(requestHeaders, requestBodyJson);
// 公众号支付请求体JSON签名 var requestJsonSign33 = GetRequestJsonSign(requestHeaders, requestBodyJson);
// 公众号支付请求体JSON签名 var requestJsonSign34 = GetRequestJsonSign(requestHeaders, requestBodyJson);
// 公众号支付请求体JSON签名 var requestJsonSign35 = GetRequestJsonSign(requestHeaders, requestBodyJson);
// 公众号支付请求体JSON签名 var requestJsonSign36 = GetRequestJsonSign(requestHeaders, requestBodyJson);
// 公众号支付请求体JSON签名 var requestJsonSign37 = GetRequestJsonSign(requestHeaders, requestBodyJson);
// 公众号支付请求体JSON签名 var requestJsonSign38 = GetRequestJsonSign(requestHeaders, requestBodyJson);
// 公众号支付请求体JSON签名 var requestJsonSign39 = GetRequestJsonSign(requestHeaders, requestBodyJson);
// 公众号支付请求体JSON签名 var requestJsonSign40 = GetRequestJsonSign(requestHeaders, requestBodyJson);
// 公众号支付请求体JSON签名 var requestJsonSign41 = GetRequestJsonSign(requestHeaders, requestBodyJson);
// 公众号支付请求体JSON签名 var requestJsonSign42 = GetRequestJsonSign(requestHeaders, requestBodyJson);
// 公众号支付请求体JSON签名