Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Recorrer estos datos con PHP

Estas en el tema de Recorrer estos datos con PHP en el foro de PHP en Foros del Web. Hola amigos! Me estoy conectando a paypal sdk y despues de realizar una transaccion me retorna estos datos: Código: object(PayPal\Api\Payment)#8 (1) { ["_propMap":"PayPal\Common\PPModel":private]=> array(8) { ...
  #1 (permalink)  
Antiguo 09/12/2013, 09:54
Avatar de indie_rok  
Fecha de Ingreso: mayo-2013
Ubicación: Top of the world.
Mensajes: 85
Antigüedad: 10 años, 11 meses
Puntos: 0
Busqueda Recorrer estos datos con PHP

Hola amigos!

Me estoy conectando a paypal sdk y despues de realizar una transaccion me retorna estos datos:

Código:
object(PayPal\Api\Payment)#8 (1) {
  ["_propMap":"PayPal\Common\PPModel":private]=>
  array(8) {
    ["id"]=>
    string(28) "PAY-66N6061121216644JKKS6LVQ"
    ["create_time"]=>
    string(20) "2013-12-09T15:46:30Z"
    ["update_time"]=>
    string(20) "2013-12-09T15:53:32Z"
    ["state"]=>
    string(8) "approved"
    ["intent"]=>
    string(4) "sale"
    ["payer"]=>
    object(PayPal\Api\Payer)#33 (1) {
      ["_propMap":"PayPal\Common\PPModel":private]=>
      array(2) {
        ["payment_method"]=>
        string(6) "paypal"
        ["payer_info"]=>
        object(PayPal\Api\PayerInfo)#30 (1) {
          ["_propMap":"PayPal\Common\PPModel":private]=>
          array(5) {
            ["email"]=>
            string(19) "[email protected]"
            ["first_name"]=>
            string(7) "Cliente"
            ["last_name"]=>
            string(6) "Orozco"
            ["payer_id"]=>
            string(13) "U8C2RMNA4SP9E"
            ["shipping_address"]=>
            object(PayPal\Api\Address)#31 (1) {
              ["_propMap":"PayPal\Common\PPModel":private]=>
              array(5) {
                ["line1"]=>
                string(9) "1 Main St"
                ["city"]=>
                string(8) "San Jose"
                ["state"]=>
                string(2) "CA"
                ["postal_code"]=>
                string(5) "95131"
                ["country_code"]=>
                string(2) "US"
              }
            }
          }
        }
      }
    }
    ["transactions"]=>
    array(1) {
      [0]=>
      object(PayPal\Api\Transaction)#34 (1) {
        ["_propMap":"PayPal\Common\PPModel":private]=>
        array(4) {
          ["amount"]=>
          object(PayPal\Api\Amount)#35 (1) {
            ["_propMap":"PayPal\Common\PPModel":private]=>
            array(3) {
              ["total"]=>
              string(6) "100.00"
              ["currency"]=>
              string(3) "USD"
              ["details"]=>
              object(PayPal\Api\Details)#36 (1) {
                ["_propMap":"PayPal\Common\PPModel":private]=>
                array(1) {
                  ["subtotal"]=>
                  string(6) "100.00"
                }
              }
            }
          }
          ["description"]=>
          string(14) "Lo que pagaras"
          ["item_list"]=>
          object(PayPal\Api\ItemList)#37 (1) {
            ["_propMap":"PayPal\Common\PPModel":private]=>
            array(1) {
              ["items"]=>
              array(1) {
                [0]=>
                object(PayPal\Api\Item)#38 (1) {
                  ["_propMap":"PayPal\Common\PPModel":private]=>
                  array(4) {
                    ["name"]=>
                    string(23) "video: federer en paris"
                    ["price"]=>
                    string(6) "100.00"
                    ["currency"]=>
                    string(3) "USD"
                    ["quantity"]=>
                    string(1) "1"
                  }
                }
              }
            }
          }
          ["related_resources"]=>
          array(1) {
            [0]=>
            object(PayPal\Api\RelatedResources)#40 (1) {
              ["_propMap":"PayPal\Common\PPModel":private]=>
              array(1) {
                ["sale"]=>
                object(PayPal\Api\Sale)#42 (1) {
                  ["_propMap":"PayPal\Common\PPModel":private]=>
                  array(7) {
                    ["id"]=>
                    string(17) "2ES44750XJ1684301"
                    ["create_time"]=>
                    string(20) "2013-12-09T15:46:30Z"
                    ["update_time"]=>
                    string(20) "2013-12-09T15:53:32Z"
                    ["state"]=>
                    string(9) "completed"
                    ["amount"]=>
                    object(PayPal\Api\Amount)#44 (1) {
                      ["_propMap":"PayPal\Common\PPModel":private]=>
                      array(2) {
                        ["total"]=>
                        string(6) "100.00"
                        ["currency"]=>
                        string(3) "USD"
                      }
                    }
                    ["parent_payment"]=>
                    string(28) "PAY-66N6061121216644JKKS6LVQ"
                    ["links"]=>
                    array(3) {
                      [0]=>
                      object(PayPal\Api\Links)#46 (1) {
                        ["_propMap":"PayPal\Common\PPModel":private]=>
                        array(3) {
                          ["href"]=>
                          string(65) "https://api.sandbox.paypal.com/v1/payments/sale/2ES44750XJ1684301"
                          ["rel"]=>
                          string(4) "self"
                          ["method"]=>
                          string(3) "GET"
                        }
                      }
                      [1]=>
                      object(PayPal\Api\Links)#47 (1) {
                        ["_propMap":"PayPal\Common\PPModel":private]=>
                        array(3) {
                          ["href"]=>
                          string(72) "https://api.sandbox.paypal.com/v1/payments/sale/2ES44750XJ1684301/refund"
                          ["rel"]=>
                          string(6) "refund"
                          ["method"]=>
                          string(4) "POST"
                        }
                      }
                      [2]=>
                      object(PayPal\Api\Links)#48 (1) {
                        ["_propMap":"PayPal\Common\PPModel":private]=>
                        array(3) {
                          ["href"]=>
                          string(79) "https://api.sandbox.paypal.com/v1/payments/payment/PAY-66N6061121216644JKKS6LVQ"
                          ["rel"]=>
                          string(14) "parent_payment"
                          ["method"]=>
                          string(3) "GET"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
    ["links"]=>
    array(1) {
      [0]=>
      object(PayPal\Api\Links)#49 (1) {
        ["_propMap":"PayPal\Common\PPModel":private]=>
        array(3) {
          ["href"]=>
          string(79) "https://api.sandbox.paypal.com/v1/payments/payment/PAY-66N6061121216644JKKS6LVQ"
          ["rel"]=>
          string(4) "self"
          ["method"]=>
          string(3) "GET"
        }
      }
    }
  }
}
No se si sea JSON, o que sea, pero hay una forma de tener esos datos de la forma arreglo. Estilo Payment["email"]? (para que me retorne el email del usuario que hizo la compra.

Gracias
  #2 (permalink)  
Antiguo 09/12/2013, 10:09
Avatar de xSkArx  
Fecha de Ingreso: marzo-2008
Ubicación: Chile
Mensajes: 945
Antigüedad: 16 años, 1 mes
Puntos: 96
Respuesta: Recorrer estos datos con PHP

Lo que tienes es un objeto, puedes recorrerlo con un foreach
__________________
Busca, lee y practica todo lo que puedas.
Usa siempre el buscador antes de postear.
Si posteas código, utiliza el HIGHLIGHT correcto.
  #3 (permalink)  
Antiguo 09/12/2013, 10:10
Avatar de Dalam  
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 13 años, 7 meses
Puntos: 56
Respuesta: Recorrer estos datos con PHP

El codigo es erroneo
Cita:
object(PayPal\Api\Payment)#8 (1) {
eso no lee apartir de la almoadilla, de la almoadilla en adelante lo lee como una nota, el lo mismo que // con lo que la apertura { no la lee.
Haz un print_r de los datos que quieres procesar y escribe el codigo resultante, y en tonces se te intentara ayudar.
Como te han dicho es un objeto y deberias tratarlo como tal.
  #4 (permalink)  
Antiguo 09/12/2013, 10:17
Avatar de indie_rok  
Fecha de Ingreso: mayo-2013
Ubicación: Top of the world.
Mensajes: 85
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: Recorrer estos datos con PHP

Gracias! Me podrias dar un ejemplo?

No se como comenzar.
  #5 (permalink)  
Antiguo 09/12/2013, 10:19
Avatar de indie_rok  
Fecha de Ingreso: mayo-2013
Ubicación: Top of the world.
Mensajes: 85
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: Recorrer estos datos con PHP

Lo que estoy imprimiento es un var_dump de lo que retorna la API
  #6 (permalink)  
Antiguo 09/12/2013, 10:44
Avatar de indie_rok  
Fecha de Ingreso: mayo-2013
Ubicación: Top of the world.
Mensajes: 85
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: Recorrer estos datos con PHP

Utilizé un metodo para pasarlo todo a array.

Ahora tengo esto:

Código:
array(8) {
  ["id"]=>
  string(28) "PAY-854213594E541481RKKS7GQA"
  ["create_time"]=>
  string(20) "2013-12-09T16:43:44Z"
  ["update_time"]=>
  string(20) "2013-12-09T16:44:01Z"
  ["state"]=>
  string(8) "approved"
  ["intent"]=>
  string(4) "sale"
  ["payer"]=>
  array(2) {
    ["payment_method"]=>
    string(6) "paypal"
    ["payer_info"]=>
    array(5) {
      ["email"]=>
      string(19) "[email protected]"
      ["first_name"]=>
      string(7) "Cliente"
      ["last_name"]=>
      string(6) "Orozco"
      ["payer_id"]=>
      string(13) "U8C2RMNA4SP9E"
      ["shipping_address"]=>
      array(5) {
        ["line1"]=>
        string(9) "1 Main St"
        ["city"]=>
        string(8) "San Jose"
        ["state"]=>
        string(2) "CA"
        ["postal_code"]=>
        string(5) "95131"
        ["country_code"]=>
        string(2) "US"
      }
    }
  }
  ["transactions"]=>
  array(1) {
    [0]=>
    array(4) {
      ["amount"]=>
      array(3) {
        ["total"]=>
        string(6) "100.00"
        ["currency"]=>
        string(3) "USD"
        ["details"]=>
        array(1) {
          ["subtotal"]=>
          string(6) "100.00"
        }
      }
      ["description"]=>
      string(14) "Lo que pagaras"
      ["item_list"]=>
      array(1) {
        ["items"]=>
        array(1) {
          [0]=>
          array(4) {
            ["name"]=>
            string(23) "video: federer en paris"
            ["price"]=>
            string(6) "100.00"
            ["currency"]=>
            string(3) "USD"
            ["quantity"]=>
            string(1) "1"
          }
        }
      }
      ["related_resources"]=>
      array(1) {
        [0]=>
        array(1) {
          ["sale"]=>
          array(7) {
            ["id"]=>
            string(17) "90052198EU831541J"
            ["create_time"]=>
            string(20) "2013-12-09T16:43:44Z"
            ["update_time"]=>
            string(20) "2013-12-09T16:44:01Z"
            ["state"]=>
            string(9) "completed"
            ["amount"]=>
            array(2) {
              ["total"]=>
              string(6) "100.00"
              ["currency"]=>
              string(3) "USD"
            }
            ["parent_payment"]=>
            string(28) "PAY-854213594E541481RKKS7GQA"
            ["links"]=>
            array(3) {
              [0]=>
              array(3) {
                ["href"]=>
                string(65) "https://api.sandbox.paypal.com/v1/payments/sale/90052198EU831541J"
                ["rel"]=>
                string(4) "self"
                ["method"]=>
                string(3) "GET"
              }
              [1]=>
              array(3) {
                ["href"]=>
                string(72) "https://api.sandbox.paypal.com/v1/payments/sale/90052198EU831541J/refund"
                ["rel"]=>
                string(6) "refund"
                ["method"]=>
                string(4) "POST"
              }
              [2]=>
              array(3) {
                ["href"]=>
                string(79) "https://api.sandbox.paypal.com/v1/payments/payment/PAY-854213594E541481RKKS7GQA"
                ["rel"]=>
                string(14) "parent_payment"
                ["method"]=>
                string(3) "GET"
              }
            }
          }
        }
      }
    }
  }
  ["links"]=>
  array(1) {
    [0]=>
    array(3) {
      ["href"]=>
      string(79) "https://api.sandbox.paypal.com/v1/payments/payment/PAY-854213594E541481RKKS7GQA"
      ["rel"]=>
      string(4) "self"
      ["method"]=>
      string(3) "GET"
    }
  }
}
Como manipulo esos datos?

Gracias
  #7 (permalink)  
Antiguo 09/12/2013, 11:38
Avatar de Dalam  
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 13 años, 7 meses
Puntos: 56
Respuesta: Recorrer estos datos con PHP

Eso ya es cuestion de lo que necesites hacer con los datos.
Ten en cuenta que lo que has obtenido es un array multidimensional, lee la documentacion de php al respecto y cambia los datos que necesites.
  #8 (permalink)  
Antiguo 09/12/2013, 13:24
Avatar de indie_rok  
Fecha de Ingreso: mayo-2013
Ubicación: Top of the world.
Mensajes: 85
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: Recorrer estos datos con PHP

Si, listo!

Ya quedo, muchas gracias

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:33.