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 常见问题解答的更多相关文章

  1. 使用开源项目Alipay.AopSdk.Core完成支付宝网页登录

    核心方法: public IActionResult UserInfoCallBackAli() { var alipayClient = new DefaultAopClient(ConfigAli ...

  2. 基于Asp.Net Core Mvc和EntityFramework Core 的实战入门教程系列-1

    来个目录吧: 第一章 第二章 第三章 暂时就这么多.后面路线更新吧 本系列文章为翻译加上我个人的使用心得理解,希望帮助热爱学习的程序员. 珍重声明:本系列文章会跟原文有点出入,去掉了罗里吧嗦的文字. ...

  3. [转帖]什么是Asp.net Core?和 .net core有什么区别?

    什么是Asp.net Core?和 .net core有什么区别? https://www.cnblogs.com/itzhangxp/p/8322364.html 知道微软开始用 kestrel了 ...

  4. 什么是Asp.net Core?和 .net core有什么区别?

    为什么要写这篇文章 写这篇文章有两个原因,第一个是因为新站点创建出来后一直空置着,所以写一篇文章放在这里.第二就是因为近来在做一些基于Asp.net core平台的项目开发,也遇到了一些问题,正好趁此 ...

  5. 什么是Asp.net Core?和 .net core有什么区别?(转)

    什么是Asp.Net core 我相信很多C# Developer已经对于.net core不算陌生了,就算没有正式使用相信也应该有所了解.微软在推出来.net core的同时为了方便一些原有的项目可 ...

  6. ASP.NET Core 配置 Entity Framework Core - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core 配置 Entity Framework Core - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 配置 Entity Fram ...

  7. Asp.net core下利用EF core实现从数据实现多租户(1)

    前言 随着互联网的的高速发展,大多数的公司由于一开始使用的传统的硬件/软件架构,导致在业务不断发展的同时,系统也逐渐地逼近传统结构的极限. 于是,系统也急需进行结构上的升级换代. 在服务端,系统的I/ ...

  8. Asp.net core下利用EF core实现从数据实现多租户(3): 按Schema分离 附加:EF Migration 操作

    前言 前段时间写了EF core实现多租户的文章,实现了根据数据库,数据表进行多租户数据隔离. 今天开始写按照Schema分离的文章. 其实还有一种,是通过在数据表内添加一个字段做多租户的,但是这种模 ...

  9. 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 ...

随机推荐

  1. 如何编写通用的 Helper Class

    Github: https://github.com/nzbin/snack-helper Docs: https://nzbin.github.io/snack-helper 前言 什么是 help ...

  2. Attribute在.NET编程中的应用(三)

    用于参数的Attribute 在编写多层应用程序的时候,你是否为每次要写大量类似的数据访问代码而感到枯燥无味?比如我们需要编写调用存储过程的代码,或者编写T_SQL代码,这些代码往往需要传递各种参数, ...

  3. C#自动实现Dll(OCX)控件注册的两种方法

    尽管MS为我们提供了丰富的.net framework库,我们的程序C#开发带来了极大的便利,但是有时候,一些特定功能的控件库还是需要由第三方提供或是自己编写.当需要用到Dll引用的时候,我们通常会通 ...

  4. c++ const全局对象是如何处理的

    我主要是记录一个发现,目前我不能解释,先作个记录. const 只是一个 语义约束,由编译器强制实施的.使被约束的对象不能被直接访问修改. 我用 『直接』这词,因为在代码段中 ,用一个const 指针 ...

  5. man ctags

    ctags命令帮助   命令格式     ctags [options] [file(s)] 或     etags [options] [file(s)]   源文件参数     不同语言中对象的种 ...

  6. Python之re正则模块二

    13.编译的标志 可以用re.I.re.M等参数,也可以直接在表达式中添加"?(iLmsux)"标志 *s:单行,“.”匹配包括换行符在内的所有字符 *i:忽略大小写 *L:让&q ...

  7. javaweb-2-Tomcat初步学习与使用

    一.Tomcat服务器简介(此点网上官方有详尽的解释,故此不赘述,以学习使用为主) Apache Jakarta的开源项目 JSP/Servlet容器 二.Tomcat的目录结构 三.启动和停止Tom ...

  8. 你知道android的MessageQueue.IdleHandler吗?

    WeTest 导读 干货!干货!或许可以是一种处理问题的新思路哟! 前言 我们知道android是基于Looper消息循环的系统,我们通过Handler向Looper包含的MessageQueue投递 ...

  9. 前端worker之web worker

    web worker 背景 众所周知javascript是单线程的,同一时间内只能做一件事情. 这是十分必要的,设想,如果js是多线程的.有个dom元素两个线程同时做了改变,一个display:non ...

  10. C语言之二维数组棋盘游戏

    #include<iostream> #include<stdio.h> using namespace std; int main() { //-1 没人赢 0:O赢 1:X ...