博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.NET Core 使用 Alipay.AopSdk.Core 常见问题解答
阅读量:6587 次
发布时间:2019-06-24

本文共 3301 字,大约阅读时间需要 11 分钟。

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只能用正式环境的网关,沙箱环境亦然。

沙箱网关: 正式网关:

3.扫码提示二维码无效

如果使用的沙箱环境进行的支付,那么不能使用正式版本的支付宝app进行扫码,需要使用沙箱版支付宝,在沙箱后台可以下载。

4.支付宝支付相关问题

668104-20171124222942718-1055422030.png

转载地址:http://unhno.baihongyu.com/

你可能感兴趣的文章
浅谈混合应用的演进
查看>>
死磕Android_App 启动过程(含 Activity 启动过程)
查看>>
inotify实时同步工具理论和实战
查看>>
SQL SERVER 2008数据库管理与维护总结
查看>>
nginx web服务理论与实战
查看>>
golang RWMutex读写互斥锁源码分析
查看>>
Tinker + Bugly + Jenkins 爬坑之路
查看>>
如何快速入手 Shell 脚本编程
查看>>
getElement四种方法返回的不同
查看>>
SpringBoot使用@Asyn注解注意事项
查看>>
「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)
查看>>
python爬取公众号,用最简单的方式爬虫
查看>>
节流函数和防抖函数
查看>>
使用HanLP增强Elasticsearch分词功能
查看>>
iOS 协议 委托 代理 delegate
查看>>
LeetCode 之 JavaScript 解答第98题 —— 验证二叉搜索树(Validate Binary Search Tree)
查看>>
VirtualApp实战之拿到女神朋友圈封面
查看>>
面试官:说说Mysql数据库分库分表,并且会有哪些问题?
查看>>
Vue Cli 3 搭建一个可按需引入组件的组件库架子
查看>>
MySQL索引详解
查看>>