Skip to content
Bitzsoft.Integrationsbitzsoft.integrations

Reference

支付宝 Payment

支付宝支付服务——RSA2(SHA256WithRSA)请求签名。

Last updated

基于支付宝开放平台网关 API 实现,采用 RSA2(SHA256WithRSA)请求签名机制。

包信息

  • NuGet 包:Bitzsoft.Integrations.Payment.Alipay
  • 接口:IPaymentProvider
  • 鉴权:RSA2(SHA256WithRSA)
  • Provider ID:alipay

配置

字段类型必填默认值说明
AppIdstring支付宝应用 AppId
AppPrivateKeystring应用私钥(PKCS#1 或 PKCS#8 PEM 格式,用于请求签名)
AlipayPublicKeystring支付宝公钥(PEM 格式,用于回调验签)
Gatewaystringhttps://openapi.alipay.com/gateway.do网关地址(沙箱 https://openapi-sandbox.dl.alipaydev.com/gateway.do
NotifyUrlstring?异步通知回调地址
SignTypestringRSA2签名算法类型(可选 RSA 即 SHA1WithRSA,不推荐)
TimeoutTimeSpan00:00:30HTTP 请求超时
HttpClientNamestringAlipayPaymentProvider命名 HttpClient 标识
{
"Alipay": {
"AppId": "your-app-id",
"AppPrivateKey": "-----BEGIN RSA PRIVATE KEY-----\n...\n-----END RSA PRIVATE KEY-----",
"AlipayPublicKey": "-----BEGIN PUBLIC KEY-----\n...\n-----END PUBLIC KEY-----",
"Gateway": "https://openapi.alipay.com/gateway.do",
"NotifyUrl": "https://your-site.com/callback/alipay",
"SignType": "RSA2"
}
}

注册

// 方式一:IConfiguration(默认读取 "Alipay" 配置节)
services.AddBitzsoftAlipayPayment(configuration);
// 方式二:委托配置
services.AddBitzsoftAlipayPayment(options =>
{
options.AppId = "your-app-id";
options.AppPrivateKey = File.ReadAllText("app_private_key.pem");
options.AlipayPublicKey = File.ReadAllText("alipay_public_key.pem");
options.Gateway = "https://openapi.alipay.com/gateway.do";
});

使用示例

var orderResult = await provider.CreateOrderAsync(new PaymentOrderRequest
{
OutTradeNo = "ORDER_20260801_001",
Subject = "商品订单",
TotalAmount = 99.90m,
Scene = PaymentScene.Web
});
var payUrl = orderResult.Data!.PayUrl;
// 查询状态
var status = await provider.QueryStatusAsync("ORDER_20260801_001");
// 退款
var refundResult = await provider.RefundAsync(new RefundRequest
{
OutTradeNo = "ORDER_20260801_001",
RefundAmount = 50.00m,
RefundNo = "REFUND_001"
});

鉴权机制

  • 请求签名:将所有请求参数按字典序排序拼接,使用应用私钥做 SHA256WithRSA 签名。
  • 回调验签:使用支付宝公钥验证异步通知签名。

已知限制

AppPrivateKey 支持 PKCS#1 或 PKCS#8 格式,通过 RSA.ImportFromPem 自动解析。统一接口覆盖标准支付场景,复杂业务通过 partial class 扩展。

100%

滚轮或按钮缩放 · 放大后拖动画面 · 双击切换 100% / 200%