Obtener datos de array json
Publicado por Diego (37 intervenciones) el 17/05/2015 01:40:20
Buenas tardes. tengo el siguiente problema. Tengo que capturar unos datos que me postea un servidor de una conocida empresa de venta de productos y cobros por la web. Para esto tuve que hacer una url por la cual me llegan las notificaciones de las operaciones, yo las debo capturar y en base a eso genero algunas operaciones sobre una base de datos y envio de correos. Con este codigo recibo las notificaciones: (lo que esta asi XXXXX son datos de conexion y datos personales)
Lo que veo es esto:
Array ( [status] => 200 [response] => Array ( [collection] => Array ( [sandbox] => 1 [id] => 1431708678 [site_id] => MLA [date_created] => 2015-05-15T12:51:17.544-04:00 [date_approved] => 2015-05-15T12:51:17.545-04:00 [money_release_date] => 2015-05-15T12:51:17.545-04:00 [last_modified] => 2015-05-15T12:51:17.545-04:00 [payer] => Array ( [id] => 164201714 [first_name] => Juan Carlos [last_name] => Gutierrez [phone] => Array ( [area_code] => [number] => 4811234162 [extension] => ) [identification] => Array ( [type] => [number] => ) [email] => [email protected] [nickname] => GUJU3127877 ) [order_id] => 14 [external_reference] => 14 [reason] => PRODUCTO DE PRUEBA [transaction_amount] => 100 [currency_id] => ARS [net_received_amount] => 100 [total_paid_amount] => 100 [shipping_cost] => 0 [status] => approved [status_detail] => accredited [installments] => 3 [payment_type] => credit_card [marketplace] => NONE [operation_type] => regular_payment [payment_method_id] => visa [marketplace_fee] => 0 [collector] => Array ( [id] => 169233675 [first_name] => XXXXXXXX [last_name] => XXXXXXXXXXXXXXXXX [phone] => Array ( [area_code] => [number] => XXXXXXXXXX [extension] => ) [email] => XXXXXXXXXXXXXXXXXXXXXX [nickname] => XXXXXXXXXX ) ) ) )
Yo no estoy familiarizado con esto y soy simplemente un aficionado....por lo que estuve viendo esto es un JSON que en realidad se vería así:
Por lo que estuve viendo en el sitio de esta empresa habría que usar esto, acceder a su API y pedir la info:
curl -X GET \
-H 'accept: application/json' \
'https://api.XXXXXXXXX.com/collections/notifications/identificador-de-la-operación?access_token=tu_access_token'
Pero la verdad que no se como se usa, ni siquiera se si esta sentencia es de php.
Alguien con experiencia que me oriente ???
Es lo único que me falta para terminar el sitio.
Muchas gracias !!!!!
1
2
3
4
5
6
7
8
9
10
<?php
$topic = $_GET['topic']; //dato que me llegan via url sobre la operacion
$id = $_GET['id']; //dato que me llegan via url sobre la operacion
require_once ('lib/XXXXX.php'); //accedo a la libreria necesaria para conectarme
$mp = new MP("XXXXXXX", "XXXXXXXXXX"); //datos de conexion
$mp->sandbox_mode(TRUE); //estoy en modo prueba
$at = $mp->get_access_token(); //token de acceso
$payment_info = $mp->get_payment_info($_GET["id"]); //guardo toda la info en esta variable
print_r ($payment_info); //esto lo puse para ver por pantalla que estoy recibiendo
?>
Lo que veo es esto:
Array ( [status] => 200 [response] => Array ( [collection] => Array ( [sandbox] => 1 [id] => 1431708678 [site_id] => MLA [date_created] => 2015-05-15T12:51:17.544-04:00 [date_approved] => 2015-05-15T12:51:17.545-04:00 [money_release_date] => 2015-05-15T12:51:17.545-04:00 [last_modified] => 2015-05-15T12:51:17.545-04:00 [payer] => Array ( [id] => 164201714 [first_name] => Juan Carlos [last_name] => Gutierrez [phone] => Array ( [area_code] => [number] => 4811234162 [extension] => ) [identification] => Array ( [type] => [number] => ) [email] => [email protected] [nickname] => GUJU3127877 ) [order_id] => 14 [external_reference] => 14 [reason] => PRODUCTO DE PRUEBA [transaction_amount] => 100 [currency_id] => ARS [net_received_amount] => 100 [total_paid_amount] => 100 [shipping_cost] => 0 [status] => approved [status_detail] => accredited [installments] => 3 [payment_type] => credit_card [marketplace] => NONE [operation_type] => regular_payment [payment_method_id] => visa [marketplace_fee] => 0 [collector] => Array ( [id] => 169233675 [first_name] => XXXXXXXX [last_name] => XXXXXXXXXXXXXXXXX [phone] => Array ( [area_code] => [number] => XXXXXXXXXX [extension] => ) [email] => XXXXXXXXXXXXXXXXXXXXXX [nickname] => XXXXXXXXXX ) ) ) )
Yo no estoy familiarizado con esto y soy simplemente un aficionado....por lo que estuve viendo esto es un JSON que en realidad se vería así:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Status code: 200 OK
{
collection: {
id: 52675155,
site_id: "Identificador de país",
operation_type: "regular_payment",
order_id: "4442154",
external_reference: "150671633",
status: "approved",
status_detail: "accredited",
payment_type: "ticket",
date_created: "2011-09-02T04:00:000Z",
last_modified: "2011-09-12T02:52:530Z",
date_approved: "2011-09-02T02:49:530Z",
money_release_date: "2011-09-09T02:49:530Z",
currency_id: "Tipo de moneda",
transaction_amount: 50.5,
shipping_cost: 0,
finance_charge: null,
total_paid_amount: 50.5,
net_received_amount: 0,
reason: "Título de lo que estás pagando",
payer: {
id: 36073078,
first_name: "payer-name",
last_name: "payer-surname",
email: "payer@email.com",
nickname: "payer-xxxxxx-nickname"
phone: {
area_code: "011",
number: "3486 5039",
extension: null
}
},
collector: {
id: 68961616,
first_name: "collector-name",
last_name: "collector-surname",
email: "collector@email.com",
nickname: "collector-xxxxxxxxxx-nickname"
phone: {
area_code: "211",
number: "3486 5039",
extension: null
}
}
}
}
Por lo que estuve viendo en el sitio de esta empresa habría que usar esto, acceder a su API y pedir la info:
curl -X GET \
-H 'accept: application/json' \
'https://api.XXXXXXXXX.com/collections/notifications/identificador-de-la-operación?access_token=tu_access_token'
Pero la verdad que no se como se usa, ni siquiera se si esta sentencia es de php.
Alguien con experiencia que me oriente ???
Es lo único que me falta para terminar el sitio.
Muchas gracias !!!!!
Valora esta pregunta


0