public function subscribe($subscription, $productRatePlan) { $sdata = new \Zuora_SubscriptionData($subscription->castToZuora()); // print_r($sdata); $subcriptionRatePlan = app('OlivierBarbier\\Zorm\\Zobject\\RatePlan'); $subcriptionRatePlan->ProductRatePlanId = $productRatePlan->Id; $sdata->addRatePlanData(new \Zuora_RatePlanData($subcriptionRatePlan->castToZuora(['ProductRatePlanId']))); $zSubscribeOptions = new \Zuora_SubscribeOptions(false, false); $subscribe = $this->zuora()->subscribeWithExistingAccount($this->castToZuora(['Id']), $sdata, $zSubscribeOptions); // print_r($subscribe); $this->throwExceptionOnError($subscribe); return $subscribe; }
/** * Execute subscribeWithExistingAccount() API call. * * @return result object * * @throws ZuoraFault */ public function subscribeWithExistingAccount(Zuora_Account $zAccount, Zuora_SubscriptionData $zSubscriptionData, Zuora_SubscribeOptions $zSubscribeOptions = null) { $subscribeRequest = array('Account' => $zAccount->getSoapVar(), 'SubscriptionData' => $zSubscriptionData->getSoapVar()); if (isset($zSubscribeOptions)) { $subscribeRequest['SubscribeOptions'] = $zSubscribeOptions->getSoapVar(); } try { $result = $this->_client->__soapCall("subscribe", array('zObjects' => array($subscribeRequest)), null, $this->_header); } catch (SoapFault $e) { throw new ZuoraFault('ERROR in ' . __METHOD__, $e, $this->_client->__getLastRequestHeaders(), $this->_client->__getLastRequest(), $this->_client->__getLastResponseHeaders(), $this->_client->__getLastResponse()); } return $result; }