<?
$data = array("name" => "Hagrid", "age" => "36");
$data_string = json_encode($data);
$ch = curl_init('http://api.local/rest/users');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string))
);
$result = curl_exec($ch);
?>
$json = file_get_contents('php://input');
$obj = json_decode($json);
Сейчас пытаюсь доработать структуризацию подключения к API Яндекс.Кассы посредством CUrl и вдруг Яндекс требует POST-запрос в JSON-формате. Перепробовал все инструкции, вроде всё правильно и так не работает...
<?php
$urlreturn="https://good-adults.ru/donation/payment/send/send?sucess=yes";
$method="sberbank";
$url="https://payment.yandex.net/api/v3/payments";
$idempotence = uniqid('', true);
$headers=array(
"Idempotence-Key:". $idempotence,
"Content-Type: application/json"
);
$data=array(
"amount"=>array(
"value"=>$money .".00",
"currency"=>"RUB"
),
"payment_method_data"=>array(
"type"=>$method
),
"confirmation"=>array(
"type"=>"redirect",
"return_url"=>$urlreturn
),
"description"=>"Благотворительное пожертвование"
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, "596115:test_ZZ88TGAJiMajCoMVlZyYAkov7inGurf2ZdYkXkrVQqQ");
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
$data = curl_exec($ch);
if(curl_close($ch)){
$obj=json_decode($data,true);
$redirect=$obj->confirmation->confirmation_url;
setcookie('payment_id',$status->id,time()+14400);
header("Location:". $redirect);
}
?>