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安全中获取
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/479405.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ZYNQ 自定义AXI接口 IP(PWM)

系统框图 1 FPGA PWM源码 / // Description: pwm model // pwm out period frequency(pwm_out) * (2 ** N) / frequency(clk); // // // Revision History: // Date By Revision Change Description //--------------------------------------…

Vue2(七):超详细vue开发环境搭建(win7),nodejs下载与安装,安装淘宝镜像(报错已解决),配置脚手架

一、安装node.js 本来想粗略写一下的,但是搭建脚手架的时候,遇到了很多问题,浪费快两天时间,记录一下自己的解决办法希望对你们有帮助! 1.下载nodejs 安装包下载链接【CNPM Binaries Mirror】 下载我划线的这个&am…

vue学习日记14:工程化开发脚手架Vue CLI

一、概念 二、安装 1.全局安装&查看版本 注意启动cmd输入命令 要以管理员运行哦 安装了一次就行以后不用再创建了 yarn global addvue/cli vue --version 显示了版本号即可 2.创建项目架子 创建项目的路径在哪 项目就在哪 项目名字不能用中文 vue create project-n…

命令提示符——CMD基础操作介绍

💞💞 前言 hello hello~ ,这里是大耳朵土土垚~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 💥个人主页&#x…

初识C++(一)

目录 一、什么是C 二、关键字: 三、命名空间 : 1. C语言存在的问题: 2. namespace关键字: 3. 注意点: 4.使用命名空间分为三种: 四、输入输出: 五、缺省函数: 1. 什么是缺省…

PTA L2-026 小字辈

本题给定一个庞大家族的家谱,要请你给出最小一辈的名单。 输入格式: 输入在第一行给出家族人口总数 N(不超过 100 000 的正整数) —— 简单起见,我们把家族成员从 1 到 N 编号。随后第二行给出 N 个编号,…

java网络原理(三)----三次握手四次挥手

三次握手 三次握手是建立连接的过程,四次挥手是断开连接的过程,三次握手发生在socket.accept()之前。 客户端和服务器尝试建立连接的时候服务器就会和客户端进行一系列的数据交换称为握手,这个过程建立完了后,连接就好了。 A和B…

2024不起眼的“致富”野路子,不想打工了,做做这些暴利创业项目。2024个人创业做什么项目好;最适合白手起家的创业项目

经济大环境差,并不代表就没有机会。相反,主流经济不好正是另一些人所看重的千载难逢的机会。就像股票市场一样,有人靠做多赚钱,有人靠做空赚钱。下面我们就来分析一下哪些行业会在这个时候崛起。 首先二手行业会迅速崛起&#xff…

东芝复印机3115 日志清除

以管理员登录,默认的用户名是admin,密码123456. 点日志中的导出日志,逐个清除日志。

陪诊APP开发价格的价格是多少

随着社会的发展,人们的生活节奏越来越快,对于医疗服务的需求也在不断增加。特别是在老年人口逐渐增多的今天,陪诊服务成为越来越多人关注的焦点。那么,陪诊APP的开发价格需要多少钱呢?本文将从以下几个方面进行详细分析…

Android 地图SDK 去除缩放

问题 Android 地图SDK 去除缩放 详细问题 笔者进行Android 项目开发,接入高德地图SDK。但是默认在地图右下角有高德地图缩放按钮,现需要去除该按钮 预期效果 解决方案 mMapView.getMap().getUiSettings().setZoomControlsEnabled(false);代码含义解…

视频素材库哪里最好

哈哈,大家好!今天我要给大家带来的是视频素材库哪里最好的搞笑推荐,让你的视频创作更加轻松有趣! 视频素材库哪里最好?首先来说说蛙学网这个网站简直就是中国风视频素材的宝库!如果你想让你的视频有点中国味…

QT常见数据类型和类的使用

qDebug //基本打印 qDebug() << "Hello" << 123;//类似printf的打印int num 20;char str[20]"hello world";qDebug("如果只写在括号里&#xff0c;是不需要QDebug头文件的 %d %s", num, str);//打印十六进制数组 #define HexPrint…

紧急声明!致歉

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂 致歉 首先&#xff0c;给大家说声抱歉&#xff01; 最近mxxWechatBot的服务器一直不稳定&#xff0c;有很多原因&#xff0c; 比如说服务器到期了&#xff0c;讲服务器临时切换到家里&am…

【Review+预测】测试架构演进的曲折之路

文章目录 前言 一、“原始”阶段 二、“小打小闹”阶段 三、“小米加步枪”阶段 四、“摩托化部队”阶段 五、“骑兵连”阶段 六、“海军陆战队”阶段 七、“社区型组织”阶段 前言 近期公司的测试团队需要重新组织安排&#xff0c;本着谦虚谨慎的态度&#xff0c;我从…

基于python+vue 的一加剧场管理系统的设计与实现flask-django-nodejs-php

二十一世纪我们的社会进入了信息时代&#xff0c;信息管理系统的建立&#xff0c;大大提高了人们信息化水平。传统的管理方式对时间、地点的限制太多&#xff0c;而在线管理系统刚好能满足这些需求&#xff0c;在线管理系统突破了传统管理方式的局限性。于是本文针对这一需求设…

测试开发工程师(QA)职业到底需要干些什么?part1:移动端QA

概述 移动端QA测试开发工作主要涉及对移动应用程序进行质量保证和测试的开发工作。以下是移动端QA测试开发人员的主要职责和工作内容&#xff1a; 测试计划和策略制定&#xff1a;参与制定移动应用程序的测试计划和策略&#xff0c;确定测试范围、测试目标和测试方法。考虑到…

牛客小白月赛89(A~C)

小白赛怎么这么难打&#xff0c;是什么小白&#xff0c;我的世界小白吗。 A. 伊甸之花 给你一个数组 a&#xff0c;问你是否找出一个 不等于 a 的数组 b&#xff0c;满足 其中数值都要在 [1,m] 的范围内 直接在 a 数组上修改&#xff0c;可以发现如果改了 a[1],a[2]&#xff…

Oh My Bug || PHPmyAdmin导入csv文件时,502报错

解决&#xff1a; 在宝塔面板文件配置中加入一下代码 location / { proxy_pass http://localhost:888; } location /backend-api { rewrite ^/backend-api(.*)$ $1 break; proxy_pass http://你的ip地址; }

DP:斐波那契数列模型

创作不易&#xff0c;感谢三连支持 &#xff01; 斐波那契数列用于一维探索的单峰函数之中&#xff0c;用于求解最优值的方法。其主要优势为&#xff0c;在第一次迭代的时候求解两个函数值&#xff0c;之后每次迭代只需求解一次 。 一、第N个泰波那契数 . - 力扣&#xff08;…