1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > .net调用支付宝的沙箱测试接口 完美调通(网页支付)

.net调用支付宝的沙箱测试接口 完美调通(网页支付)

时间:2019-03-14 21:36:15

相关推荐

.net调用支付宝的沙箱测试接口 完美调通(网页支付)

最近做金融行业的项目,需要有支付功能,现在支持最多的就是支付宝和微信支付。支付宝在审核中,微信暂时不开发。

看了看支付宝的开放平台,有个沙箱环境,不就是公共测试的环境吗?那就顺便调通一下。看看原理。

前提是在支付宝开放平台有账号

首先在沙箱中创建应用,支付宝会帮你生成一个APPID(待会会作为参数传递到沙箱)和其他一些商户信息和应用信息。支付宝网关也是自动生成的,也是固定的。

接下来是填写应用公钥,将鼠标悬浮在可以查看生成方法。生成的时候注意选择PKCS1格式,这个是非JAVA适用的,密码长度官方建议使用2048。把商户应用公钥复制到上面的图片中的设置应用公钥,注意,每次点击生成密钥生成的都不一样,传参数的时候要和你设置到沙箱中的公钥一致。如果忘记了可以查看保存在本地的文件,每次生成都保存在本地。

至于下边的RSA密钥,应用网关,等等都可以不设置。

接下来就是写代码了

第一步:在支付宝官网下载关于.net的SDK demo案例

网址:https://doc./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"];//沙箱中的APPIDstatic 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";// 组装业务参数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(AliPayReturn_url);// 设置异步通知接收地址request.SetNotifyUrl("");// 将业务model载入到requestrequest.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、就是咱们自己的页面

我配置文件的回掉地址:图

接下来就可以在自己的页面进行数据的处理了

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