我在Laravel 4上使用了lib PayPal-PHP-SDK
我在显示订单详情时遇到问题。 我按照Paypal Web Checkout中的步骤进行操作 并且它没有向我显示订单详情。
它说"您可以在付款之前查看订单详情。" - Image Link
这是我获得付款链接时的方法:
public function checkout()
{
$apiContext = new ApiContext($this->cred, 'Request' . time());
$apiContext->setConfig($this->sdkConfig);
$payer = new Payer();
$payer->setPaymentMethod("paypal");
$amount = new Amount();
$amount->setCurrency("EUR");
$amount->setTotal("10");
$transaction = new Transaction();
$transaction->setDescription("Example");
$transaction->setCustom('abv');
$transaction->setAmount($amount);
$redirectUrls = new RedirectUrls();
$redirectUrls->setReturnUrl(URL::to('/') . '/payment/success/');
$redirectUrls->setCancelUrl(URL::to('/') . '/payment/cancel/');
$payment = new Payment();
$payment->setIntent("sale");
$payment->setPayer($payer);
$payment->setRedirectUrls($redirectUrls);
$payment->setTransactions(array($transaction));
$payment->create($apiContext);
print $payment->getApprovalLink();
}
答案 0 :(得分:3)
我在您的请求中没有看到任何明细细节。看到原始请求的样本被发送到PayPal会有所帮助,但从我可以看到的那些参数根本没有被包含在内。
在旁注中,您可能有兴趣查看我的PHP class library for PayPal。它可以在GitHub和Packagist上使用,并且与Composer一起使用,因此它与Laravel非常合作,并且比PayPal的SDK更容易使用。它设置了您可能想要使用的所有参数,包括逐项详细信息,因此您只需填写参数即可。
答案 1 :(得分:1)
正如Andrew所说,您在请求中缺少明细细节。这就是你如何做到的。 http://paypal.github.io/PayPal-PHP-SDK/sample/doc/payments/CreatePaymentUsingPayPal.html
正如您所看到的,create payment的array of transactions具有item_list
属性,需要进行设置。您可以在上面的链接中使用我们的SDK了解如何操作。
我们现在在SDK中附加了大量示例,只需一个命令即可在本地计算机上运行。请按照here
说明操作您需要运行的命令是:
php -f <paypal SDK Directory>/paypal/rest-api-sdk-php/sample/index.php
这将托管localhost:5000的本地服务器,允许您运行samples directory中的示例。
PayPal-PHP-SDK得到了强有力的发展,我们正在为它添加越来越多的功能。请访问我们的SDK page查看所有支持文档,API规范,示例等。