整合之前我们需要先进行一些准备工作
1.首先我们需要先申请支付宝平台账号
2.然后我们下载 ‘当面付’ 官方的demo,以及沙箱环境手机app
‘当面付’ 官方的demo地址:https://openhome.alipay.com/platform/appDaily.htm?tab=info
3.进入支付宝沙箱环境的首页,进行设置我们的相关参数:
appid:是支付宝自动为我们分配的。
支付宝网关:在我们沙箱环境下设置为图中的即可,当我们使用上线环境时,将地址中的'dev'去掉
RSA2密钥:我们需要下载密钥生成器来生成:
下载地址:https://docs.open.alipay.com/291/105971
下载后解压直接运行:
我们点生成密钥,就会自动帮我生成。
点击RSA2密钥参数的 ‘查看应用公钥’
我们将生成的公钥复制到里面保存即可
然后 ‘查看支付宝公钥’ 选项就会自动帮我们生成支付宝公钥
4.继续设置参数
应用网关:和上面参数的 ‘应用网关’一样即可
授权回调地址:是我们controller中回调方法的完整路径(如:www.XXX.com/pay/XXX.do)
RSA密钥和AES密钥保持默认即可
5.然后将下载的 ‘当面付’ demo引入到我们的项目中(只需要引入 src目录下的文件即可(只有两个类))
还需要将demo中的 zfbinfo.properties配置文件复制到我们的项目中
由于还需要依赖jar包:
官方demo中使用到的jar包如下:
由于maven仓库中没有 前4个jar包(笔者写文章时还没有,不过现在已经有了)
我们将前4个jar赋值到我们项目的lib中,然后引入到项目中。
其他的jar包,在maven中都有依赖,我们使用pom引入即可(尽量和demo中的版本一直,避免不必要的麻烦)
6.我们打开引入到项目中的demo,然后运行一下 'Main.java', 发现报错,说我们的配置文件有错误
我们打开zfbinfo,properties配置文件进行配置
open_api_domain:设置为和我们沙箱环境中的 ‘支付宝网关’ 一样即可 沙箱环境使用 (https://openapi.alipaydev.com/gateway.do)
mcloud_api_domain: 默认保持不变即可
pid: 指的是我们的 ‘商户UUID’ ,将我们在沙箱环境中分配的 商户UUID 复制过来即可
appid: 指的是我们在沙箱环境中分配的 ‘appid’,
将我们在 密钥生成器中生成的 ‘公钥’ 和 ‘私钥’复制过来即可 (注意:字段较长,认真复制)
我们使用的是 RSA2(SHA256),所以这两个任选一个即可 (支付宝推荐我们使用 RSA2(SHA256))
我们将沙箱环境中的 ‘查看支付宝公钥’ 选项自动为我们生成的 公钥复制过来即可
这几个参数保持默认即可,一般不需要改动
7.修改完配置文件以后,我们再次运行 ‘Main.java’ 看是否可以正常运行(打印出 ‘支付宝预下单成功’才算成功整合)
若正常运行则整合成功
8.整合成功后,将demo中 Main.java 中的 ‘当面付’方法(以‘当面付’为例)中的代码全部复制到我们的service中,
我们就可以动态为字段赋值
本人遇到的问题
提示 ‘appid’ 有误,查看一下 支付宝网关是否为 dev状态。
是由于没有改配置文件中的 ‘open_api_domain’参数
默认值为 :https://openapi.alipaycom/gateway.do
由于我们使用的是沙箱环境,所有需要修改为 ‘https://openapi.alipaydev.com/gateway.do’
’