我有一个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');
}
你能帮我吗?
答案 0 :(得分:0)
第一拳确保您在沙盒或生产中都拥有企业帐户。
然后按照以下步骤操作,贝宝会点击您的通知URL。
点击我的销售工具。
注意:如果您没有在右上角看到配置文件图标,请导航至“我的帐户”>“配置文件”>“我的销售工具”。
您必须在请求和设置中添加相同的通知URL。