$v) { // FIXME: this is an encapsulation violation if ($k[0] == '_') { continue; } if ($v instanceof Stripe_Object) { $results[$k] = $v->__toArray(true); } else if (is_array($v)) { $results[$k] = self::convertStripeObjectToArray($v); } else { $results[$k] = $v; } } return $results; } /** * Converts a response from the Stripe API to the corresponding PHP object. * * @param array $resp The response from the Stripe API. * @param string $apiKey * @return Stripe_Object|array */ public static function convertToStripeObject($resp, $apiKey) { $types = array( 'card' => 'Stripe_Card', 'charge' => 'Stripe_Charge', 'customer' => 'Stripe_Customer', 'list' => 'Stripe_List', 'invoice' => 'Stripe_Invoice', 'invoiceitem' => 'Stripe_InvoiceItem', 'event' => 'Stripe_Event', 'transfer' => 'Stripe_Transfer', 'plan' => 'Stripe_Plan', 'recipient' => 'Stripe_Recipient', 'refund' => 'Stripe_Refund', 'subscription' => 'Stripe_Subscription' ); if (self::isList($resp)) { $mapped = array(); foreach ($resp as $i) array_push($mapped, self::convertToStripeObject($i, $apiKey)); return $mapped; } else if (is_array($resp)) { if (isset($resp['object']) && is_string($resp['object']) && isset($types[$resp['object']])) { $class = $types[$resp['object']]; } else { $class = 'Stripe_Object'; } return Stripe_Object::scopedConstructFrom($class, $resp, $apiKey); } else { return $resp; } } }