예제 #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);
     }
 }
예제 #2
0
 function it_maps_recurring_payment_instrument(Payment $payment)
 {
     $data = ['payment_method' => 'recurring', 'payment_instrument' => ['payment_id' => 'ba3119f2-9a73-11e4-89d3-123b93f75cba']];
     $instrument = new PaymentInstrumentRecurring();
     $instrument->setPaymentId('ba3119f2-9a73-11e4-89d3-123b93f75cba');
     $payment->setPaymentMethod('recurring')->shouldBeCalled();
     $payment->setPaymentInstrument($instrument)->shouldBeCalled();
     $this->map($data, $payment);
 }