一、沙箱环境配置
我使用的是测试沙箱环境,使用沙箱测试版的支付宝进行测试,如果需要上线部署,要申请接入哦
APPID
阿里提供的,后面流程中需要把这个APPID复制粘贴到项目配置中
支付宝网关
直接使用图中测试环境的网关地址
RSA2/RSA密钥
这里我使用的是RSA2密钥,需要配置RSA2该栏目,先是生成RSA2的公钥密钥对(在阿里开发文档中有提供生成密钥对的工具,下载后按照文档生成密钥对并进行后续配置,这里我直接贴链接,就不照搬操作了)
用来验证开发者身份
应用网关
填入如上支付宝网关
授权回调地址
填入项目中对外暴露的alipayCallback.do接口
ps:这个接口地址一定要提供能在外网环境下能访问的地址
AES密钥
直接点生成就可以了,AES是对称加密算法,用于加密报文
二、引入所需jar包及alipaydemo的整合
pom.xml
<!-- alipay -->
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.10</version>
</dependency>
<dependency>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
<version>1.10</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
<version>1.3</version>
</dependency>
另外还需要引入其他jar包,可以在我的git项目中找到,或者直接在开发文档中下载DEMO,DEMO中有这些包
整合时,先将demo中的java代码和zfbinfo.properties复制到自己开发项目中,然后将zfbinfo.properties修改成应用自己项目的配置:
# 支付宝网关名、partnerId和appId
# 前面沙箱配置中的支付宝网关
open_api_domain = https://openapi.alipaydev.com/gateway.do
mcloud_api_domain = http://mcloudmonitor.com/gateway.do
# 前面沙箱配置中的商户uid
pid = 2088102175224611
# 前面沙箱配置中的appid
appid = 2016091200490386
# RSA私钥、公钥和支付宝公钥
# 前面生成RSA2密钥对的私钥,我贴出来隐藏一下我的私钥0.0
private_key = *************************************************************************************************
# 前面生成RSA2密钥对的公钥
public_key = MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkVHcHYP+6H+b4Md0desMNG0akCh1yMbLlR3OWjXG292gL4lfQLhjxs7tDw+6anLC+wBl/0TEV5F2McxgLxH5AGMkc3f4wA1/lNm85NxHEdtWlZ36cCSFb5eznBXwiFfWBXerT/YE9da6T34KS1cc5aEq0OJGRZ9o8rOr4+lwXbPETarWIqDT0kJqVmGeEZsa+FMn9ZBesGbenV2qEpvAE5Q8QP6GQTFeVEVlUbDc2CDocF+xFsjPFQq13zTNEm7MmVyrEWGvNp0bBEJsbkh9/FZfCbo1lzYSVGS+U6UPjccimNYYJOMcIgP6EtKpNb0HB/nSsgf8TZfCBgUaQ6U3ZwIDAQAB
#SHA1withRsa对应支付宝公钥
#alipay_public_key = MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDDI6d306Q8fIfCOaTXyiUeJHkrIvYISRcc73s3vF1ZT7XN8RNPwJxo8pWaJMmvyTn9N4HQ632qJBVHf8sxHi/fEsraprwCtzvzQETrNRwVxLO5jVmRGi60j8Ue1efIlzPXV9je9mkjzOmdssymZkh2QhUrCmZYI/FCEa3/cNMW0QIDAQAB
#SHA256withRsa对应支付宝公钥
# 前面沙箱配置中的支付宝公钥,点击RSA2栏目的{查看支付宝公钥}查看,不要与前面的public_key弄混淆了
alipay_public_key =MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx4WxgxuWD7mHzv3fN2cVrXw6SOwyIsK2f6lSD4z1buO97HhFla7rQIIxfTmiR6B6ygVDRDN7T3HzAPH1s1wYp4tXUBdhcDoZlydNIrGDeJ8PeW96TcaLPjQgnZNFkUpNAlHULi0S3fBfuPBB/w9WM15O6r4CasyOyckJ3/v/fHFaTyxD52Ym6x94Obs2HrxJ6OW+WQp77192Dk9h+VCvNtbyVH00XDUiWveCv2yIa5ZbS0o+713O4irp7KTsAxXfGUQohYfO1QtF1e2KTCon/7gCFQCUGV++HM0UINJFfPAgNf6hu7mdFqk95u/SqkEDsmyHnnVdmakLHsxQy8yZcwIDAQAB
# 签名类型: RSA->SHA1withRsa,RSA2->SHA256withRsa
sign_type = RSA2
# 当面付最大查询次数和查询间隔(毫秒)
max_query_retry = 5
query_duration = 5000
# 当面付最大撤销次数和撤销间隔(毫秒)
max_cancel_retry = 3
cancel_duration = 2000
# 交易保障线程第一次调度延迟和调度间隔(秒)
heartbeat_delay = 5
heartbeat_duration = 900
然后就可以按照api调用使用了,我只使用了二维码当面付的功能,后续慢慢介绍
三、支付模块的开发
1.前台web页面代码
(1)页面效果介绍
用户创建订单成功后,进入alipay.jsp页面,如图:
预支付成功后