ASP.NET Core 使用 Alipay.AopSdk.Core 常见问题解答
1.Alipay.AopSdk.Core.AopException:“您使用的私钥格式错误,请检查RSA私钥配置,charset = UTF-8”
出现这个问题,就是配置不正确。首先先保证你的密钥信息等是正确的,然后由于新版本新增了ASP.NET Core使用的相关组件,所以配置不放在Config.cs里面了,新的使用方式如下:
重要的事情说三遍!!! 这里需要注意的是,上面的配置信息也需要放在 appsettings.Development.json 里面,因为asp.net core会根据当前运行环境来配置具有运行环境名称的配置文件。
在启动时进行私钥检查
AlipayConfigChecker.Check(string signType,string privateKey)
两个参数第一个为签名算法类型,第二个为私钥。此方法作用为检查私钥是否有效。建议与注入配置的代码一致。
演示:
services.AddAlipay(options =>
{
options.AlipayPublicKey = Configuration["Alipay:AlipayPublicKey"];
options.AppId = Configuration["Alipay:AppId"];
options.CharSet = Configuration["Alipay:CharSet"];
options.Gatewayurl = Configuration["Alipay:Gatewayurl"];
options.PrivateKey = Configuration["Alipay:PrivateKey"];
options.SignType = Configuration["Alipay:SignType"];
options.Uid = Configuration["Alipay:Uid"];
}).AddAlipayF2F();
AlipayConfigChecker.Check(Configuration["Alipay:SignType"],Configuration["Alipay:PrivateKey"])
Alipay.AopSdk.AspnetCore
public void ConfigureServices(IServiceCollection services)
{
services.AddAlipay(options =>
{
options.AlipayPublicKey = "支付宝公钥";
options.AppId = "应用ID";
options.CharSet = "密钥编码";
options.Gatewayurl = "支付网关";
options.PrivateKey = "商家私钥";
options.SignType = "签名方式 RSA/RSA2";
options.Uid = "商户ID";
});
}
使用:
private readonly IAlipayService _alipayService;
public xxxController(IAlipayService alipayService)
{
_alipayService = alipayService;
}
_alipayService.Execute();
Alipay.AopSdk.F2FPay.AspnetCore
public void ConfigureServices(IServiceCollection services)
{
services.AddAlipay(options =>
{
options.AlipayPublicKey = "支付宝公钥";
options.AppId = "应用ID";
options.CharSet = "密钥编码";
options.Gatewayurl = "支付网关";
options.PrivateKey = "商家私钥";
options.SignType = "签名方式 RSA/RSA2";
options.Uid = "商户ID";
}).AddAlipayF2F();
}
使用:
private readonly IAlipayF2FService _alipayF2FService;
public xxxController(IAlipayF2FService alipayF2FService)
{
_alipayF2FService = alipayF2FService;
}
_alipayF2FService.Execute();
这里的配置信息推荐放在appsettings.json里面
services.AddAlipay(options =>
{
options.AlipayPublicKey = Configuration["Alipay:AlipayPublicKey"];
options.AppId = Configuration["Alipay:AppId"];
options.CharSet = Configuration["Alipay:CharSet"];
options.Gatewayurl = Configuration["Alipay:Gatewayurl"];
options.PrivateKey = Configuration["Alipay:PrivateKey"];
options.SignType = Configuration["Alipay:SignType"];
options.Uid = Configuration["Alipay:Uid"];
}).AddAlipayF2F();
appsettings.json
{
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Error"
}
},
"Alipay": {
"AlipayPublicKey": "",
"AppId": "",
"CharSet": "UTF-8",
"Gatewayurl": "https://openapi.alipaydev.com/gateway.do",
"PrivateKey": "",
"SignType": "RSA2",
"Uid": ""
}
}
另一种原因
生成的key有问题,请保证key是用支付宝RSA密钥生成工具生成的或者openssh命令生成的,格式为PKCS1
2.AppId无效
(1)首先确保AppId是正确的,然后调试代码查看Appid是否被正确获取,若没有被正确获取查看上面appsettings.Development.json的问题。
(2)AppID和支付宝网关匹配不正确,正式环境的AppId只能用正式环境的网关,沙箱环境亦然。
沙箱网关:https://openapi.alipaydev.com/gateway.do 正式网关:https://openapi.alipay.com/gateway.do
3.扫码提示二维码无效
如果使用的沙箱环境进行的支付,那么不能使用正式版本的支付宝app进行扫码,需要使用沙箱版支付宝,在沙箱后台可以下载。
4.支付宝支付相关问题

