<?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";
эта строка кода не выполняется.
Возможно, вам потребуется установить CURLOPT_RETURNTRANSFER
Например
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // Store value in string $response below
$response = curl_exec($curl); //execute and get the results
curl_exec
по умолчанию выводит ответ в браузер. Вам нужно установить для параметраCURLOPT_RETURNTRANSFER
значениеtrue
(в данном случае1
), чтобы захватить ответ в переменную.