支付宝当面付(条码支付)
官方参考文档:https://docs.open.alipay.com/194/105072/
账号初始配置
身份选择
登录蚂蚁金服开放平台之后,需要选择入驻身份,身份确定了你要开发哪种应用,开发自研应用(只供自己使用)就选择自研开发者。

完善信息和拓展身份
完善信息
1)进入主界面后,点击右上角账户信息,进入账户管理/合作伙伴管理界面。

2)在账户管理/合作伙伴管理界面完善和修改账户信息。

3)然后签署协议

拓展身份
1)在账户管理/合作伙伴管理界面下方有角色身份一栏,如需要开发其他种类应用,可以点击“立即扩展”按钮进行身份扩展。

沙箱环境应用配置
点击开发者中心-研发服务-沙箱环境,进入沙箱环境页面,沙箱环境有三个信息,沙箱应用,沙箱账号,沙箱工具。

沙箱应用
进入沙箱环境页面后,可以看到系统已经自动为你创建一个应用。
必看部分

参数介绍:
1)APPID:沙箱环境自动生成,且唯一,必须与代码中APPID一致。
2)支付宝网关:沙箱环境自动生成,必须与代码一致,如果应用上线,代码中该地址配置为https://openapi.alipay.com/gateway.do,即去除地址中的dev字段。
3)RSA2(SHA256)密钥:必填,如未配置,该参数后只显示“设置应用公钥”,点击下载签名验签工具,下载解压后如图所示。

进入文件夹,运行bat后缀程序。

如下图所示,弹出工具框,根据开发语言选择密钥格式,因为目前新建应用只支持RSA2签名方式,所以密钥长度选择2048方可生效。

选看部分

1) 应用网关:选填,用于接收支付宝异步通知,例如口碑开店中,需要配置此网关来接收开发者门店被动通知,一旦填入之后,该项就不能为空了,一般不需要配置。
2) 授权回调地址:选填,第三方授权或用户信息授权后回调地址。授权链接中配置的redirect_uri的值必须与此值保持一致,一旦填入之后,该项就不能为空了,一般不需要配置。
3) RSA(SHA1)密钥:选填,推荐使用RSA2(SHA256)密钥,如果在上方配置已经配置过,该处不需要配置。
4) AES密钥:选填,对请求的报文内容进行加密,提高安全性,如果使用了该密钥,还需要在代码中对响应内容进行解密处理。
沙箱账号
主要就是商家账号和买家账号,测试可以使用买家账号付款,也可以进行充值等操作。买家账号只能用于支付宝沙箱环境app。

沙箱工具

正式环境应用创建流程及配置
可参考官方文档https://docs.open.alipay.com/194/105072/中条码支付接入指引。
创建应用指南
开发者使用支付宝账号登录开放平台(需实名认证的支付宝账号),进入开发者中心。
选择应用类型
1) 应用类型分为自研发和第三方研发两种,根据自己业务需求选择应用类型,企业自研发请选择网页移动应用,小程序,生活号。
2) 为企业或商户代开发,请选择第三方应用,上线后获取商户授权。
创建应用
1) 从开发者中心首页创建。

2) 也可进入应用列表创建,比如创建网页应用。

3) 填写应用基础信息。
使用场景:第三方应用服务于商户,自用型应用是为自己或自己的公司开发应用

4) 应用图标最好自己做,以防与他人图标重复,导致审核不通过,官方说明一个月只能有两次审核机会。在下方添加应用需要开发的功能。

5) 配置密钥,该密钥的生成方式与沙箱环境的生成方式一致,通过点击设置应用公钥,下载工具进行生成即可。
应用网关:选填,用于接收支付宝异步通知,例如口碑开店中,需要配置此网关来接收 开发者门店被动通知。
授权回调地址:选填,第三方授权或用户信息授权后回调地址。
下方为本地生成密钥效果图

6) 待审核通过后,用户即可上线。当面付功能需要进行签约,签约完成后,待审核通过,应用投入使用。

代码配置流程
准备材料及说明
SDK及各种官方支付Demo下载:
https://docs.open.alipay.com/54/cyz7do/
代码配置
以开发项目中用到的当面付demo为例。
项目结构
### 当面付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
集成至项目步骤
集成至商户系统步骤如下:
1) 拷贝java目录下的Main.java至系统商源代码目录。
2) 将lib目录下所有jar文件添加至系统商lib目录。
3) 拷贝resources目录下的配置文件至系统商classpath根目录。
4) 在系统商项目中运行Main方法,确认集成无误。
5) 系统商使用main方法中的调用样例进行商户端系统开发。
配置文件说明
所有重要信息都在zfbinfo.properties配置文件中配置。如图。

签名和验签
1)自定义接口,获取http请求中的参数,进行参数拆分与拼接。
2)扫码支付需要进行异步验签,验签成功返回success,支付宝才能够确认为该订单支付成功。
3)条码支付不需要进行异步验签,同步方法中已自动进行验签。
4)官方验签说明文档:https://docs.open.alipay.com/291/105974
5)以下代码是官方提供的验签方法
1 | // 获取支付宝POST过来反馈信息 |