ASP.NET Core 使用 Alipay.AopSdk.Core 常见问题解答的更多相关文章
- 使用开源项目Alipay.AopSdk.Core完成支付宝网页登录
核心方法: public IActionResult UserInfoCallBackAli() { var alipayClient = new DefaultAopClient(ConfigAli ...
- 基于Asp.Net Core Mvc和EntityFramework Core 的实战入门教程系列-1
来个目录吧: 第一章 第二章 第三章 暂时就这么多.后面路线更新吧 本系列文章为翻译加上我个人的使用心得理解,希望帮助热爱学习的程序员. 珍重声明:本系列文章会跟原文有点出入,去掉了罗里吧嗦的文字. ...
- [转帖]什么是Asp.net Core?和 .net core有什么区别?
什么是Asp.net Core?和 .net core有什么区别? https://www.cnblogs.com/itzhangxp/p/8322364.html 知道微软开始用 kestrel了 ...
- 什么是Asp.net Core?和 .net core有什么区别?
为什么要写这篇文章 写这篇文章有两个原因,第一个是因为新站点创建出来后一直空置着,所以写一篇文章放在这里.第二就是因为近来在做一些基于Asp.net core平台的项目开发,也遇到了一些问题,正好趁此 ...
- 什么是Asp.net Core?和 .net core有什么区别?(转)
什么是Asp.Net core 我相信很多C# Developer已经对于.net core不算陌生了,就算没有正式使用相信也应该有所了解.微软在推出来.net core的同时为了方便一些原有的项目可 ...
- ASP.NET Core 配置 Entity Framework Core - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core 配置 Entity Framework Core - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 配置 Entity Fram ...
- Asp.net core下利用EF core实现从数据实现多租户(1)
前言 随着互联网的的高速发展,大多数的公司由于一开始使用的传统的硬件/软件架构,导致在业务不断发展的同时,系统也逐渐地逼近传统结构的极限. 于是,系统也急需进行结构上的升级换代. 在服务端,系统的I/ ...
- Asp.net core下利用EF core实现从数据实现多租户(3): 按Schema分离 附加:EF Migration 操作
前言 前段时间写了EF core实现多租户的文章,实现了根据数据库,数据表进行多租户数据隔离. 今天开始写按照Schema分离的文章. 其实还有一种,是通过在数据表内添加一个字段做多租户的,但是这种模 ...
- ASP.NET Core:创建一个Core项目
ylbtech-ASP.NET Core:创建一个Core项目 1.返回顶部 1. 2. 3. 4. 5. 2.返回顶部 1.新建Razor页面 2. 3. 4.Abc 4.1.Abc ...
随机推荐
- app.config 配置多项 配置集合 自定义配置(3)
再说说利用app.config配置多个自定义的方法.先看这个例子:美国家庭Simpson的家里有父亲母亲和三个儿女,而中国的老王只有独生子女.结构如下: <?xml version=" ...
- [转载] NoSQL简介
摘自“百度百科”. NoSQL,泛指非关系型的数据库.随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从 ...
- 前端面试题(4)iframe有哪些优点?iframe缺点是什么?
优点: iframe能够原封不动的把嵌入的网页展现出来. 如果有多个网页引用iframe,那么你只需要修改iframe的内容,就可以实现调用的每一个页面内容的更改,方便快捷. 网页如果为了统一风格,头 ...
- 工作中用到的一些shell命令
1.将十进制转换为十六进制 for i in `seq 0 127`; do printf "%02x\n" $i; done
- IIS解决CPU和内存占用率过高的问题
发现进程中的w3wp占用率过高. 经过查询,发现如下: w3wp.exe是在IIS(因特网信息服务器)与应用程序池相关联的一个进程,如果你有多个应用程序池,就会有对应的多个w3wp.exe的进程实例运 ...
- css 模板
css RESET @CHARSET "gbk"; /*设置编码*/ body,h1,h2,h3,h4,h5,h6,hr,p,blockquote, /** 结构元素 **/ dl ...
- 了解python,利用python来制作日常猜拳,猜价小游戏
初次接触python,便被它简洁优美的语言所吸引,正所谓人生苦短,python当歌.python之所以在最近几年越发的炽手可热,离不开它的一些特点: 1.易于学习:Python有相对较少的关键字,结构 ...
- 使用numpy实现批量梯度下降的感知机模型
生成多维高斯分布随机样本 生成多维高斯分布所需要的均值向量和方差矩阵 这里使用numpy中的多变量正太分布随机样本生成函数,按照要求设置均值向量和协方差矩阵.以下设置两个辅助函数,用于指定随机变量维度 ...
- 【SSM之旅】Spring+SpringMVC+MyBatis+Bootstrap整合基础篇(一)项目简介及技术选型相关介绍
试水 一直想去搭建个自己的个人博客,苦于自己的技术有限,然后也个人也比较懒散.想动而不能动,想动而懒得动,就这么一直拖到了现在.总觉得应该把这几年来的所学总结一番,这样才能有所成长. 不知在何时,那就 ...
- web兼容性测试相关知识
一.客户端兼容性 1.浏览器的兼容性测试 a.内核角度 Tridnt内核:代表作IE.腾讯.遨游.世界之窗等 Gecko内核:代表作Firefox webkit内核:代表作Safari.Chrome ...