.net调用支付宝的沙箱测试接口 完美调通(网页支付)
来源:互联网 发布:仙界网络直播间rar下载 编辑:程序博客网 时间:2024/04/28 02:41
最近做金融行业的项目,需要有支付功能,现在支持最多的就是支付宝和微信支付。支付宝在审核中,微信暂时不开发。
看了看支付宝的开放平台,有个沙箱环境,不就是公共测试的环境吗?那就顺便调通一下。看看原理。
前提是在支付宝开放平台有账号
首先在沙箱中创建应用,支付宝会帮你生成一个APPID(待会会作为参数传递到沙箱)和其他一些商户信息和应用信息。支付宝网关也是自动生成的,也是固定的。
接下来是填写应用公钥,将鼠标悬浮在可以查看生成方法。生成的时候注意选择PKCS1格式,这个是非JAVA适用的,密码长度官方建议使用2048。把商户应用公钥复制到上面的图片中的设置应用公钥,注意,每次点击生成密钥生成的都不一样,传参数的时候要和你设置到沙箱中的公钥一致。如果忘记了可以查看保存在本地的文件,每次生成都保存在本地。
至于下边的RSA密钥,应用网关,等等都可以不设置。
接下来就是写代码了
第一步:在支付宝官网下载关于.net的SDK demo案例
网址:https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.Zpe5To&treeId=270&articleId=106291&docType=1
第二步:下载完后解压并新建自己的测试项目,添加现有项目‘找到解压好的文件添加后缀名为.csproj的文件’
然后添加相应的引用
或者添加引用 在sdk中的bin文件夹下的AOpSdk.dll文件
配置参数/// <summary> /// 因为嫌麻烦都写在web.config中 /// </summary> static string URL = ConfigurationManager.AppSettings["url"];//沙箱的支付宝网网关 static string APP_ID = ConfigurationManager.AppSettings["appid"];//沙箱中的APPID static string APP_PRIVATE_KEY = ConfigurationManager.AppSettings["APP_PRIVATE_KEY"];//自己生成的应用私匙 static string ALIPAY_PUBLIC_KEY = ConfigurationManager.AppSettings["ALIPAY_PUBLIC_KEY"];//沙箱中的支付宝公匙 static string AliPayReturn_url = ConfigurationManager.AppSettings["AliPayReturn_url"];//需要回调的地址支付成功后会直接调到此页面进行处理
参数完成,开始写实现前台有按钮的事件调到后台下面的代码
[HttpPost] public void index() { DefaultAopClient client = new DefaultAopClient(URL, APP_ID, APP_PRIVATE_KEY, "json", "1.0", "RSA2", ALIPAY_PUBLIC_KEY, "utf-8", false); // 外部订单号,商户网站订单系统中唯一的订单号 string out_trade_no = DateTime.Now.ToString("yyyyMMddHHmmss"); // 订单名称 string subject = "我靠"; // 付款金额 string total_amout = "0.01"; // 商品描述 string body = "12321345645"; // 组装业务参数model AlipayTradePagePayModel 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(AliPayReturn_url); // 设置异步通知接收地址 request.SetNotifyUrl(""); // 将业务model载入到request request.SetBizModel(model); AlipayTradePagePayResponse response = null; try { response = client.pageExecute(request, null, "post"); Response.Write(response.Body); } catch (Exception exp) { throw exp; } }///上面的代码可以在sdk源码中的pagepay文件夹下的pagepay.aspx.cs找到
然后是设置回调的页面的逻辑
public ActionResult ReturnUrl() { SortedDictionary<string, string> sPara = GetRequestGet(); int Result = 0; if (sPara.Count > 0)//判断是否有带返回参数 { bool flag = AlipaySignature.RSACheckV1(sPara, ALIPAY_PUBLIC_KEY, "utf-8", "RSA2", false); if (flag)//验证成功 { #region 验证成功对数据库执行操作 return Content("<script>alert('dfsalkfjl');</script>"); #endregion } else//验证失败 { Result = 0; // Cmn.Log.Write("异步支付验证失败!" + Request.Form); } } else { return Content("<script>location.href='/pay/Index'</script>"); } return View(); }
OK!
测试一下:
接着会回调到实现指定的回调页面如图
1、
2、
3、就是咱们自己的页面
我配置文件的回掉地址:图
接下来就可以在自己的页面进行数据的处理了
- .net调用支付宝的沙箱测试接口 完美调通(网页支付)
- asp.net 支付宝网页支付SDK的支付功能。(沙箱测试环境)
- 网页端调用支付宝支付接口
- 关于Android调用支付宝接口”有的手机无法调起网页支付”遇到的问题
- 支付宝接口开发-手机网站支付-沙箱测试
- 支付宝接口开发-手机网站支付-沙箱测试
- Asp.net 调用“支付宝”的接口实现网上支付
- 支付接口的调用
- 支付宝接口调用
- 调用支付宝接口
- 支付宝接口调用
- 支付宝接口调用
- 支付宝接口调用
- H5网页调用原生支付宝支付的完整demo
- .net 支付宝接口
- 支付开发(五)----支付宝支付之沙箱测试
- python调用支付宝支付接口例子
- .NET C# 支付宝条码支付接口
- 系统化认识RPC
- Android Accelerometer Sensor
- CListCtrl 设置选中状态
- Linux下安装NetworkManger
- batch_size的说明
- .net调用支付宝的沙箱测试接口 完美调通(网页支付)
- 使用Neo4j Java Driver操作Neo4j
- 混用int
- ldconfig 出现报错 ldconfig: /opt/ffmpeg/lib/libvpx.so.4 is not a symbolic link
- 面试题(两个栈实现一个队列和两个队列实现一个栈)
- 常用正则表达式整理【转】
- 大数据架构详解:从数据获取到深度学习
- 05:计算鞍点
- 十图详解TensorFlow数据读取机制(附代码)