3.C#对接微信Native支付(注册微信支付)

在完成了所有的准备工作之后,我们开始进行实际的对接工作,由于官方没有提供C#版本的SDK我们需要自己手动实现所有的功能,介于再去研究文档太麻烦我们借助第三方的sdk 盛派微信 SDK 它是由苏震巍先生发起的国内知名的 .NET 开源项目。https://github.com/JeffreySu/WeiXinMPSDK

1.安装

盛派提供了源码和Nuget包两种方式,可以直接引用 Senparc.Weixin 的源码进行开发,也可以引用已经打包完成的 dll(通过 Nuget 包),这里我选择了引用Nuget包,方便后期直接更新。
这里我们安装以下四个包。
Senparc.Weixin
Senparc.Weixin.TenpayV3
Senparc.Weixin.MP.dll
Senparc.Weixin.AspNet
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2.注册微信支付

在program中添加以下代码,需要注册微信公众号(因为微信支付需要一个载体(需要微信用户的标识openid),我使用的是公众号所以同时需要注册公众号)

//添加盛派sdk相关微信配置 这两句在Build之前
var app = builder.Build();
builder.Services.AddMemoryCache();
builder.Services.AddSenparcWeixinServices(builder.Configuration);
var app = builder.Build();
//启用盛派微信配置 下边这段代码在Build之后
var registerService = app.UseSenparcWeixin(app.Environment,
    null /* 不为 null 则覆盖 appsettings  中的 SenpacSetting 配置*/,
    null /* 不为 null 则覆盖 appsettings  中的 SenpacWeixinSetting 配置*/,
    register => { /* CO2NET 全局配置 */ },
    (register, weixinSetting) =>
    {
        //注册公众号信息(可以执行多次,注册多个公众号)
        register.RegisterMpAccount(weixinSetting, "【盛派网络小助手】公众号");
        //注册微信支付(可以执行多次,注册多个微信支付)
        register.RegisterTenpayApiV3(weixinSetting, "【盛派网络小助手】微信支付(ApiV3)");
    });

其中,weixinSetting 的值默认来自于 appsettings.json:
字符串内#和{}为占位符,如果有明文信息可以直接替换。比如"Token": “asdasdaszxczxvfdgf”

"SenparcWeixinSetting": {
  "IsDebug": true,

  //公众号
  "Token": "#{Token}#",
  "EncodingAESKey": "#{EncodingAESKey}#",
  "WeixinAppId": "#{WeixinAppId}#",
  "WeixinAppSecret": "#{WeixinAppSecret}#",

  //微信支付V3
  "TenPayV3_AppId": "#{TenPayV3_AppId}#",
  "TenPayV3_AppSecret": "#{TenPayV3_AppSecret}#",
  "TenPayV3_SubAppId": "#{TenPayV3_SubAppId}#",
  "TenPayV3_SubAppSecret": "#{TenPayV3_SubAppSecret}#",
  "TenPayV3_MchId": "#{TenPayV3_MchId}#",
  "TenPayV3_SubMchId": "#{TenPayV3_SubMchId}#", //子商户,没有可留空
  "TenPayV3_Key": "#{TenPayV3_Key}#",
  "TenPayV3_TenpayNotify": "#{TenPayV3_TenpayNotify}#", //http://YourDomainName/TenpayApiV3/PayNotifyUrl
  /* 支付证书私钥
   * 1、支持明文私钥(无换行字符)
   * 2、私钥文件路径(如:~/App_Data/cert/apiclient_key.pem),注意:必须放在 App_Data 等受保护的目录下,避免泄露
   */
  "TenPayV3_PrivateKey": "#{TenPayV3_PrivateKey}#", //(新)证书私钥
  "TenPayV3_SerialNumber": "#{TenPayV3_SerialNumber}#", //(新)证书序列号
  "TenPayV3_ApiV3Key": "#{TenPayV3_APIv3Key}#" //(新)APIv3 密钥
}

在这里插入图片描述
Token
EncodingAESKey
WeixinAppId
WeixinAppSecret
这几个可以在微信公众号管理端获取,WeixinAppId,WeixinAppSecret必填。
在这里插入图片描述

在这里插入图片描述
TenPayV3_AppId,TenPayV3_AppSecret与公众号的一致
TenPayV3_MchId为微信支付商户的
TenPayV3_Key和TenPayV3_ApiV3Key一致在服务商后台,API安全中获取(第二篇文章有介绍)
TenPayV3_PrivateKey和TenPayV3_SerialNumber也在服务商后台,API安全中获取
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

香煎三文鱼

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值