using System.Threading.Tasks; using Alipay.AopSdk.Core; using Alipay.AopSdk.Core.Domain; using Alipay.AopSdk.Core.Request; using Newtonsoft.Json; namespace GxPress.Common.AliPay { public class PcPay { /// 发起支付请求 /// /// 外部订单号,商户网站订单系统中唯一的订单号 /// 订单名称 /// 付款金额 /// 商品描述 /// 设置异步通知接收地址 /// public string PayRequest(string tradeno, string subject, string totalAmout, string itemBody, string notifyUrl) { DefaultAopClient client = new DefaultAopClient(Config.Gatewayurl, Config.AppId, Config.PrivateKey, "json", "2.0", Config.SignType, Config.AlipayPublicKey, Config.CharSet, false); // 组装业务参数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(notifyUrl); // 设置异步通知接收地址 //request.SetNotifyUrl("http://payzzz.top/api/web/alipay/notify"); request.SetNotifyUrl("https://apk.tederen.com/service/api/web/alipay/notify"); // 将业务model载入到request request.SetBizModel(model); var response = client.SdkExecute(request); // Console.WriteLine($"订单支付发起成功,订单号:{tradeno}"); //跳转支付宝支付 return (Config.Gatewayurl + "?" + response.Body); } /// /// 订单退款 /// /// 商户订单号 /// 支付宝交易号 /// 退款金额 /// 退款原因 /// 退款单号 /// public async Task Refund(string tradeno, string alipayTradeNo, string refundAmount, string refundReason, string refundNo) { DefaultAopClient client = new DefaultAopClient(Config.Gatewayurl, Config.AppId, Config.PrivateKey, "json", "2.0", Config.SignType, Config.AlipayPublicKey, Config.CharSet, false); AlipayTradeRefundModel model = new AlipayTradeRefundModel(); model.OutTradeNo = tradeno; model.TradeNo = alipayTradeNo; model.RefundAmount = refundAmount; model.RefundReason = refundReason; model.OutRequestNo = refundNo; AlipayTradeRefundRequest request = new AlipayTradeRefundRequest(); request.SetBizModel(model); var response = await client.ExecuteAsync(request); var jsonModel = JsonConvert.DeserializeObject(response.Body); return true; } /// /// 关闭订单 /// /// 商户订单号 /// 支付宝交易号 /// public async Task OrderClose(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 client.ExecuteAsync(request); var jsonModel = JsonConvert.DeserializeObject(response.Body); return true; } } }