.NET支付宝App支付接入的实例分析

1. 前言

.NET是Microsoft公司推出的一种面向对象的、运行于.NET Framework之上的编程语言。随着移动互联网的发展,移动支付成为了必不可少的一部分。支付宝作为中国领先的第三方移动支付平台,自然而然地成为了众多开发者们选择的支付方式之一。

2. 支付宝App支付接入流程

接入支付宝App支付,需要经过以下步骤:

2.1 注册开发者账号

注册支付宝开发者账号,开发者账号是一个唯一标识,所有的接口使用都需使用该账号(需要实名认证)。注册开发者账号之后,需要开通移动支付接口。

2.2 下载并安装支付宝SDK

下载.NET支付宝SDK并解压缩到本地文件夹。里面包含的文件中,我们主要需要注意的是如下几个文件:

AlipaySDKNet.dll #Alipay SDK 的 DLL 文件

AliPayConfig.cs #保存商户信息

StartUp.cs #调用 Alipay SDK 的入口类

2.3 配置应用信息

在开发者平台创建应用并获取到应用的AppId(应用ID)、公钥、私钥等信息,还需配置移动支付的回调地址。

2.4 开始支付流程

调用支付宝提供的接口,根据官方文档填写相应的请求数据。下文会结合实例演示如何配置请求数据。

3. 支付宝App支付接入实例

下面我们介绍一个简单的.NET支付宝App支付接入实例。

3.1 准备工作

在实例演示之前,需要事先创建一个能够接收支付宝回调的应用,并保证开发者账号已经完成实名认证。

3.2 SDK配置

下载支付宝.NET SDK,编译程序前需要在config文件夹内创建“alipayinfo.config”,并按如下格式填写商户信息:

3.3 调用支付 SDK

sdk文件、商户信息、深色模式的自定义填写等已经准备好了。我们就可以编写发起支付请求和接收支付宝异步通知的页面了。下面是一段简单的代码段,展示了如何发起支付请求。

UIPocData poc = new UIPocData();

poc.DetailContent = new List>()

{

new KeyValuePair("subject", testData.Subject), # 商品名称

new KeyValuePair("body", testData.Body), # 商品详情

new KeyValuePair("out_trade_no", testData.OutTradeNo), # 商户订单号

new KeyValuePair("total_amount", testData.TotalAmount), # 商品金额

new KeyValuePair("timeout_express", "10m"), # 该笔订单允许的最晚付款时间,逾期将关闭交易

};

var response = AlipayApi.Request("", poc.DetailContent);

var orderString = response.Body;

redirectUri = string.Format("{0}?orderString={1}", RedirectUri, HttpUtility.UrlEncode(orderString));

关键部分解释:

subject:商品名称,必传参数,可用中文或英文描述

out_trade_no:商户订单号,必传参数,该参数的值由商户自行生成,需要保证商户系统内唯一

total_amount:订单总金额,必传参数,精确到小数点后两位

timeout_express:该笔订单允许的最晚付款时间,逾期将关闭交易,可取值为以分钟为单位的整数

response = AlipayApi.Request("", poc.DetailContent):发起支付请求

orderString = response.Body:获取请求的响应内容

3.4 支付结果验签

接受支付宝支付结果通知的接口,应该在服务器端实现。当支付宝完成用户付款后,会向商户app提供的NotifyUrl发送通知。在接收到通知后,商户服务器对该通知内容进行验签,确保返回的结果是合法的。支付宝提供了验签(RSA2)的工具类SignHelper,你也可以用其他语言的RSA2验签工具类。下面是一段验签方法的代码片段:

string content = HttpContext.Current.Request.Params["body"]; # Request 获取支付宝异步通知的内容

string publicKey = ConfigurationManager.AppSettings["aliPublicKey"].ToString(); # 获取公共的支付宝公钥

bool verifyResult = AlipaySignature.RSACheckContent(content, publicKey, "", "RSA2", true); # 验证开始

if (verifyResult)

{

// 验签成功,你可以在此对订单进行处理了

return "success";

}

else

{

// 验签失败

return "fail";

}

4. 总结

本文介绍了.NET接入支付宝App支付的流程。在编写.NET程序前,开发者需要创建开发者账号以及应用,下载支付宝.NET SDK并在本地配置应用信息,最后在代码执行前与支付宝进行验签操作。希望此文能够对.NET开发者接入支付宝App支付提供帮助。

后端开发标签