文档章节

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

lybb_lbb
 lybb_lbb
发布于 2017/09/07 16:55
字数 1205
阅读 342
收藏 2
点赞 0
评论 2

废话不多说直接干:

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

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

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

© 著作权归作者所有

共有 人打赏支持
lybb_lbb
粉丝 0
博文 26
码字总数 8357
作品 0
闵行
加载中

评论(2)

lybb_lbb
lybb_lbb

引用来自“OSC_qTscWY”的评论

你好0
我想问一下,自己做的网上商城实战项目,可以用支付宝沙箱吗?
沙箱是虚拟的,是阿里为了让开发者进行正式开发之前做的练习,是不可以用到正式的项目的。如果不商用,只是自己做做,当然可以了
OSC_qTscWY
OSC_qTscWY
你好0
我想问一下,自己做的网上商城实战项目,可以用支付宝沙箱吗?
App 集成支付宝支付接口(一)沙箱配置

以前没有弄过支付,公司项目中要集成支付接口,首先集成支付宝支付接口,所以才来捣鼓它。官方app太多。网上找的资料也不全面,特别是服务端,资料少、描述不清晰、重点没有说明。下面开始我...

fengzhi714
2016/12/08
3.6K
0
小柒2012/spring-boot-pay

spring-boot-pay 支付服务:支付宝,微信,银联详细 代码案例 (除银联支付可以测试以外,支付宝和微信支付测试均需要企业认证,个人无法完成测试),项目启动前请仔细阅读 注意事项 。 API接口...

小柒2012
2017/08/02
0
0
java实现沙箱测试环境支付宝支付(demo)和整合微信支付和支付宝支付到springmvc+spring+mybatis环境全过程(支付宝和微信支付、附源码)

文章有不当之处,欢迎指正,如果喜欢微信阅读,你也可以关注我的微信公众号:,获取优质学习资源。 一、支付宝测试环境代码测试 1.下载电脑网站的官方demo: 下载地址:https://docs.open.a...

公众号_好好学java
06/21
0
0
支付宝使用流程和踩坑小记(附Demo)

支付宝使用流程和踩坑整理 官方开发指南 本文记录了我使用支付宝的一些过程 第一部分是一些我根据官方文档中摘录的可用的重要信息 第二部分是整理的 iOS/Android App 接入主要流程 && Demo ...

xiaoyouPrince
05/24
0
0
有谁用过支付宝沙箱环境

支付宝有个支付宝沙箱环境,有谁用过这个东西。 我想在上面测试支付业务流程。但是上面弄个好烂,不知道怎么用。

xinson
2015/08/25
7.8K
1
Magento银联支付模块|Magento1.9 Unionpay中国银联支付插件|支持PC、手机移动端支付|2016最新Unionpay5.0.0支付接口

功能 严格按照中国银联Unionpay)接口文档编写代码。 中国银联(Unionpay)异步通知机制,确保订单状态及时更新。 安全性加强,使用RSA加密验签机制,防止数据窥探、伪造、篡改。 完备的支付日志...

Alipaymate
2016/07/05
180
0
mycncart 之支付宝即时到帐支付方式

支付宝方面的即时到帐方式分为PC端和移动端,本支付宝即时到帐支付方式适合于PC端。 自mycncart 1.0版本开始已经默认整合了支付宝即时到帐方式,自mycncart 1.1版本开始,由于默认集成了支付...

OpenCart中国
2015/12/27
27
0
银联支付-初次接触

银联开开放平台首页 1、注册 银联开发平台 https://open.unionpay.com 平台分为三个角色 我是商户 我是机构 我是开发者 第一反应我是开发者就直接申请我是开发者的角色。但并没有如愿以偿如下...

Javen205
2017/10/06
0
0
微信支付2016开发调试过程记录

最近换了家公司,因为以前也是做支付的来这个公司直接让我从零开始搭建支付服务。首先是微信支付宝的第三方接入。我是做java开发的。支付宝有接入的sdk就是一个jar包。而且有沙箱环境测试帐号...

挨踢人生
2016/11/15
0
0
小柒2012/springMvc-dubbo-pay

springMvc-dubbo-pay 此版本为springMvc整合版,boot版本见spring-boot-pay 有时候开发者想要的不一定是一个大而全的项目,而是可以集成到适合我们项目中的Demo。 以下所有支付Demo,绝非唬人...

小柒2012
2017/08/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

mysql 主从复制中遇到的错误!

。。。。。

万建宁
12分钟前
0
0
DUBBO 详细介绍

摘要: 主要核心部件: Remoting: 网络通信框架,实现了 sync-over-async 和 request-response 消息机制. RPC: 一个远程过程调用的抽象,支持负载均衡、容灾和集群功能 Registry: 服务目录框架...

明理萝
22分钟前
0
1
4 个快速的 Python 编译器 for 2018

简评:Python 和其他的解释型语言一样经常被吐槽性能不行,所以开发人员为了提升性能创建了不少编译器,本文则选取其中的四个做了基准测试。 Python 其实是一种相当快的语言,但它并不像编译...

极光推送
26分钟前
0
0
spring boot注册多个MQ服务器的问题

关于注册到多个MQ源的文章已经有很多了,这里记录一下声明queue的坑; 如果使用注册bean的方式声明queue,会导致声明的queue同时被注册到所有的MQ源上; //如果使用下面的声明方式,que...

placeholder
27分钟前
0
0
Java面试基础篇——第九篇:BIO,NIO,AIO的区别

现在IO模型主要分三类:BIO(同步阻塞IO),NIO(同步非阻塞IO),AIO()。 先来看看BIO。 1. BIO 服务端接受到请求后,要指派或新建一个线程去处理客户端的IO请求,直到收到断开连接的指令。这么做...

developlee的潇洒人生
32分钟前
0
0
@RequestMapping @ResponseBody 和 @RequestBody 用法与区别

1.@RequestMapping 国际惯例先介绍什么是@RequestMapping,@RequestMapping 是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为...

特拉仔
34分钟前
1
0
基于 HTML5 结合互联网+ 的 3D 隧道

前言 目前,物资采购和人力成本是隧道业发展的两大瓶颈。比如依靠民间借贷,融资成本很高;采购价格不透明,没有增值税发票;还有项目管控和供应链管理的问题。成本在不断上升,利润在不断下...

xhload3d
36分钟前
0
0
济南小程序热度分析

原文链接:http://www.jnqianle.cn/company/2072.html

tianma3798
37分钟前
1
0
大数据软件

beats 采集 kafka spark hive es grafana zeppelin

ArlenXu
39分钟前
0
0
Mac item2常用快捷键

标签 新建标签:command + t 关闭标签:command + w 切换标签:command + 数字 command + 左右方向键 切换全屏:command + enter 查找:command + f 分屏 水平分屏:command + d 垂直分屏:c...

说回答
42分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部