我只是面对这个问题几个小时。这个完整的应用程序在本地工作(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日志文件也是空的。
答案 0 :(得分:1)
在此发布以解决问题。问题作者调查并找到了他正在使用的第三方图书馆,该图书馆正在抑制他需要用&#39; @&#39;运营商。删除&#39; @&#39;运营商(暂时?)他能够用他正在使用的PayPal SDK纠正问题。