1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > asp.net core 支付宝支付( 电脑2.0)

asp.net core 支付宝支付( 电脑2.0)

时间:2021-10-12 09:35:06

相关推荐

asp.net core 支付宝支付( 电脑2.0)

支付宝电脑支付实测在手机浏览器也可以唤醒手机支付宝进行支付,因此也可以作为支付宝手机web支付方式。支付宝电脑支付流程为使用支付宝官方sdk通过获取的支付宝参数构造DefaultAopClient实例,操作实例设置SetBizModel,设置SetNotifyUrl最后执行SdkExecute方法得到AlipayTradeAppPayResponse实例的Body属性,前端只需要获取该Body值写入到document中(相当于写入一个自动提交的表单)即可跳转到支付宝支付。

core平台没有支付宝官方sdk,但可以在nuget中搜索Alipay.AopSdk.Core(第三方库)并安装,该sdk功能和官方 framework版本的sdk的功能一致可以直接使用

2.定义支付宝配置类,配置类可以填写默认参数使用默认值,也可以从数据库/配置中读取配置赋值到该类,定义如下

public class AlipayConfig{// 应用ID,您的APPIDpublic string app_id = "";// 支付宝网关public string gatewayUrl = "/gateway.do";// 商户私钥,您的原始格式RSA私钥public string private_key = "";// 支付宝公钥,查看地址:/platform/keyManage.htm 对应APPID下的支付宝公钥,注意不是应用公钥,不是应用公钥,不是应用公钥。public string alipay_public_key = "";// 签名方式public string sign_type = "RSA2";// 编码格式public string charset = "UTF-8";// 同步回调地址public string return_url = ";// 异步回调地址public string notify_url = "";}

3.支付宝电脑2.0支付业务类,控制器中直接调用该业务方法,返回的一串表单字符串ajax传给前端直接追加写入到body中即可跳转支付宝支付

public class AlipayService{#region 字段AlipayConfig alipayConfig = new AlipayConfig();#endregion#region 构造方法public AlipayService(){}public AlipayService(AlipayConfig alipayConfig){this.alipayConfig = alipayConfig;} #endregion/// <summary>/// 支付宝电脑网站2.0支付,成功返回表单信息直接写入Response,失败返回空/// </summary>/// <param name="out_trade_no">订单号</param>/// <param name="subject">订单名称</param>/// <param name="total_amout">付款金额</param>/// <param name="body">商品描述</param>/// <returns></returns>public string GetAliPayTradePayRes(string out_trade_no, string subject, string total_amout, string body){DefaultAopClient client = new DefaultAopClient(alipayConfig.gatewayUrl, alipayConfig.app_id, alipayConfig.private_key, "json", "1.0", alipayConfig.sign_type, alipayConfig.alipay_public_key, alipayConfig.charset, false);// 组装业务参数modelAlipayTradePagePayModel model = new AlipayTradePagePayModel();model.Body = body;model.Subject = subject;model.TotalAmount = total_amout;model.OutTradeNo = out_trade_no;model.ProductCode = "FAST_INSTANT_TRADE_PAY";AlipayTradePagePayRequest request = new AlipayTradePagePayRequest();// 设置同步回调地址 request.SetReturnUrl(alipayConfig.return_url);// 设置异步通知接收地址 request.SetNotifyUrl(alipayConfig.notify_url);// 将业务model载入到request request.SetBizModel(model);AlipayTradePagePayResponse response = null;try{response = client.pageExecute(request, null, "post");//返回正常生成的表单信息,自动提交到支付宝页面,原生成信息可见改为隐藏return response.Body.Replace("<form", "<form style='display:none'");}catch (Exception exp){return "";}} }

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。