【问题标题】:PayPal PHP SDK - payment creation doesn't work on production - empty responsePayPal PHP SDK - 付款创建不适用于生产 - 空响应
【发布时间】:2015-10-20 16:43:23
【问题描述】:

我几个小时都在面对这个问题。这个完整的应用程序在本地运行(OSX/MAMP/modphp/PHP 5.5.18),但由于某种原因在生产服务器上,支付创建失败:白色/空响应。没有异常,也没有达到最大执行时间限制 HTTP 200。PHP 和 Apache 日志很好,屏幕上也没有错误。

$payment->create($this->apiContext); 之前的所有内容都被执行 - 在该行之后,结果是空白页。

生产服务器运行 Ubuntu 14.04 / Apache 2.4.7 / modphp / PHP 5.5.9

代码如下:

public function create($data)
{
    $payer = new Payer();
    $payer->setPaymentMethod("paypal");

    $total    = 0.0;
    $shipping = 0.0;
    foreach ($data as $key => $value) {
        $item = new Item();
        $item->setName($value->name)
            ->setDescription($value->type)
            ->setCurrency(Option::get('general-settings', 'currency'))
            ->setQuantity($value->amount)
            ->setPrice($value->price);

        $items[] = $item;
        $total += $value->price * $value->amount;
    }

    if ($total < 100) {
        $shipping += 10;
    }

    $itemList = new ItemList();
    $itemList->setItems($items);

    $details = new Details();
    $details->setShipping($shipping)
    ->setSubtotal($total);

    $amount = new Amount();
    $amount->setCurrency(Option::get('general-settings', 'currency'))
        ->setTotal($total+$shipping)
        ->setDetails($details);

    $transaction = new Transaction();
    $transaction->setAmount($amount)
        ->setItemList($itemList)
        ->setDescription("JustinRein Auftag")
        ->setInvoiceNumber(uniqid());

    $baseUrl = "http://example.ch";
    $redirectUrls = new RedirectUrls();
    $redirectUrls->setReturnUrl("$baseUrl/payment?success=true")
        ->setCancelUrl("$baseUrl/payment?success=false");

    $payment = new Payment();
    $payment->setIntent("sale")
        ->setPayer($payer)
        ->setRedirectUrls($redirectUrls)
        ->setTransactions(array($transaction));

    try {
        $payment->create($this->apiContext);

    } catch (Exception $ex) {
        td($ex);
        exit(1);
    }

    return $payment;
}

这也可以在贝宝沙盒模式下运行。贝宝日志文件也是空的。

【问题讨论】:

  • 这个PayPal PHP SDK 更容易使用并且没有这样的问题。它只是工作。如果你不能很快解决这个问题,我建议你看看(即使你这样做了)。
  • 谢谢,但这不是官方的,我也不会重写我的代码。但是如果这个问题没有得到解决,我会看看,谢谢。
  • PayPal 自己的集成代表通常更喜欢并推荐 angelleye 库。 Angelleye 也是 PayPal 的官方合作伙伴。只是需要考虑的事情。您可以在几分钟内获得与它集成的付款。
  • 空白页通常表示 PHP 错误但未显示错误。你检查过PHP错误日志吗?您可以专门在服务器或脚本上启用错误报告吗?空响应可能意味着服务器上根本没有启用 cURL。你检查过吗?
  • 刚刚解决了这个问题。这是来自第三方库的带有“@”的抑制错误。

标签: php paypal paypal-sandbox paypal-rest-sdk


【解决方案1】:

在此处发布以结束问题。问题作者调查并发现他正在使用的第三方库抑制了他需要使用“@”运算符查看的错误。删除“@”运算符(暂时?)后,他能够纠正他正在使用的 PayPal SDK 的问题。

【讨论】:

  • 哦 - 很抱歉 - 在这里忘记这个问题。感谢您的结束回答! Paypal SDK 没有错误 - 只是库导致了错误,而不是搞砸了 paypal 支付 - 所以我认为它是 PP SDK .. 但它很好。
猜你喜欢
  • 2018-01-25
  • 2015-09-24
  • 2014-04-06
  • 2019-08-07
  • 2012-03-11
  • 2016-05-26
  • 2015-09-05
  • 1970-01-01
  • 2013-08-25
相关资源
最近更新 更多