您的位置:首页 > 其它

支付宝支付(PC端WEB支付)DEMO实例(沙箱环境)

2017-10-28 00:21 483 查看
废话不多说直接干:

第一步:登录蚂蚁金服开放平台蚂蚁金服开放平台连接,在这里你可以使用自己的支付宝进行登录,也可以使用公司的企业账号登录。

第二步:进入开发者中心,在左边的菜单找到“沙箱环境”,并点击沙箱应用

在这里你可以选择创建应用,也可以直接使用沙箱环境测试,沙箱环境和自己创建应用的效果是差不多的【应用测创建,只需要跟着网页提示进行就可以了】,因为使用支付宝的 手机网站支付接口 是需要和支付宝进行签约的,所以我在测试的时候使用的是沙箱环境,而使用支付宝的接口,需要先下载支付宝提供的demo,然后将demo导入自己的开发工具中,然后在里面修改配置文件。demo链接,我用的是服务窗的DEMO,在下载完成之后,解压,然后将工程导入开发工具。

第三步:接下来,我们需要在constants包里面配置,自己沙箱的应用环境



这里的应用公钥,是要我们去支付宝那儿下载一个公钥生成工具,RSA秘钥生成连接,根据自己的电脑系统选择,



下载、解压,然后生成秘钥,注意:文件夹的目录中一定不能带有中文字符吗,不然工具不能使用,这个步骤我就不一步步的说了。,将生成的公钥如下图,配置到查看应用公钥那儿,第一次登陆的应该现实的是配置公钥。点击确定,然后会生成支付宝公钥。



接下来我们就可以配置下载的demo里面的常量了。



在这个类里面配置常量:这里就用文字描述了 ALIPAY_PUBLIC_KEY=“填写的是支付宝的公钥,就是你配置完自己的公钥后生成的支付宝公钥,在网页上的” APP_ID=“沙箱的APP_ID” PRIVATE_KEY="是在生成公钥的同时,生成的packs8的私钥,在自己的文件夹可以找到" PUBLIC_KEY=“这就是刚配置的公钥了” ALIPAY_GATEWAY=“这个一定要注意了。这个要改成测试环境的网关,

https://openapi.alipaydev.com/gateway.do
在使用自己创建的应用的时候,就可以使用demo默认的网关了”

第四步:接下来是测试,在测试之前需要有一个域名,将你的访问地址放到外网上,这里我使用的natapp,natapp网址,接下来简单介绍一下natapp怎么使用(方便整个demo可以跑起来)。

进入natapp主页之后,根据自己的系统下载相应的客户端,我用地WIN7 64位,所以下载了WINDOWS 64的,如下图



下载之后解压,解压之后进入到目录里,会有一个natapp.exe文件。接下来要注册一个账号密码,注册好之后再natapp主页进行登录



然后记得进行实名认证,认证之后才可以购买免费的隧道进行测试使用。当购买好免费的隧道之后



点击配置,进行简单的配置,将端口80改成8080(本地127.0.0.1或者localhost的默认端口,你的服务器也要用这个,当然你也可以改成你喜欢的,总之要对应),配置好了之后,可以进行登录了,现在双击natapp.exe运行起来,然后输入natapp -authtoken=你的authtoken(这个在你的隧道信息里有),就可以登录,然后会给你一个网址,这个网址就是你本地对外的网址。

第五步:接下来是测试代码

创建一个Servlet,然后将doPost(doGet方法也可以)方法替换成下面的代码

public void doPost(HttpServletRequest httpRequest,
HttpServletResponse httpResponse) throws ServletException,
IOException {
AlipayClient alipayClient = AlipayAPIClientFactory.getAlipayClient();
AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();// 创建API对应的request
alipayRequest.setReturnUrl("http://这里是natapp给你的地址/fuwuchuang_demo/return_url.jsp");
alipayRequest.setNotifyUrl("http://这里是natapp给你的地址/fuwuchuang_demo/notify_url.jsp");// 在公共参数中设置回跳和通知地址
String currentTime = System.currentTimeMillis()+"";
alipayRequest.setBizContent("{" +
"    \"out_trade_no\":" +currentTime+","+
"    \"product_code\":\"FAST_INSTANT_TRADE_PAY\"," +
"    \"total_amount\":100.00," +
"    \"subject\":\"大乐透\"," +
"    \"body\":\"大乐透\"," +
"    \"passback_params\":\"merchantBizType%3d3C%26merchantBizNo%3d2016010101111\"," +
"    \"extend_params\":{" +
"    \"sys_service_provider_id\":\"2088102172277531\"" +
"    }"+
"  }");//填充业务参数

String form = "";
try {
form = alipayClient.pageExecute(alipayRequest).getBody(); // 调用SDK生成表单
} catch (AlipayApiException e) {
e.printStackTrace();
}
httpResponse.setContentType("text/html;charset=" + "UTF-8");
httpResponse.getWriter().write(form);// 直接将完整的表单html输出到页面
httpResponse.getWriter().flush();
httpResponse.getWriter().close();
}

代码中的return_url.jsp和notify_url.jsp自己创建出来,用于处理返回结果(自己的业务)

记得要配置Servlet(web.xml文件)

下面是测试结果:



这个只是PC端的DEMO,后面我会继续研究其他方式,会继续共享出来的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  支付宝