【问题标题】:Paypal - Return url page and variablesPaypal - 返回 url 页面和变量
【发布时间】:2021-05-20 05:20:51
【问题描述】:

我是否可以在返回 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

【问题讨论】:

    标签: paypal return sandbox


    【解决方案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。
    猜你喜欢
    • 1970-01-01
    • 2016-01-27
    • 2017-11-06
    • 2011-06-21
    • 1970-01-01
    • 2015-04-25
    • 1970-01-01
    • 2017-08-02
    相关资源
    最近更新 更多