Я пытаюсь вызвать тестовый API песочницы Payu, как указано в
http://developers.payu.com/en/restapi.html#creating_new_order_api
И делаю это с помощью запроса на публикацию в жопе, как этот,
$client = new GuzzleHttp\Client();
$result = $client->request('POST', "https://secure.snd.payu.com/api/v2_1/orders", [
'headers' => [
'Content-Type' => 'application/json',
'Authorization' => 'Bearer 3e5cac39-7e38-4139-8fd6-30adc06a61bd',
],
'body' => json_encode([
"notifyUrl" => "https://your.eshop.com/notify",
"customerIp" => "127.0.0.1",
"merchantPosId" => "145227",
"description" => "RTV market",
"currencyCode" => "PLN",
"totalAmount" => "15000",
"extOrderId" => "erm742k6ycekibt6d3qr89",
"buyer" => [
"email" => "john.doe@example.com",
"phone" => "654111654",
"firstName" => "John",
"lastName" => "Doe",
"language" => "en",
],
"products" => [
[
"name" => "Wireless Mouse for Laptop",
"unitPrice" => "15000",
"quantity" => "1",
],
],
]),
]);
Но я получаю статус ответа 200 и с телом как:
{
"error": "invalid_token",
"error_description": "Invalid access token",
}
Сделал тот же самый вызов с использованием cURL, как это,
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://secure.payu.com/api/v2_1/orders');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_VERBOSE, true)
curl_setopt($ch, CURLOPT_POSTFIELDS, "{\n \"notifyUrl\": \"https://your.eshop.com/notify\",\n \"customerIp\": \"127.0.0.1\",\n \"merchantPosId\": \"145227\",\n \"description\": \"RTV market\",\n \"currencyCode\": \"PLN\",\n \"totalAmount\": \"15000\",\n \"extOrderId\":\"erm742k6ycekibt6d3qr99\",\n \"buyer\": {\n \"email\": \"john.doe@example.com\",\n \"phone\": \"654111654\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"language\": \"en\"\n },\n \"products\": [\n {\n \"name\": \"Wireless Mouse for Laptop\",\n \"unitPrice\": \"15000\",\n \"quantity\": \"1\"\n }\n ]\n}");
curl_setopt($ch, CURLOPT_POST, 1);
$headers = array();
$headers[] = 'Content-Type: application/json';
$headers[] = 'Authorization: Bearer 3e5cac39-7e38-4139-8fd6-30adc06a61bd';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
И это даетжелаемый ответ с кодом состояния 200:
{"orderId":"F2CJ8NSJ1Z190614GUEST000P01","extOrderId":"erm742k6ycekibt6d3qr99","status":{"statusCode":"SUCCESS"},"redirectUri":"https://secure.payu.com/pay/?orderId=F2CJ8NSJ1Z190614GUEST000P01&token=eyJhbGciOiJIUzI1NiJ9.eyJvcmRlcklkIjoiRjJDSjhOU0oxWjE5MDYxNEdVRVNUMDAwUDAxIiwicG9zSWQiOiJ6RGVubjhoTiIsImF1dGhvcml0aWVzIjpbIlJPTEVfQ0xJRU5UIl0sInBheWVyRW1haWwiOiJqb2huLmRvZUBleGFtcGxlLmNvbSIsImV4cCI6MTU2MDU3OTY0NCwiaXNzIjoiUEFZVSIsImF1ZCI6ImFwaS1nYXRld2F5Iiwic3ViIjoiUGF5VSBzdWJqZWN0IiwianRpIjoiNjc2NzQxMGQtNGJhNy00MmM4LWFjZmItMjRiMDUyNmYzY2VmIn0.s1cVhDYR4U5KN2-M-KWaG5dLjJqX8jbhTwI2NDg_3fo"}
Я думаю, что авторизация в заголовке не передается в запросе на жадность.Как я могу решить это, чтобы работать с жрет?