对接支付平台,主要还是自己业务的流程,真正对接支付宝的sdk并不难。所以我们先来谈一谈一般的支付流程。

首先我们会业务上生成一个支付的订单(必须唯一)。如:
商品名称:苹果001
商品价格:100
商品订单号:xx123456
那么来到支付页面,我们把业务上的订单号传入,如跳转支付则页面链接为:www.xxxx.pay.jsp?widoutTradeNo=xx123456
widoutTradeNo就是订单号了,那么进入页面我们通过这个订单号查询出商品名称,商品描述,商品价格等,把这些参数写入到对应的位置,生成支付的页面。


这个pay.jsp页面是支付宝官方提供的。可以通过https://docs.open.alipay.com/54/106682/下载demo查看。传入自己业务的参数后,生成的页面如下。

关于后面带的订单号,可以自行加密。
第二步的操作就是修改支付宝官方提供的AlipayConfig类

其中appID,私钥,公钥,请自行在支付宝生成获得。开发的时候用沙箱环境测试。
在下图这个页面,大家去自己的支付宝查看。

还有两个比较重要的参数为:notify_url和return_url(这两个url必须为外网可以访问的,支付成功后,支付宝会不断的回调,直到回调成功为止!没有测试服务器的小伙伴可以用NATAPP进行内网穿通,让你的接口外网可以访问得到。)
NATAPP外网穿通参考链接:https://www.jianshu.com/p/c4cb8666c96a
notify_url : 支付成功之后,支付宝会自动回调你服务器的接口地址,告诉你用户已经支付成功了,你可以对此订单进行支付成功之后的操作了。支付宝回调你的接口会传你刚才传入的订单号,金额。还有一些手机配置等等的参数给你,方便你做业务上的操作。你就可以通过支付宝回调给你的订单号对这个订单进行支付成功的操作了。

return_url : 支付流程完成后,支付宝跳转回你业务上的页面。
整个流程:
用户下单生成商品的订单号信息——用户点击pay.jsp页面支付——页面携带订单号查询对应商品的信息——回写到pay.jsp——生成支付页面——用户支付成功后——回调支付成功的接口——跳转到支付完成页面
查看有无成功,测试之前查看沙箱的账户余额,支付完成再查看,验证余额是否增加。
下面展示整个流程的支付页面:
支付前商户账号余额:

开始支付:

填写支付宝账号密码登陆(沙箱的账号)

进入支付:

完成支付

然后我们查看商户账户余额是否增加了

查看支付后的沙箱账户,金额是否增加了,小伙伴肯定会问刚才不是支付了2460元吗,怎么好像不对。没错支付宝线上支付是会收取服务费的。好像是百分之六还是多少。
到这里支付宝的支付功能就对接完成了。
最后,作者给出一个提醒(当我们的商品为唯一商品时。进入生成支付页面时,最好把此商品的支付权限锁定一段时候,然后支付页面也设置好超时的时间,防止一个商品被多个用户同时支付!)
网友评论