【问题标题】:How to get the post values in success after completing payment in paypal在paypal完成付款后如何成功获取post值
【发布时间】:2016-03-16 11:44:55
【问题描述】:

我遵循简单的 PHP 代码进行 paypal 集成

这是我的代码,

<form action="<?php echo $paypal_url; ?>" method="post">
        <input type="hidden" name="business" value="<?php echo $paypal_id; ?>">

        <input type="hidden" name="cmd" value="_xclick">

        <input type="hidden" name="item_name" value="<?php echo $row['name']; ?>">
        <input type="hidden" name="item_number" value="<?php echo $row['id']; ?>">
        <input type="hidden" name="amount" value="<?php echo $row['price']; ?>">
        <input type="hidden" name="currency_code" value="USD">

        <input type='hidden' name='cancel_return' value='http://localhost/paypal_integration_php/cancel.php'>
        <input type='hidden' name='return' value='http://localhost/paypal_integration_php/success.php'>

        <input type="image" name="submit" border="0"
        src="https://www.paypalobjects.com/en_US/i/btn/btn_buynow_LG.gif" alt="PayPal - The safer, easier way to pay online">
        <img alt="" border="0" width="1" height="1" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" >

    </form>

而且, 这是 Success.php

<?php
include 'db_config.php';

$item_number = $_REQUEST['item_number']; 
$txn_id = $_REQUEST['tx'];
$payment_gross = $_REQUEST['amount'];
$currency_code = $_REQUEST['currency_code'];
$payment_status = $_REQUEST['st'];
?>

但是当返回我的成功文件时,我得到了这样的错误,

我不太清楚 IPN 和 PDT 的概念。。

【问题讨论】:

标签: php paypal paypal-ipn


【解决方案1】:

试试这个

$item_name        = $_POST['item_name'];
$item_number      = $_POST['item_number'];
$payment_status   = $_POST['payment_status'];
$payment_amount   = $_POST['mc_gross'];
$payment_currency = $_POST['mc_currency'];
$txn_id           = $_POST['txn_id'];
$receiver_email   = $_POST['receiver_email'];
$payer_email      = $_POST['payer_email'];

IPN Docs

【讨论】:

  • $_POST 对我不起作用,它也会引发同样的错误.. :(
【解决方案2】:

我对此并不完全确定,但我相信 PDT 正在使用 GET 参数进行响应。因此,当您返回时检查 url,它可能看起来像:

xxxxx.com/?TX=XXXX&AMOUNT=XXXX 等

如果是这样,那么你的变量应该是

$txn_id = $_GET['TX'];
$amount = $_GET['AMOUNT'];

等所有细节在网址中。

但是,如果您使用的是 IPN,我建议您在 $_POST 上执行 var_dump 或 print_r 以查看您从 paypal 收到的数据类型。然后您将能够将它们添加到变量中。例如:

$item_name = $_POST['whatever post data you got from paypal'];

【讨论】:

    猜你喜欢
    • 2011-08-20
    • 2014-07-30
    • 2013-03-02
    • 2014-07-13
    • 2012-03-11
    • 2021-07-11
    • 1970-01-01
    • 2019-11-19
    • 2023-03-31
    相关资源
    最近更新 更多