java对接支付宝当面付
文章目录
- 支付宝当面付(条码支付)
- 一.账号初始配置
- 1.身份选择
- 2.完善信息和拓展身份
- 2.1完善信息
- 2.2拓展身份
- 二.沙箱环境应用配置
- 1. 沙箱应用
- 1.1必看部分
- 1.2选看部分
- 2. 沙箱账号
- 3. 沙箱工具
- 三.正式环境应用创建流程及配置
- 1. 创建应用指南
- 2. 选择应用类型
- 3. 创建应用
- 四.代码配置流程
- 1. 准备材料及说明
- 2. 代码配置
- 2.1项目结构
- 2.2集成至项目步骤
- 2.3配置文件说明
- 2.4签名和验签
支付宝当面付(条码支付)
官方参考文档
一.账号初始配置
1.身份选择
登录蚂蚁金服开放平台之后,需要选择入驻身份,身份确定了你要开发哪种应用,开发自研应用(只供自己使用)就选择自研开发者。
2.完善信息和拓展身份
2.1完善信息
- 进入主界面后,点击右上角账户信息,进入账户管理/合作伙伴管理界面。
- 在账户管理/合作伙伴管理界面完善和修改账户信息。
- 然后签署协议
2.2拓展身份
在账户管理/合作伙伴管理界面下方有角色身份一栏,如需要开发其他种类应用,可以点击“立即扩展”按钮进行身份扩展。
二.沙箱环境应用配置
点击开发者中心-研发服务-沙箱环境,进入沙箱环境页面,沙箱环境有三个信息,沙箱应用,沙箱账号,沙箱工具。
1. 沙箱应用
进入沙箱环境页面后,可以看到系统已经自动为你创建一个应用。
1.1必看部分
参数介绍:
APPID:沙箱环境自动生成,且唯一,必须与代码中APPID一致。
支付宝网关:沙箱环境自动生成,必须与代码一致,如果应用上线,代码中该地址配置为https://openapi.alipay.com/gateway.do,即去除地址中的dev字段。
RSA2(SHA256)密钥:必填,如未配置,该参数后只显示“设置应用公钥”,点击下载签名验签工具,下载解压后如图所示。
进入文件夹,运行bat后缀程序。
如下图所示,弹出工具框,根据开发语言选择密钥格式,因为目前新建应用只支持RSA2签名方式,所以密钥长度选择2048方可生效。
1.2选看部分
- 应用网关:选填,用于接收支付宝异步通知,例如口碑开店中,需要配置此网关来接收开发者门店被动通知,一旦填入之后,该项就不能为空了,一般不需要配置。
- 授权回调地址:选填,第三方授权或用户信息授权后回调地址。授权链接中配置的redirect_uri的值必须与此值保持一致,一旦填入之后,该项就不能为空了,一般不需要配置。
- RSA(SHA1)密钥:选填,推荐使用RSA2(SHA256)密钥,如果在上方配置已经配置过,该处不需要配置。
- AES密钥:选填,对请求的报文内容进行加密,提高安全性,如果使用了该密钥,还需要在代码中对响应内容进行解密处理。
2. 沙箱账号
主要就是商家账号和买家账号,测试可以使用买家账号付款,也可以进行充值等操作。买家账号只能用于支付宝沙箱环境app。
3. 沙箱工具
三.正式环境应用创建流程及配置
可参考官方文档https://docs.open.alipay.com/194/105072/中条码支付接入指引。
1. 创建应用指南
开发者使用支付宝账号登录开放平台(需实名认证的支付宝账号),进入开发者中心。
2. 选择应用类型
- 应用类型分为自研发和第三方研发两种,根据自己业务需求选择应用类型,企业自研发请选择网页移动应用,小程序,生活号。
- 为企业或商户代开发,请选择第三方应用,上线后获取商户授权。
3. 创建应用
从开发者中心首页创建。
也可进入应用列表创建,比如创建网页应用。
填写应用基础信息。
使用场景:第三方应用服务于商户,自用型应用是为自己或自己的公司开发应用
应用图标最好自己做,以防与他人图标重复,导致审核不通过,官方说明一个月只能有两次审核机会。在下方添加应用需要开发的功能。
配置密钥,该密钥的生成方式与沙箱环境的生成方式一致,通过点击设置应用公钥,下载工具进行生成即可。
应用网关:选填,用于接收支付宝异步通知,例如口碑开店中,需要配置此网关来接收 开发者门店被动通知。
授权回调地址:选填,第三方授权或用户信息授权后回调地址。
下方为本地生成密钥效果图
待审核通过后,用户即可上线。当面付功能需要进行签约,签约完成后,待审核通过,应用投入使用。
四.代码配置流程
1. 准备材料及说明
1) SDK及各种官方支付Demo下载
2) github资源(适用于当面付)
2. 代码配置
以开发项目中用到的当面付demo为例。
2.1项目结构
当面付2.0demo代码结构TradePayDemo ###
src`-- main|-- java| `-- com| `-- alipay| `-- demo| `-- trade| `-- Main.java ## 当面付2.0调用范例 ##|-- lib 依赖类库| |-- alipay-sdk-java20150625220051.jar| |-- alipay-trade-sdk.jar TradePaySDK创建的lib| |-- commons-codec-1.10.jar| |-- commons-configuration-1.10.jar| |-- commons-lang-2.6.jar| |-- commons-logging-1.1.1.jar| |-- core-2.1.jar| |-- gson-2.3.1.jar| `-- hamcrest-core-1.3.jar`-- resources
2.2集成至项目步骤
集成至商户系统步骤如下:
1) 拷贝java目录下的Main.java至系统商源代码目录。
2) 将lib目录下所有jar文件添加至系统商lib目录。
3) 拷贝resources目录下的配置文件至系统商classpath根目录。
4) 在系统商项目中运行Main方法,确认集成无误。
5) 系统商使用main方法中的调用样例进行商户端系统开发。
2.3配置文件说明
所有重要信息都在zfbinfo.properties配置文件中配置。如图。
2.4签名和验签
1)自定义接口,获取http请求中的参数,进行参数拆分与拼接。
2)扫码支付需要进行异步验签,验签成功返回success,支付宝才能够确认为该订单支付成功。
3)条码支付不需要进行异步验签,同步方法中已自动进行验签。
4)官方验签说明文档:https://docs.open.alipay.com/291/105974
5)以下代码是官方提供的验签方法
// 获取支付宝POST过来反馈信息
Map<String, String> params = new HashMap<String, String>();
Map requestParams = request.getParameterMap();
for (Iterator iter = requestParams.keySet().iterator(); iter.hasNext();) {String name = (String) iter.next();String[] values = (String[]) requestParams.get(name);String valueStr = "";for (int i = 0; i < values.length; i++) {valueStr = (i == values.length - 1) ? valueStr + values[i]: valueStr + values[i] + ",";}// 乱码解决,这段代码在出现乱码时使用。// valueStr = new String(valueStr.getBytes("ISO-8859-1"), "utf-8");params.put(name, valueStr);
}
// 切记alipaypublickey是支付宝的公钥,请去open.alipay.com对应应用下查看。
// boolean AlipaySignature.rsaCheckV1(Map<String, String> params, String
// publicKey, String charset, String sign_type)
try {boolean flag = AlipaySignature.rsaCheckV1(params,prop.getProperty("alipay_public_key"), "UTF-8", "RSA2");if (flag) {return "success";}
} catch (AlipayApiException e) {// TODO Auto-generated catch blocke.printStackTrace();
}
return "false";
java对接支付宝当面付相关推荐
- java对接支付宝当面付支付和查询
最近看到很多人想用java写支付宝的收款功能用来做网站支付, 个人感觉网站支付的话支付宝的当面付功能算是有简单又实用的 当面付功能只需要实现他的两个接口就可以完成网站的支付和结果校验 1.支付宝的预创 ...
- Web应用对接支付宝当面付解决方案
介绍 如果软件接入支付不可避免的接入支付宝支付或者微信支付.此次以Web应用程序对接支付宝当面付支付为例.本文只提供思路,具体实现没语言都不一样,但是逻辑是一样的,我用Java和Go实现了. 准备 支 ...
- 个人发卡系统 - 个人发卡网_ZFAKA-个人发卡网对接支付宝当面付失败解决方案
在个人发卡网对接支付宝当面付的过程中,碰到了几个问题,最终一一解决了 一.提示"支付宝返回数据被篡改.请检查网络是否安全!" 1.有可能是app_id填写错误 如图,appId是下 ...
- 支付宝当面付扫码支付支付后不回调_对接支付宝当面付进行电脑网站和手机网站收款教程...
对接支付宝当面付进行电脑网站和手机网站收款教程 第一步:风铃自动卡密发卡平台前端搭建 第二步:对接支付宝当面付进行电脑网站和手机网站收款 项目地址:https://github.com/Tai7sy/ ...
- Java:支付宝当面付demo(公钥证书方式)-沙箱环境测试版
1.在支付宝开放平台下载当面付demo后,修改Alipay SDK版本为4.11.21.ALL或最新版(demo的3.3.0版本不支持证书方式) <!-- https://mvnreposito ...
- PHP对接支付宝当面付详细教程
导读: 作为一名小站长或开发者,网站需要接入支付功能,才能实现网站的变现盈利,一般有以下几个方案: 1.第三方支付平台: 截止2020年11月23日,我国拥有第三方支付牌照的公司共有237家,从201 ...
- SpringBoot对接支付宝当面付和手机网站支付
一.前期准备: 1.注册商家账号:支付宝 2.登录进入,在产品中心选择自己所需要对接的功能: 3.进入对接功能,选择立即开通 4.填写商户信息: 5.开通成功之后,产品中心>>开发设置&g ...
- php对接支付宝当面付对接,支付宝开放平台当面付对接网站
最近才发现当面付这个支付宝官方审核不严格,不审核网站有没有备案,比直接对接支付宝的电脑手机支付好. 先去支付宝商家用户中心签约下当面付功能,不过据说现在当面付签约要求挺严格的,需要门头照啥的,我们旗下 ...
- Java实现支付宝当面付(扫码)详细步骤
当咱们申请签约好当面付功能之后怎么用Java代码调用该支付接口呢?我只创建了三个Java类. controller commen qrcode controller用来写调用支付接口的,commen ...
最新文章
- ipmi重启_重启ipmi服务器
- 画Series的散点图
- 公办低分二本_山东的5所专科院校,属于本省公办,适合低分学生报考
- 【Python之旅】第二篇(二):列表与元组
- 深入浅出Fetch-API【转】
- 转:多线程--六种多线程方法解决UI线程阻塞
- JavaScript综述
- 1、Java开发环境搭建(eclipse版)
- 查询数据库授权以及授权到期的处理方法
- 对于长沙互联网发展,一个外来两年Java程序员的所见所感所愿
- python医学科研中能做什么-科研画图都用什么软件?
- 无锡市计算机表演赛举办方,21届计算机表演赛无锡赛区方案.doc
- DataV实现大屏滚动含后端代码
- 中国纳米硒行业投资现状分析及发需求前景预测报告2022-2028年
- 软件测试需要学什么课程?好学吗?
- xshell 免费版
- 如何将lvm卷移动到另一台服务器中
- dnf提示磁盘碎片需要整理_什么是磁盘碎片?我还需要进行碎片整理吗?
- 计算机二级请假条,请假条的范文标准版
- Android 自定义TabLayout
热门文章
- @Autowired报空指针NullPoint
- 谐振电路及品质因数(二)
- PHP5.3.5如何连接MSSql Server
- 《周志明的软件架构课》学习笔记 Day16
- Linux 查看系统里已安装的字体,linux安装中文字体宋体实例演示,linux没有中文字体导致的乱码问题解决
- 爬电、爬距(泄漏距离)、爬电比距
- 电压跟随器的作用-摘录+自解
- Activiti 简单demo (2)
- mint-ui —— checklist的使用
- Spring security的基础用法(普通的用户认证和授权)