Но сначала мне нужно создать массив PHP.
Изначально я создавал объект JSON для отправки в конечную точку, вот так:
Код: Выделить всё
$content = '{
"event": "'. $event . '",
"payload": {
"email": "' . $email . '",
"fields": {
"mrc_c3": "' . $mrc_c3 . '",
"country": "' . $country . '",
"last_name": "'.$lastName.'",
"first_name": "' . $firstName . '",
"mrc_date_c3": "' . $mrc_date_c3_format . '"
},
"overwrite": true
}
}';
Вот моя попытка создать массив PHP:
Код: Выделить всё
$arr = array('event' => $event, 'payload', 'email' => $email, 'fields', 'mrc_c3' => $mrc_c3, 'country' => $country, 'last_name' => $lastName, 'first_name' => $firstName, 'mrc_date_c3' => $mrc_date_c3_format);
Код: Выделить всё
echo json_encode($arr);
Код: Выделить всё
{"event":"donation_completed","0":"payload","email":"myemail@yahoo.com","1":"fields","mrc_c3":"21.50","country":"US","last_name":"Beasley","first_name":"John","mrc_date_c3":"10\/18\/2024"}
Что я сделал не так? Правильно ли я создал массив PHP?
РЕДАКТИРОВАТЬ
Мне удалось создать приведенный ниже массив с подмассивом:
Код: Выделить всё
$arr = [
'event' => $event,
'payload' => [
'email' => $email,
'fields' => [
'mrc_c3' => $payload['payload']['fields']['mrcC3'],
'country' => $payload['payload']['fields']['country'],
'last_name' => $payload['payload']['fields'}['lastName'],
'first_name' => $payload['payload']['fields']['firstName'],
'mrc_date_c3' => date('m/d/Y', strtotime($payload['payload']['fields']['mrcDateC3'])),
],
'overwrite' => true
],
];
Код: Выделить всё
"{\n \"event\": \"donation_completed\",\n \"payload\": {\n
\"email\": \"myemail@yahoo.com\",\n \"fields\": {\n
\"mrc_c3\": null,\n \"country\": \"US\",\n
\"last_name\": null,\n \"first_name\": null,\n
\"mrc_date_c3\": \"01\\/01\\/1970\"\n },\n
\"overwrite\": true\n }\n}status 200"
Полезная нагрузка поступает в PHP-скрипт и выглядит следующим образом:
Код: Выделить всё
$payload = json_decode(file_get_contents("php://input"), true);
Код: Выделить всё
$event = $payload["event"];
$email = $payload['payload']["email"];
$firstName = $payload['payload']['fields']['firstName'];
$lastName = $payload['payload']['fields']['lastName'];
$country = $payload['payload']['fields']['country'];
$mrc_c3 = $payload['payload']['fields']['mrcC3'];
$mrc_date_c3 = strtotime($payload['payload']['fields']['mrcDateC3']);
$mrc_date_c3_format = date('m/d/Y', $mrc_date_c3);
Я могу повторить echo json_encode($arr, JSON_PRETTY_PRINT) и просмотрите каждое из значений.
Почему они отправляются в конечную точку с нулевой и неправильной датой?
Подробнее здесь: https://stackoverflow.com/questions/791 ... rnal-array
Мобильная версия