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 ...
随机推荐
- maven构建SSM--pox.mxl
最近在做项目,把maven构建SSM的pom.xml文件内容小结一下: 在console中输入如下内容,使用maven创建java web项目: mvn archetype:generate -Dgr ...
- 新一代的昆明网络seo优化技巧
一年一度的双11又即将到来,今天选择在双11这天新注册了一个博客园,第一篇文章,我决定来谈一谈现在的网络SEO. 起首咱们来熟悉下SEO是什么,SEO全名叫Search Engine Optimiza ...
- [转载] RED-BLACK(红黑)树的实现TreeMap源码阅读
转载自http://lxy2330.iteye.com/blog/1664786 由于平衡二叉树与红黑树都是二叉排序树,又红黑树是对平衡二叉树的一种改进实现,所以它的很多思想算法都来源于排序二叉或平衡 ...
- centos6.9(Linux系统)安装VMware tools教程
VMware tools是虚拟机上虚拟硬件的驱动,可以实现鼠标的无缝移出移入,剪贴板共享,共享文件夹等功能.很多的Linux系统初学者,在安装centos6.9系统时,没有安装VMware tools ...
- ASP.NET Core教程【一】关于Razor Page的知识
关键文件和目录结构 按照asp.net core WEB应用程序向导,创建一个工程之后 你会发现如下几个目录和文件 wwwroot:放置网站的静态文件的目录 Pages:放置razor页面的目录 ap ...
- swaggerui在asp.net web api core 中的应用
Swaggerui 可以为我们的webapi提供美观的在线文档,如下图: 实现步骤: NuGet Packages Install-Package Swashbuckle.AspNetCore 在s ...
- ViewPager无限轮播与自定义切换动画
一直在寻求一个能用得长久的ViewPager,寻寻觅觅终于发现,ViewPager有这一个就够了. 注:并非完全原创 先看一下效果: 淡入淡出: 旋转: 无限轮播的ViewPager 主要设计思路(以 ...
- 深入理解ES6之——JS类的相关知识
基本的类声明 类声明以class关键字开始,其后是类的名称:剩余部分的语法看起来像对象字面量中的方法简写,并且在方法之间不需要使用逗号. class Person { //等价于prototype的构 ...
- ThinkPHP中处理模板引擎的volist标签
Volist标签主要用于在模板中循环输出数据集或者多维数组 必须得属性有:name属性,要输出的数据模板变量,id是循环变量. 其他属性参见开发手册. 通常模型的select方法返回的结果是一个二维数 ...
- Web应用与应用层协议
Web应用与应用层协议 本篇博文中的主要参考文献是<计算机网络高级教程>,分别是吴功宜老先生和吴英教授合著.这部教程是我研究生老师所推荐的网络必读科目,由于该教程讲解的基础知识详细,但内容 ...