sendRequest Method
Use the sendRequest
global method to send REST requests to Zuora. The method takes in an Apex HTTP request, adds the authentication session header using the credentials set up in Connection Settings, and submits the request to Zuora.
The sendRequest
method uses the Salesforce native HttpRequest
and HttpResponse
classes.
Signature
global System.HttpResponse
Zuora.zApi.sendRequest (System.HttpRequest restRequest)
Parameter
The sendRequest
takes the following parameter.
Parameter | Type | Description |
---|---|---|
restRequest | System.HttpRequest | The request header and body in the native Salesforce class. |
Return Value
The sendRequest
method returns the System.HttpResponse
Salesforce class.
Sample Code
The following code queries the Zuora product catalog via the GET Products REST request.
HttpRequest req = new HttpRequest(); req.setEndpoint('https://apisandbox-api.zuora.com/rest/v1/catalog/products'); req.setMethod('GET'); req.setHeader('Content-Type', 'application/json'); req.setHeader('Accept', 'application/json'); Zuora.ZApi zApiInstance = new Zuora.ZApi(); HttpResponse resp = zApiInstance.sendRequest(req); System.debug(resp); if(resp.getStatusCode() == 200) { Map < String, Object > productData = (Map < String, Object > ) JSON.deserializeUntyped( resp.getBody() ); System.debug(productData); }
The following code creates a subscription in Zuora via the Post Subscription REST request:
req.setEndpoint('https://apisandbox-api.zuora.com/rest/v1/subscriptions'); req.setMethod('POST'); req.setHeader('Content-Type', 'application/json'); req.setHeader('Accept', 'application/json'); Map < String, Object > subscribe = new Map < String, Object >(); subscribe.put('accountKey', '8a808255575bdae4015817d070cc3ec0'); subscribe.put('termType', 'EVERGREEN'); subscribe.put('contractEffectiveDate', '2016-01-01'); subscribe.put('termStartDate', '2016-01-01'); subscribe.put('invoiceCollect', false); Map < String, Object > subscribePlan = new Map < String, Object > { 'productRatePlanId' => '8a808255575bdae4015796d893ac71f1' }; List< Map < String, Object >> subscribePlans = new List< Map < String, Object > > { subscribePlan }; subscribe.put('subscribeToRatePlans', subscribePlans); String payload = JSON.serialize(subscribe); req.setBody(payload); Zuora.ZApi zApiInstance = new Zuora.ZApi(); HttpResponse resp = zApiInstance.sendRequest(req); if(resp.getStatusCode() == 200) { Map < String, Object > subscribeData = (Map < String, Object > ) JSON.deserializeUntyped( resp.getBody() ); System.debug(subscribeData); }