Paypal - 返回 url 页面和变量
Posted
技术标签:
【中文标题】Paypal - 返回 url 页面和变量【英文标题】:Paypal - Return url page and variables 【发布时间】:2012-02-21 04:39:11 【问题描述】:我是否可以在返回 url 中获取 paypal post 变量。我想在返回 url 页面中显示一条响应消息,具体取决于用户的交易是否已完成/待处理/失败。我正在使用 paypal 沙盒帐户进行测试。
这是我的代码,
<input type="hidden" name="item_name" value="Credit Purchase">
<input type="hidden" name="business" value="<?php echo paypal_business_id;?>">
<input type="hidden" name="rm" value="2">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="currency_code" id="currency_code" value="GBP">
<input type="hidden" name="custom" id="custom" value="<?php echo $user."@@@".$num_purchase;?>">
<input type="hidden" name="return" value="<?php echo base_url(); ?>buy/success">
<input type="hidden" name="cancel_return" value="<?php echo base_url(); ?>">
<input type="hidden" name="notify_url" value="<?php echo base_url(); ?>buy/notify
【问题讨论】:
【参考方案1】:可以在return
变量上添加订单id,然后当用户返回时你会得到你的订单id,并从订单id 中向他展示信息。
例如
<input type="hidden" name="return" value="myReturnUrl.php?OrderID=88273882717A72734">
【讨论】:
感谢您的回复。我的要求是知道付款状态。就像我们在通知 url 中获得从 paypal 发布的变量集一样,返回 url 中是否也有相同的变量集?早些时候,当我几天前尝试时,我可以得到它,但现在他们没有发布返回 url。我想在返回 url 页面中显示交易成功/失败的消息。 我恢复了正常工作。问题是,我在 10 秒的自动重定向时间结束之前点击了返回链接。 :) @vishnu - “我正在使用它,但在那种情况下,我得到的只是产品信息,而不是横切 id(tx_id) 我如何通过贝宝获得 txn_id。” - 请创建一个新问题,我不明白你在这里真正问什么 - 或者更好地尝试理解我在这里所说的 - 我返回我创建的订单 ID 以找到订单...【参考方案2】:等待 IPN 通知进来,然后查看其中的 payment_status。 由于交易会自动筛选欺诈行为,并且可以通过银行账户提供资金,因此返回到您的返回 URL 并不总是等同于成功的交易。
有关您可以预期的 IPN 变量列表,请参阅PayPal IPN and PDT variables 您将希望(至少)查看以下值:
payment_status mc_gross 和/或 payment_gross(如果交易是美元,则使用 payment_gross,如果是任何其他货币,则使用 mc_gross) payment_type 待定原因【讨论】:
是在成功页面,我检查支付状态是否完成。根据状态,我已经框架了一个响应页面。现在我面临的问题是,在Mozilla Firefox(9.0 .1)一旦我完成交易,在被重定向到返回 url 页面之前,浏览器本身会显示一条消息,要求确认弹出窗口继续进一步。如果我立即单击“确定”按钮,则一切正常,但如果我不执行任何操作,页面会自动重定向,并且我不会收到任何从 paypal 发布的变量。 Chrome和IE不存在此类问题。有人可以告诉我如何消除 Firefox 中的问题 以上链接已损坏,v1 PayPal API 已弃用。【参考方案3】:这种问题在 FF 中确实存在,如果等待 10 s。 我的解决方案是将返回 url 更改为“xxx.com?orderId=xxx”。 然后你判断它是 POST 还是 GET。并通过 orderId 选择您的订单信息 您无需担心付款状态。因为如果它返回到您的商店而不是“cancel_return”,它应该总是成功
【讨论】:
哇,这是非常糟糕和危险的建议。您确实需要验证付款状态。您不应该因为调用了返回 URL 而简单地假设支付成功。您不应假定退货是由 PayPal 调用的,不应假定 PayPal 处理了付款,也不应在退货 URL 中包含订单 ID。以上是关于Paypal - 返回 url 页面和变量的主要内容,如果未能解决你的问题,请参考以下文章