PayPal PHP SDK - 支付创建不适用于生产 - 空响应

时间:2015-07-29 15:32:50

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

我只是面对这个问题几个小时。这个完整的应用程序在本地工作(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沙盒模式下运行。 paypal日志文件也是空的。

1 个答案:

答案 0 :(得分:1)

在此发布以解决问题。问题作者调查并找到了他正在使用的第三方图书馆,该图书馆正在抑制他需要用&#39; @&#39;运营商。删除&#39; @&#39;运营商(暂时?)他能够用他正在使用的PayPal SDK纠正问题。