Ejemplo n.º 1
0
 /**
  * Loads result object values from json object
  * @param string $string json
  * @return void
  */
 public function unserialize($string)
 {
     $data = json_decode($string);
     foreach ($data as $property => $value) {
         $method = $this->setterName($property);
         if (is_numeric($value) && strstr($value, '.')) {
             $value = floatval($value);
         } elseif (is_object($value)) {
             if ($property == 'authorization_information') {
                 $object = new AuthorizationInformation();
                 $object->unserialize(json_encode($value));
                 $value = $object;
             } elseif ($property == 'payment_instrument') {
                 if (!isset($data->payment_method)) {
                     throw new Exception\Runtime('Property "payment_method" is missing');
                 }
                 if ($data->payment_method == Payment\Create::CARD) {
                     $object = new PaymentInstrumentCard();
                 } elseif ($data->payment_method == Payment\Create::RECURRING) {
                     $object = new PaymentInstrumentRecurring();
                 }
                 $object->unserialize(json_encode($value));
                 $value = $object;
             }
         }
         $this->{$method}($value);
     }
 }