一、网上支付分为两种情况,一种方法是使用直接和银行的支付接口,另外一种方法是使用第三方支付平台和银行对接完成支付。
1.直接和银行对接。
2.使用第三方支付平台
3.常见的第三方支付平台
二、使用易宝支付接口实现java网上支付功能(农业银行)。
1.完整源代码:https://github.com/kdyzm/day21_2_pay
2.实现过程的时序图
3.技术要点
(1)使用GET请求的时候必须将全部参数都带上,参数名称参考开发者文档中的请求参数列表
(2)使用PaymentUtil类实现加密,该类由易宝支付公司编写
(3)支付成功之后通知商户按钮指向的url在本地,即http://localhost:8080/backServlet(localhost只在本地有意义),为什么能够成功返回这里,原理见上面流程图。关键点:重定向技术解决了这一问题。
4.需要的几点信息。
(1)商户账号:p1_MerId=10001126856
(2)商户的keyVaue:keyValue=69cl522AV6q613Ii4W6u8K6XuW8vM1N6bFgyv769220IuYe9u37N4y7rI4Pl
(3)PaymentUtil类。
PaymentUtil.java
(4)注意:该商户账号是传智播客某老师的账号,在进行测试的时候会实际打钱过去,所以在选择支付数额的时候千万要谨慎!!!
5.支付过程:
(1)填写订单信息
(2)单击支付按钮之后重定向到农业银行支付界面(如果网速慢点能够看到易宝支付处理的过程)
(3)我进行的是K码支付
(4)填写相应的信息,进行身份验证之后(短信),单击确定按钮(谷歌浏览器不支持后续操作,我换了IE浏览器)
(5)支付成功,自动跳转到支付成功页面
(6)单击通知商户按钮,跳转到的页面是同一个。
三、总结
1、java实现网上支付功能并不难,几乎没有任何技术要点,关键就是太繁琐,要学会读开发者文档。
2.重定向技术在这里非常重要,要根据时序图理解重定向在这里的使用。