PayPal SDK:使用PayPal账户支付时服务器无响应

PayPal SDK: No Server Response when Paying with PayPal Account

我已经搜索了文档 this tutorial 大约 100 次,但无法弄清楚如何使用 PayPal 帐户而不是信用卡完成付款流程。我已经通过信用卡付款了。

在上述教程中指出,我应该在创建 OAuth 凭据后期待来自服务器的 JSON 响应:

$sdkConfig = array(
    "mode" => "sandbox"
);

$cred = new OAuthTokenCredential("clientID","clientSecret", $sdkConfig);

尽管从服务器获得“200 OK”状态,但我完全没有得到服务器响应。

最初我的代码设置与其他一些教程一样:

$apiContext = new ApiContext(
        new OAuthTokenCredential(
                'clientID',     // ClientID
                'clientSecret'      // ClientSecret
        )
);

$payer = new Payer();
$payer->setPaymentMethod('paypal');

$item1 = new Item();
$item1->setName("Donation squares.");
$item1->setCurrency('USD');
$item1->setQuantity(1);
$item1->setPrice(1);

$itemList = new ItemList();
$itemList->setItems(array($item1));

$amountDetails = new Details();
$amountDetails->setSubtotal('7.41');
$amountDetails->setTax('0.03');
$amountDetails->setShipping('0.03');

$amount = new Amount();
$amount->setCurrency('USD');
$amount->setTotal('7.47');
$amount->setDetails($amountDetails);

$transaction = new Transaction();
$transaction->setAmount($amount);
$transaction->setDescription('This is the payment transaction description.');

$redirectUrls = new RedirectUrls();
$redirectUrls->setReturnUrl("https://devtools-paypal.com/guide/pay_paypal/php?success=true");
$redirectUrls->setCancelUrl("https://devtools-paypal.com/guide/pay_paypal/php?cancel=true");

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

try{
    $payment->create($apiContext);
} catch(Exception $e){
    echo $e
    exit(1);
}

None 这也有效 - 服务器没有任何响应。

回答/评论 毕竟,您不应该寻找 JSON 响应。如果付款创建成功,运行

应生成批准 URL
$payment->getApprovalLink();

用户然后按照此 link 完成 his/her 付款。

您可能有兴趣关注一个非常simple instruction here at PayPal-PHP-SDK, that explains how to make calls using PayPal PHP SDK。我知道您已经完成了这些,并且正在寻找如何使用 PayPal 创建付款。

我不确定您是否知道这一点,但是 PayPal-PHP-SDK 附带了很多 samples, that you could run by just one simple command(如果您有 PHP 5.4 或更高版本)。第一个示例中的一个具有进行 PayPal 调用的说明和代码。

其中涉及两个步骤。

  1. 创建付款。接收 approval_url link 用于要求用户通过任何浏览器完成 Paypal 流程。

  2. 一旦用户在 paypal 网站上接受付款,它将被重定向回您的网站,您在该网站上执行付款。

提供了两个代码示例here and here

如果这对您有帮助,请告诉我,您还有其他问题。我非常乐意提供帮助。