支付demo

发布时间 2023-10-27 11:36:02作者: 墨秀铜香

/// <summary>
/// 支付
/// </summary>
/// <returns></returns>
[Route("UpdatePaymentOrder")]
[HttpPost]
public async Task<Robj<string>> UpdatePaymentOrder()
{
Robj<string> result = new Robj<string>();
//商户订单号,商户网站订单系统中唯一订单号,必填
string out_trade_no = "NO000001";

//订单名称,必填
string subject = "商品支付";
//付款金额,必填
string total_fee = "100";
//商品描述,可空
string body = "";
//把请求参数打包成数组
SortedDictionary<string, string> sParaTemp = new SortedDictionary<string, string>();
sParaTemp.Add("service", ConfigPay.service);
sParaTemp.Add("partner", ConfigPay.partner);
sParaTemp.Add("seller_id", ConfigPay.seller_id);
sParaTemp.Add("_input_charset", ConfigPay.input_charset.ToLower());
sParaTemp.Add("payment_type", ConfigPay.payment_type);
sParaTemp.Add("notify_url", ConfigPay.notify_url);
sParaTemp.Add("return_url", ConfigPay.return_url);
sParaTemp.Add("anti_phishing_key", ConfigPay.anti_phishing_key);
sParaTemp.Add("exter_invoke_ip", ConfigPay.exter_invoke_ip);
sParaTemp.Add("out_trade_no", out_trade_no);
sParaTemp.Add("subject", subject);
sParaTemp.Add("total_fee", total_fee);
sParaTemp.Add("body", body);
//其他业务参数根据在线开发文档,添加参数.文档地址:https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7629140.0.0.O9yorI&treeId=62&articleId=103740&docType=1
//如sParaTemp.Add("参数名","参数值");
//建立请求
string text = Submit.BuildRequest(sParaTemp, "get", "确认");
result.Code = RCode.Success;
result.Result = text;
return await Task.FromResult(result);
}

/// <summary>
/// 支付成功返回更新订单
/// </summary>
/// <returns></returns>
[HttpPost]
public async Task<Robj<int>> UpdateOrder()
{
Robj<int> result = new Robj<int>();
int i = 0;
var sPara = new SortedDictionary<string, string>();
NameValueCollection coll = (NameValueCollection)HttpContext.Request.Form;
String[] requestItem = coll.AllKeys;
for (i = 0; i < requestItem.Length; i++)
{
sPara.Add(requestItem[i], HttpContext.Request.Form[requestItem[i]]);
}
//判断是否有带返回参数
if (sPara.Count > 0)
{
Notify aliNotify = new Notify();
bool verifyResult = aliNotify.Verify(sPara, HttpContext.Request.Form["notify_id"], HttpContext.Request.Form["sign"]);
if (verifyResult)//验证成功
{
//商户订单号
string out_trade_no = HttpContext.Request.Form["out_trade_no"];
//支付宝交易号
string trade_no = HttpContext.Request.Form["trade_no"];
//交易状态
string trade_status = HttpContext.Request.Form["trade_status"];

if (HttpContext.Request.Form["trade_status"] == "TRADE_SUCCESS")
{
//请不要修改或删除
await HttpContext.Response.WriteAsync("success");
}
else
{
//验证失败
await HttpContext.Response.WriteAsync("fail");
}
}
else
{
await HttpContext.Response.WriteAsync("无通知参数");
}
}
return await Task.FromResult(result);
}