ecshop的paypal解决
最近项目开发完的,时间闲,写了这些,这是个人的看法,仅供参考,欢迎指正。0707的ecshop的paypal已经解决了以前的数据返回问题
但是它在最后一步会有提示支付失败的提示,ecshop并没有注意,在sandbox开发和实际情况并不相同的
paypal ipn是当产生了一个交易之后,交易状态发生变化时,如用户已经付款、或者退款、撤销时,Paypal利用常用的HTTP POST方式,将交易的一些变量提交给网站的respond.php,而不是大家在使用支付宝或者其他的url返回(它们也有HTTP POST方式),在支付后就用POST方式将数据返回到respond.php,调用paypal文件,这个时候你就可以进行一些需求相关的开发,之后将这些数据原封不动加上一个指示验证的cmd=_notify-validate,POST回Paypal的接口地址。
在paypal.php可以指定返回地址,这时的返回地址并不做任何的操作(操作在POST方式给数据给网站时已经完成了),ecshop忽略了这点,导致显示支付失败显示,可以加一段代码进行判断,或者在paypal。php指定一个自己需要的返回地址进行相应的操作。
[[i] 本帖最后由 淡淡风 于 2008-8-27 22:47 编辑 [/i]] 没太理解您的意思?
支付失败可能的地方 if (strcmp($res, 'VERIFIED') == 0)
这里是没有验证通过
if ($payment_status != 'Completed' || $payment_status != 'Pending') 这里是支付状态返回
数据也已经是POST数据 不太明白您具体是指哪里 [quote]原帖由 [i]bugii[/i] 于 2008-8-27 23:02 发表 [url=http://bbs.ecshop.com/redirect.php?goto=findpost&pid=236783&ptid=63493][img]http://bbs.ecshop.com/images/common/back.gif[/img][/url]
没太理解您的意思?
支付失败可能的地方 if (strcmp($res, 'VERIFIED') == 0)
这里是没有验证通过
if ($payment_status != 'Completed' || $payment_status != 'Pending') 这里是支付状态返回
数据也已经 ... [/quote]
您这是post处理阶段,我说的是最后阶段,两个不同的阶段,而且状态不应该选择传输状态,有风险把
[[i] 本帖最后由 淡淡风 于 2008-8-27 23:22 编辑 [/i]] [quote]原帖由 [i]淡淡风[/i] 于 2008-8-27 23:06 发表 [url=http://bbs.ecshop.com/redirect.php?goto=findpost&pid=236785&ptid=63493][img]http://bbs.ecshop.com/images/common/back.gif[/img][/url]
您这是post处理阶段,您理解错了,您在论坛搜索下paypal看下论坛用户提出的问题
我说的是最后阶段,两个不同的阶段 [/quote]
我之前测试sandbox过程中发现 不是所有的货币交易都是complete 有的货币可能会出现pending状态
当增加pending状态后 就没再出现过类似情况
传输状态确实是有风险的 不过测试情况看 好像只有美元是没有pending的 不知道是否是因为货币转化的问题 这个回头还得在翻文档进行验证
您说的最后阶段是指? [quote]原帖由 [i]bugii[/i] 于 2008-8-27 23:22 发表 [url=http://bbs.ecshop.com/redirect.php?goto=findpost&pid=236791&ptid=63493][img]http://bbs.ecshop.com/images/common/back.gif[/img][/url]
我之前测试sandbox过程中发现 不是所有的货币交易都是complete 有的货币可能会出现pending状态
当增加pending状态后 就没再出现过类似情况
传输状态确实是有风险的 不过测试情况看 好像只有美元是没有pe ... [/quote]
我觉得解决paypal并不需要选择传输这个状态(pending),只需要处理最后阶段就可以的,我实际的开发也是这样处理的,卡号密码一样发送,整个过程都没有问题。我所指的最后阶段就是支付成功后会跳转到网站,只要这一下处理就可以的,因为前面的都解决了,完全没有必要改。 已经修复了此问题
在线上测试时发现paypal是二次提交导致
这里做了防刷新检测 导致出现此现象
目前补丁索引和安装包已经做了更新
[url]http://bbs.ecshop.com/viewthread.php?tid=61973&page=1&extra=#pid230668[/url]
页:
[1]
