日期:2014-05-17  浏览次数:20534 次

问个网站里购买、充值、返回操作的流程问题。
比如:
1. 用户去买A产品,到了A产品的购买页(点击购买就直接扣钱的那种,没有购物车什么的)
2. 用户点击购买,提示余额(网站自有的虚拟货币)不足,是否充值。
3. 点击充值,到了充值方式选择页面,有:银行卡,行用卡,支付宝,各种通等。
4. 用户选择了一种充值方式,充值完成或者未完成。
5. 问题来了,充值完成后,怎么才能引导用户返回到A产品的购买页呢?

注意:
1. 由于是手机网站,不考虑新窗口打开页面,只能当前页面跳转。
2. 研究了支付宝的充值方式,对方不允许在回调地址上加参数, A产品的地址是product.aspx?id=a,支付宝不允许?id=a这种参数的出现。
3. 其他充值方式视作同支付宝一样,不能把A产品的页面地址传进去再传回来。
4. 充值还有延时,把rmb转成虚拟货币 有一定延时,不是立即的。

其实就是一个流程问题,通过url传递returnurl的方式走不通,不知道大家怎么处理的?

------解决方案--------------------
你和支付网关做接口的时候,要告诉支付网关一个“支付结果通知接收地址”的url。
支付网关在用户付完钱后,会通知用户客户端重定向到你的这个url,同时还会带上是否了付钱、付了多少这些信息,当然是经过加密和支付网站签名认可的。
你的这个url对应的服务程序(比如是个aspx)中检查支付网关的签名,根据其中的订单流水号可以知道是谁在买,根据是否支付成功找到订单记录,记录支付结果。
如果用户付款成功,你用redirect把用户重定向到一个支付成功页面。
如果用户没付钱,你用redirect把用户重定向到一个支付失败页面。

------解决方案--------------------
看这里:
http://mobile.alipay.com/main/introduce.htm?action=mobilesp
------解决方案--------------------
贴错了

https://b.alipay.com/order/productDetail.htm?productId=2013080604609688
------解决方案--------------------
看对应接口说明就行了吧
------解决方案--------------------
看这里:
http://mobile.alipay.com/main/introduce.htm?action=mobilesp
------解决方案--------------------
引用:
1. 由于是手机网站,不考虑新窗口打开页面,只能当前页面跳转。
2. 研究了支付宝的充值方式,对方不允许在回调地址上加参数, A产品的地址是product.aspx?id=a,支付宝不允许?id=a这种参数的出现。
3. 其他充值方式视作同支付宝一样,不能把A产品的页面地址传进去再传回来。

之前也有想过通过在回调地址里面加个参数,但是结果适得其反,不过除了P哥说的那种,还有一种方法不知道行不行的通:支付拼接参数的时候,都可以指定一个自定义参数(比如alipay的自定义参数extraparam),然后回传的时候这个参数会原封不动返回的,可以把跳转地址写入这个参数,alipay同步通知的时候可以解析这个参数