支付宝支付(PC端WEB支付)DEMO实例(沙箱环境)
博客专区 > lybb_lbb 的博客 > 博客详情
支付宝支付(PC端WEB支付)DEMO实例(沙箱环境)
lybb_lbb 发表于8个月前
支付宝支付(PC端WEB支付)DEMO实例(沙箱环境)
  • 发表于 8个月前
  • 阅读 324
  • 收藏 2
  • 点赞 0
  • 评论 2

【腾讯云】新注册用户域名抢购1元起>>>   

废话不多说直接干:

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

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

在这里你可以选择创建应用,也可以直接使用沙箱环境测试,沙箱环境和自己创建应用的效果是差不多的【应用测创建,只需要跟着网页提示进行就可以了】,因为使用支付宝的 手机网站支付接口 是需要和支付宝进行签约的,所以我在测试的时候使用的是沙箱环境,而使用支付宝的接口,需要先下载支付宝提供的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,后面我会继续研究其他方式,会继续共享出来的。

标签: 支付宝
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 0
博文 23
码字总数 7891
评论 (2)
OSC_qTscWY
你好0
我想问一下,自己做的网上商城实战项目,可以用支付宝沙箱吗?
lybb_lbb

引用来自“OSC_qTscWY”的评论

你好0
我想问一下,自己做的网上商城实战项目,可以用支付宝沙箱吗?
沙箱是虚拟的,是阿里为了让开发者进行正式开发之前做的练习,是不可以用到正式的项目的。如果不商用,只是自己做做,当然可以了
×
lybb_lbb
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: