沙盒Paypal没有调用ipn.php

时间:2018-09-27 16:28:54

标签: php paypal paypal-sandbox paypal-ipn sandbox

我有一个PayPal帐户,我想在我的网站上实施PayPal交易。 对于测试付款,我使用沙盒环境。

我可以将用户重定向到沙盒PayPal页面,我可以使用默认的沙盒买家帐户付款,毕竟,我还重定向回到了我的网站。哪个很棒。

问题是PayPal沙盒未调用ipn.php(通知URL)。 我会知道是否称为“,因为文件开头会给我发送一封电子邮件。 我做了我所知道的一切。

奇怪的是,从IPN Simulator中调用了ipn.php。

我还从创建了新的Sandbox帐户 developer.paypal.com/developer/accounts/create, 但我什至没有收到确认邮件来确认他们。 而且,使用新的沙箱帐户时,沙箱PayPal并未调用ipn.php。

我尝试了几天,但没有其他可以尝试的了。 Internet和PayPal沙箱文档说,默认沙箱帐户已被确认。因此,从理论上讲,它必须称为ipn.php file

您不必担心ipn.php路径。我检查了很多次。这是好东西。

这是代码:

$exCheckout = new \PaypalExpressCheckout\Request\SetExpressCheckout();
$exCheckout->setUsername($_config['apikeys']['paypal_username'])
           ->setPassword($_config['apikeys']['paypal_password'])
           ->setSignature($_config['apikeys']['paypal_signature'])
           ->setSandbox()

            ->setQueryParameter('NOTIFYURL', $_base . 'models/paypal/ipn.php')
            ->setQueryParameter('RETURNURL', route('hotel-thank-you', $_id_booking))
            ->setQueryParameter('CANCELURL', (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http" . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"))

            ->setQueryParameter('PAYMENTREQUEST_0_PAYMENTACTION', 'Sale')
            ->setQueryParameter('PAYMENTREQUEST_0_AMT', $_card_price)
            ->setQueryParameter('PAYMENTREQUEST_0_CURRENCYCODE', 'EUR')

            ->setQueryParameter('NOSHIPPING', '1')
            ->setQueryParameter('LOGOIMG', $_base.'static/img/logo.png');

if (!$exCheckout->isValid()) {
    throw new Exception('Missing Parameters: ' . implode(', ', $exCheckout->determineMissingFields()));
}
$paypalResponse = $exCheckout->send();
if ($paypalResponse->isSuccess()) {
    db_query('UPDATE booking SET paypal_token = ? WHERE id_booking = ?',
        $paypalResponse->getParameter('TOKEN'),
        $_id_booking
    );

    $paypalResponse->setSandbox();
    $paypalResponse->authorize();
}
else {
    die('No Success PayPal checkout');
}

你能帮我吗?

1 个答案:

答案 0 :(得分:0)

第一拳确保您在沙盒或生产中都拥有企业帐户。

然后按照以下步骤操作,贝宝会点击您的通知URL。

  1. 通过www.paypal.com登录到您的PayPal商业帐户。
  2. 在右上方的“配置文件”菜单中,单击“配置文件和设置”。

点击我的销售工具。

注意:如果您没有在右上角看到配置文件图标,请导航至“我的帐户”>“配置文件”>“我的销售工具”。

  1. 点击“立即付款通知”行中“获得付款并管理我的风险”部分中的“更新”链接。
  2. 单击“选择IPN设置”以指定您的侦听器的URL并激活该侦听器。将打开以下页面

enter image description here

  1. 在“通知URL”字段中为您的侦听器指定URL。
  2. 单击“接收IPN消息(已启用)”以启用您的侦听器。
  3. 点击保存。

您必须在请求和设置中添加相同的通知URL。