zoukankan      html  css  js  c++  java
  • 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.支付宝支付相关问题

  • 相关阅读:
    app-framework学习--panel传值
    app-framework学习--动态管理panel
    app-framework学习--iscrolldemo
    app-framework学习--中文api
    app-framework学习--iscroll5+jquery+afui上拉加载下拉刷新
    DeepLearning tutorial(5)CNN卷积神经网络应用于人脸识别(详细流程+代码实现)
    提升深度学习模型的表现,你需要这20个技巧
    Deep Learning(深度学习)学习笔记整理系列之常用模型(四、五、六、七)
    池化
    卷积特征提取
  • 原文地址:https://www.cnblogs.com/stulzq/p/7873909.html
Copyright © 2011-2022 走看看