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.支付宝支付相关问题

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏雨过天晴

Android Studio 多渠道打

1433
来自专栏IT笔记

前后端分离之SpringBoot项目Token认证

写在开始 有人说,爱上一座城,是因为城中住着某个喜欢的人。其实不然,爱上一座城,也许是为城里的一道生动风景,为一段青梅往事,为一座熟悉老宅。或许,仅仅为的只是这...

4029
来自专栏ChaMd5安全团队

ssctf2017_WriteUp

ssctf2017_WriteUp From ChaMd5安全团队核心成员 pcat&poyoten&lncken 【 杂项 】 签到 Z2dRQGdRMWZ...

5489
来自专栏菩提树下的杨过

再谈web.config/app.config敏感数据加/解密的二种方法

转载请注明来自"菩提树下的杨过" 一.利用代码加解密 using System.Web.Configuration; ... //加密web.Config...

2428
来自专栏向治洪

studio多渠道打包

由于国内Android市场众多渠道,为了统计每个渠道的下载及其它数据统计,就需要我们针对每个渠道单独打包,如果让你打几十个市场的包岂不烦死了,不过有了Grad...

1818
来自专栏bboysoul

cve-2017-11882漏洞利用

这是一个潜伏了17年之久的远程代码执行漏洞,这个漏洞影响了目前所有的流行office软件,原理是利用了office的一个EQNEDT32.EXE组件,就是公式编...

564
来自专栏开发之途

Gradle 常用配置总结

当项目逐渐演进的过程中,主工程依赖的 Module 可能会越来越多,此时就需要统一配置各个 Module 的编译参数了

653
来自专栏黑白安全

ctf工具包 ctf Toolkit 渗透测试工具包 隐秘数据破解

│ ├── caidao-20160620-www.maicaidao.com.7z

3072
来自专栏Timhbw博客

Hexo-完全免费全平台搭建个人博客(2)-域名主题设置

2017-03-1011:01:58 发表评论 913℃热度 Hexo-完全免费全平台搭建个人博客(1)-整体搭建 上一篇文章把 Hexo 博客整体搭建一遍了...

30512
来自专栏跟着阿笨一起玩NET

.NET加密配置文件connectionStrings节点

直接将语句拷贝到.BAT文件中,D:\Program Files\Microsoft\.NET Pet Shop 4.0\Web 为相应的web.config所...

1042

扫码关注云+社区