# 支付宝支付Sdk.Core3.1 **Repository Path**: starry123/Alipay.AopSdk.Core3.1 ## Basic Information - **Project Name**: 支付宝支付Sdk.Core3.1 - **Description**: 支付宝支付Demo,实现支付、支付同步回调、支付异步通知、订单查询、退款、退款查询、订单关闭功能。采用支付宝服务端SDK:Alipay.AopSdk.Core3.1,使用ASP.NET Core MVC 3.1。 - **Primary Language**: C# - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 10 - **Forks**: 7 - **Created**: 2020-07-07 - **Last Updated**: 2024-09-12 ## Categories & Tags **Categories**: payment-dev **Tags**: None ## README # Alipay.AopSdk.Core3.1 ## 一.各个组件说明 组件名 | 说明 | 版本号 -------- | :------------ | :------------ Alipay.AopSdk.Core3.1 | ASP.NET 项目可以单独安装此组件。服务端SDK,封装了支付宝开放平台的所有API Alipay.AopSdk.F2FPay.Core3.1 | ASP.NET Core3.1 项目可以单独安装此组件。服务端SDK的ASP.NET Core组件 支付宝(Alipay)服务端SDK,采用.NET Standard 2.0,支持.NET Core >= 3.1,与官方SDK接口完全相同。完全可以按照官方文档进行开发。除了支持支付以外,官方SDK支持的功能本SDK全部支持,且用法几乎一样,代码都可参考官方文档代码。。由于精力有限,所以只做了几个Demo,但是其他功能可以参照官方的Demo来使用。可以使用官方文档中的示例代码。如有问题请加微信(wufeixiangba)有偿解答。 >本项目代码基于官方.NET Framework 代码重构而来以及加入了ASP.NET Core的扩展支持。 ## 二.ASP.NET Core 使用 ### 1.添加引用程序集 ```` Alipay.AopSdk.Core3.1 ```` ### 2.修改配置 ````csharp Alipay.Config -->>AlipayConfig.cs public static string alipay_public_key = ""; //开发者私钥 public static string merchant_private_key = "MIICXQIBAAKBgQDIgHnOn7LLILlKETd6BFRJ0GqgS2Y3mn1wMQmyh9zEyWlz5p1zrahRahbXAfCfSqshSNfqOmAQzSHRVjCqjsAw1jyqrXaPdKBmr90DIpIxmIyKXv4GGAkPyJ/6FTFY99uhpiq0qadD/uSzQsefWo0aTvP/65zi3eof7TcZ32oWpwIDAQABAoGBALrKLjBXyRrCFryxA2zyIZBO0TcaZ1T/4UKm/LDNL9hJB6wJOcBuFTQb0MFntkLALmOo2DYHQj4EzS+Xy2jp6pMsvCKG63XbU/7d7w1/ejTYxz+MX4ZzG6Ro5CmbpY1inbithQIfN3noK0h+PE7lkvOy43mTR4a+ceAtCh3gU2HpAkEA+XMqxbirmuhjRtHU4+YAOu0fY3JrXA1oErLiF0tJc1HhsWQuMv8v++peku4wWLhpM/8dpiWmf29zMcXBkNNWDQJBAM3ERi014EzIN91Dkdd6Kl4lfXEG62h0f2j5kvJGcZCTWKMLNyt7pjVYy4RRrrLLZiyGNqSKTzVDoaNWGGrTxoMCQQDavL54+uKfx7+mTkGcRgdVpLCth5vU8HyeSPYw7vfNg7Og1fQdC+CLyox70xnZ8ntt+PuKweEqRhSBRKPj1y3RAkAYjjzFtnE/GIG6MQ8dhOG7fIPc0jOTsptl3qrPqOJym3Lvei4qTUZHhYI8Fzde9PELjTTGLA9JzvliMasWTJGbAkB7UviY/ywp0GYCysV2QJZcakk5QZZ9mJwYJOh6hy6fBJJ8dq1F4aMRNbw/bTZqJuj4mmZUMrpK0JKeRjjFgzJF"; //开发者公钥 public static string merchant_public_key = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDIgHnOn7LLILlKETd6BFRJ0GqgS2Y3mn1wMQmyh9zEyWlz5p1zrahRahbXAfCfSqshSNfqOmAQzSHRVjCqjsAw1jyqrXaPdKBmr90DIpIxmIyKXv4GGAkPyJ/6FTFY99uhpiq0qadD/uSzQsefWo0aTvP/65zi3eof7TcZ32oWpwIDAQAB"; //应用ID public static string appId = "2013092500031084"; //支付宝网关 public static string serverUrl = "https://openapi.alipaydev.com/gateway.do"; ```` ### 3.在Controller中使用 ````csharp public async Task OrderCloses(string tradeno, string alipayTradeNo) { /*DefaultAopClient client = new DefaultAopClient(Config.Gatewayurl, Config.AppId, Config.PrivateKey, "json", "2.0", Config.SignType, Config.AlipayPublicKey, Config.CharSet, false);*/ AlipayTradeCloseModel model = new AlipayTradeCloseModel(); model.OutTradeNo = tradeno; model.TradeNo = alipayTradeNo; AlipayTradeCloseRequest request = new AlipayTradeCloseRequest(); request.SetBizModel(model); var response = await Configs.client.ExecuteAsync(request); return Json(response.Body); } ```` ## 三.发起支付请求 ````csharp [HttpPost] public void PayRequest(string tradeno, string subject, string totalAmout, string itemBody) { // 组装业务参数model AlipayTradePagePayModel model = new AlipayTradePagePayModel(); model.Body = itemBody; model.Subject = subject; model.TotalAmount = totalAmout; model.OutTradeNo = tradeno; model.ProductCode = "FAST_INSTANT_TRADE_PAY"; AlipayTradePagePayRequest request = new AlipayTradePagePayRequest(); // 设置同步回调地址 request.SetReturnUrl("https://localhost:44396/waplay/callback"); //// 设置异步通知接收地址 //request.SetNotifyUrl(""); // 将业务model载入到request request.SetBizModel(model); var response = Configs.client.SdkExecute(request); Console.WriteLine($"订单支付发起成功,订单号:{tradeno}"); //跳转支付宝支付 Response.Redirect(AlipayConfig.serverUrl + "?" + response.Body); } ```` ### 2.密钥生成的方法 在Alipay.KeyGen.Tool下,运行`start.bat`即可在keys目录下生成公钥和私钥,长度为2048。 这里生成的公钥和私钥,只需将**私钥**配置到配置文件文件中,公钥需要设置到支付宝后台。然后设置`SignType`为`RSA2`。配置文件中的公钥配置,不是我们自己生成的这个,需要到支付宝后台获取,这里需要注意一下。 ![](Alipay.KeyGen.Tool/1526457521967.png) ## 五.文档信息 官方文档: - [支付宝开放平台文档](https://docs.open.alipay.com/54/103419 "支付宝开放平台文档") ### 1.演示Demo >实现支付、支付同步回调、支付异步通知、订单查询、退款、退款查询、订单关闭、扫码支付功能 Alipay.Core.Demo 沙盒测试推送的数据和异步回调的数据如下: ``` Notify: { "total_amount":"2.00", "subject":"测试充值", "body":"S_测试充值", "out_trade_no":"NO20200708090330034", "app_id":"20161013006279", "gmt_create":"2020-07-08 09:03:43", "charset":"utf-8", "gmt_payment":"2020-07-08 09:03:54", "notify_time":"2020-07-08 09:03:55", "sign":"qexAWZhiXD/rIYQ==", "buyer_id":"2088102179648860", "invoice_amount":"2.00", "version":"1.0", "notify_id":"20200708002220355048860507255497", "fund_bill_list":"[{\"amount\":\"2.00\",\"fundChannel\":\"ALIPAYACCOUNT\"}]", "notify_type":"trade_status_sync", "trade_status":"TRADE_SUCCESS", "trade_no":"20200708220448860501305191", "auth_app_id":"2016101067279", "receipt_amount":"2.00", "point_amount":"0.00", "buyer_pay_amount":"2.00", "sign_type":"RSA2", "seller_id":"20881021793259" } PayRequest model------------------------------------------------------: { "total_amount":"2" "subject":"测试充值", "body":"S_测试充值", "out_trade_no":"NO20200708959169359", "timeout_express":"10m", "product_code":"FAST_INSTANT_TRADE_PAY", "agreement_sign_params":null, "disable_pay_channels":null, "enable_pay_channels":null, "extend_params":null, "goods_detail":null, "goods_type":null, "integration_type":null, "invoice_info":null, "passback_params":null, "promo_params":null, "qr_pay_mode":null, "qrcode_width":0, "request_from_url":null, "royalty_info":null, "store_id":null, "sub_merchant":null, "time_expire":null, } ``` ## 支持 ![微信](https://images.gitee.com/uploads/images/2021/0611/181118_373a8607_958369.jpeg "微信图片_20210611180033.jpg") ![输入图片说明](https://images.gitee.com/uploads/images/2021/0611/181139_b082cf51_958369.jpeg "微信图片_20210611180040.jpg")