仅需两步即可完成:
1. 打开 12306 项目 开源仓库主页,右上角点个 Star
2. 点击下方【同意授权检测】按钮,同意获取 API 权限进行检测
本章节文档,将在 Star 12306 仓库后正常开放展示
当用户抢到票后,开始发起订单支付请求,假设选择支付宝作为支付方式,支付流程如下。
当用户支付完一笔订单,支付宝付款渠道接收到支付结果后,对请求支付的系统进行支付结果回调。参考上图红色字体流程。
支付宝回调的地址一定要是在公网可以访问的。试想下,如果我们提供本地地址,支付宝肯定是访问不到的。
最好的方式就是部署到公网可访问的云服务器上。但是为了本地联调方便,我们可以把本地的开发环境网络配置成公网可访问,这就需要用到内网穿透技术。
比较常用的有 Natapp 工具,接下来我们需要通过 Natapp 开通内网穿透,开通教程详细查看下述官方文档:https://natapp.cn/article/natapp_newbie (opens new window)
开通后,将内网穿透端口改为 9000,即网关服务项目端口。
按照 Natapp 教程,本地启动客户端,我这里展示下 Mac 系统的启动结果。
http://3mb4zt.natappfree.cc
也就是我启动的内网穿透地址,访问这个地址会被请求到我们的 127.0.0.1:9000
服务端口上。
注意,这个内网穿透地址并不是固定,当你电脑锁屏再打开后它自己也是会变,或者你退出再启动也会变。
将 Natapp 内网穿透地址替换 application.properties
文件下 pay.alipay.notify-url
属性。
如果你是启动的 SpringBoot 单体版就修改 aggregation-service
服务下 application.properties
文件,反之修改 pay-service
服务下配置文件。
根据支付宝沙箱环境接入手册获取公私钥:https://opendocs.alipay.com/common/02kkv7 (opens new window)
从【后端开发过程使用沙箱】章节开始看,看完步骤一,知道如何获取公私钥即可。
另外,需要确保电脑网站支付是已生效状态。
将支付宝公钥复制并替换 pay.alipay.alipay-public-key
,应用私钥(JAVA语言)替换 pay.alipay.private-key
。
选择 G35 列车进行用户购票操作。
选择乘车人,选择席别后提交订单。
根据乘车人选择好席别后,点击确认进行订单。
在订单确认页面选择网上支付。
当前只对接了支付宝的沙箱环境,所以选择支付宝进行支付。
账户名和支付密码从支付宝的沙箱环境页面获取。左侧菜单有个沙箱账号,买家信息中的买家账号以及登录密码对应一下账户名和支付密码。
有概率会让输入支付宝密码,同样从沙箱账号菜单,查看买家信息中的支付密码,点击确认付款按钮。
当支付宝请求付款成功后,会返回成功付款请求结果。
当返回支付成功结果后,咱们支付服务回调接口也会接到对应的支付宝回调请求。
跳过 Debug 模式后,查看数据库支付表和订单表的记录状态,都会进行相应变更,也意味着一笔订单购票全流程顺利结束。
如果大家自己搞过微信支付或者其它支付方式,可以在现有代码上进行扩展。目前的支付渠道使用了策略模式支持非常好的扩展性,基本上不用改动现有代码,新增加支付实现类即可。
🚀 系统提示:访问文档失败 🚀
原因:开源不易,文档仅对已 Star 12306 项目的用户开放。
操作步骤:点击下方「Gitee 项目」和「GitHub 项目」按钮 Star 项目即可。 12306 所有端的代码都会完全开源,为了更好地完善这个框架,希望大家多多支持。