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
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支付提供帮助。