Почему этот php-код отображает массив json без кода для его отображения?

1
<?php

function pay()
{
        $data = '
    {
          "intent":"sale",

          "redirect_urls":
          {
            "return_url":"http://n1.lchs-is.org",
            "cancel_url":"http://n1.lchs-is.org"
          },

          "payer":
          {
            "payment_method":"paypal"
          },

          "transactions":
          [
            {
              "amount":
              {
                "total":"7.47",
                "currency":"USD"
              },

              "description":"This is the payment transaction description."
            }
          ]
    }
        ';


    //Start curl request
    $ch = curl_init();

    //Set curl options
    curl_setopt($ch, CURLOPT_URL, "https://api.sandbox.paypal.com/v1/payments/payment");
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
          "Content-Type: application/json",
          "Authorization: Bearer A101.lTxNCRX3B-vhQIN4991wdthA6SzCtPKganKXVOZta84hADs-25S5OGk4yyG-HLzR.lM-rDOIJAaEXGWhcYi2YF8yhnRy",
        ));

    //Display results
    $json = curl_exec($ch); // <------- It displaying this array that it receives from curl right here
    curl_close($ch);
}
pay();

?>

Я закодировал этот PHP-код, чтобы просто создать PayPal-платеж, и когда я его запустил, он отображает массив JSON, даже когда я его не закодировал. Почему это так и как я могу это исправить?

Также не выполняется какой-либо код, который я набрал после выполнения функции pay(). Например, если я поставлю echo "test"; эта строка кода не выполняется.

Теги:
paypal

1 ответ

4

Возможно, вам потребуется установить CURLOPT_RETURNTRANSFER

Например

curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // Store value in string $response below
$response = curl_exec($curl); //execute and get the results
  • 1
    Это верно. curl_exec по умолчанию выводит ответ в браузер. Вам нужно установить для параметра CURLOPT_RETURNTRANSFER значение true (в данном случае 1 ), чтобы захватить ответ в переменную.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню