首页 > 编程知识 正文

支付宝沙箱支付教程个人测试,支付宝沙箱app

时间:2023-05-06 19:22:25 阅读:271454 作者:476

一.沙箱环境简介

支付宝有一个供开发者测试使用的沙箱环境,会提供一个沙箱版的支付宝app、一个商家账户、一个买家账户。有了这个,可以让我们跳过商家入驻、企业资质审核等过程,开箱即用,降低了学习成本。

 

1.获取沙箱账号,下载沙箱app

 

进入到支付宝支付官网(https://open.alipay.com/platform/developerIndex.htm),点击我是开发者,在新的页面右上角,用你自己的支付宝扫码登录,再点击开发服务中的研发服务

 

此时就到了沙箱应用的控制台,会为你分配一个APPID:

 

 

 

继续向下沙箱工具中会有一个沙箱版支付宝app可以下载,下载后用支付宝分配的沙箱账号密码可以登录沙箱版app

 

 

2.设置沙箱密钥配置

文档位置:https://opendocs.alipay.com/open/54/01g6qm

 

密钥工具下载地址:https://opendocs.alipay.com/open/291/105971

 

设置沙箱应用的公钥和私钥

 

出于安全性的考虑,我们需要生成一份公钥和私钥,公钥提供给支付宝,支付宝对数据进行加密;私钥用于解析支付宝传来的加密数据,由我们自行保管。支付宝提供了公钥和私钥的生成工具,在文档中心点击开发工具

1)支付宝提供的公钥私钥生成工具下载

密钥工具下载地址:https://opendocs.alipay.com/open/291/105971

2)下载完成后打开应用,生成公钥和私钥

 

 

3)将生成的公钥私钥来设置沙箱应用的公钥和私钥

 

 

 

二.内网穿透介绍

参考博客:https://blog.csdn.net/wzy18210825916/article/details/90738880

https://blog.csdn.net/qq_41287423/article/details/86547044

 

1.内网穿透介绍

 

想把项目集成到微信,你的项目可以在外网上访问,而且微信也说了,用户的一系列事件都要推送给你,如果你的项目在外网访问不到,微信就没法推送事件,比如说支付成功,微信会回调通知你支付成功后的交易信息,所以这就要求你需要有自己的服务器,也许你可以使用你们公司的服务器,但是如果是学生,只是想学一下公众号的开发,没必要专门买一台服务器

通过natapp、花生壳等穿透工具就可以把你的电脑映射到外网上,这样你只需要在你本地搭建好服务器运行环境,外网就可以访问你的项目了。

 

顺便说一下:其实真正的公众号开发中,哪怕是公司有自己的服务器,往往也是通过内网穿透的方式来测试开发。想一下,如果我改了一点代码,还得重新把项目打包,发布到服务器,然后重启服务器……这个过程,远不如我在IDEA开发工具中重新跑一遍项目,会方便很多。

 

 

 

2.安装和使用内网穿透工具natapp

参考博客:https://blog.csdn.net/qq_41287423/article/details/86547044

 

 

三.支付宝支付介绍

 

1.支付宝支付业务流程

 

上面的流程图,已经大致描述了发起支付的过程,这里笔者用自己的语言,详细地转化一下:

 

下单。这里的下单,在项目中往往表现为用户确认了订单、然后选择支付方式、点击立即支付,即当用户点击“立即支付”时才产生的动作。 这一步要发送一个请求到我们的服务器,假如说系统中立即支付的API路径是/pay,参数一般就是订单包含的订单项,如商品id、购买数量、优惠券id等。

 

服务器端处理用户的下单请求。在这一步,是业务比较多的一步,也是关键步骤。我们根据客户端传来的商品id、数量、优惠券等参数,计算出每一个商品的单价、订单的总金额等(金额是不应该由客户端直接传的,应该由服务器端计算,更安全)。再生成一个订单号。然后调用一个接口,把这些参数(如商品名称、支付金额、订单号等)打包传给支付宝,也就是对应上图中的1.1。

 

依然是处理用户的下单请求,只是我嫌段落太长,换一段。在图中的1.1,我们调用了支付宝的接口。其实图中还少了一步1.2,那就是支付宝会返回一段html文档,就是大家经常看到的带二维码的PC端支付页面。请注意,到这一步,对客户端来说依然是在访问/pay接口,因为我们还没有对请求作出响应,只是一直在和支付宝交互罢了。所以,我们把支付宝返回的html文档作为响应信息,返回给客户端,客户端直接加载这一段html文档,用户就看到了一个支付页面。

 

到了这里,对应上图中的2、3、4、5步,和我们的服务器就没关系了,完全是用户在进行支付的过程。

 

到了第6步,用户支付完成,支付宝会跳转到一个我们指定的网页,这个网页一般是我们自定义的页面,比如在网页上显示“您已成功购买xxx商品,感谢您的支持”等。注意,此处的returnUrl只是跳转到我们自定义的友好页面,告诉用户支付成功了,只做展示用途,并非真正的支付回调。

 

到了第7步,支付宝会调用我们指定的回调API接口,将一些参数传给我们,如交易流水号、订单号,我们可以根据这些信息查询交易是否真的成功了(第8步),从而执行后续的业务,比如将订单状态变为已支付、给用户增加积分、扣减优惠券……等。

 

 

 

四.支付宝支付demo 1.官网支付demo

支付宝官网提供的手机网站支付demo:https://opendocs.alipay.com/open/54/106682

 

 

2.自己写的支付demo

1)引入支付宝支付sdk

 

 

2)配置文件配置

 

 

3)支付模板编写

 

 

 

 

项目中只需在调用确认支付的接口时注入这个模板,调用模板,传递所需的vo即可

 

4)支付成功后回调

支付宝支付成功后会调用我们的系统,通知我们支付成功,并将支付成功后的交易信息传递给我们。主要的参数是商户订单号(即我们自己生成的订单号)和交易状态, 我们根据订单号是否交易成功,进行后面的业务逻辑,比如给用户加积分、将订单状态变为已支付、发送业务短信、通知商家接单……等等。

 

这个回调路径是配置文件中设置的notifyUrl;

 

回调结果参数

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。