由于某些特殊情况下。支付功能由我公司一个大牛做成了一个api。并且他已经做好了某些数据的相关处理。比如支付成功后往游戏里面充值金币。
通过这个api我只要传一些参数过去。产品名称,价格,描述,RMB金额 ,游戏内金币数量。
这样来说只要充值金币,那是万无一失。因为支付宝在支付成功的时候就会发送一个异步的信息到这个api。而不管支付页面有没返回到网站上。
现在有新增一个功能。就是支付成功的时候要赠送购买者一些别的东西。这些东西是在网页端进行的。没有在api端。
本来想叫大牛在做一个api让我查询,用户是否支付成功。因为有一种原因让我可能无法确定这个用户是否支付成功。毕竟我是在网页端。支付宝支付成功发送的信息没有发送到我这里。
支付宝返回的页面才有到网页端。要是用户关闭了支付后跳转的链接。那我这边就无法处理相关操作。
大牛很没空。给了我数据库ip 用户名 密码。让我自己去查。
问题来了。如果用户没有返回到我的网站,我就没办法获取到订单号,没办法查询他刚才支付的是否已成功。
于是我叫大牛把上面那个api改了下。订单号由我这里生成。
这样我就可以查询了。
我是这样处理的。在生成订单的时候设置一个cookie记录。
弹出支付后,返回网站则清除这个cookie
没有清除cookie的话说明他中途关闭了。
这个时候我通过页面刷新get 一个url 把订单号发送到api端数据库查询是否已经支付成功。
支付成功则写入相应数据。
不管用户支付成功或者失败。都删除cookie。
这样就兼容了。虽然很绕。不过还是一个解决方案。主要是大牛把支付做成了api。
其实我可以自己做支付宝api。不过公司要求他做。那我也只能这样咯。