package com.aptoide.amethyst.openiab.webservices; import com.aptoide.amethyst.preferences.SecurePreferences; import com.aptoide.amethyst.webservices.OauthErrorHandler; import com.aptoide.dataprovider.webservices.models.WebserviceOptions; import com.octo.android.robospice.request.retrofit.RetrofitSpiceRequest; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import com.aptoide.amethyst.openiab.webservices.json.IabSimpleResponseJson; import retrofit.RetrofitError; import retrofit.http.FieldMap; import retrofit.http.FormUrlEncoded; import retrofit.http.POST; public class PaypalPurchaseAuthorizationRequest extends RetrofitSpiceRequest<IabSimpleResponseJson, PaypalPurchaseAuthorizationRequest.Webservice> { private String token; private String authToken; public interface Webservice{ @POST("/webservices.aptoide.com/webservices/3/productPurchaseAuthorization") @FormUrlEncoded IabSimpleResponseJson productPurchaseAuthorization(@FieldMap HashMap<String, String> args); } public PaypalPurchaseAuthorizationRequest() { super(IabSimpleResponseJson.class, Webservice.class); } @Override public IabSimpleResponseJson loadDataFromNetwork() throws Exception { List<WebserviceOptions> options = new ArrayList<WebserviceOptions>(); options.add(new WebserviceOptions("reqType", "rest")); if(authToken!=null){ options.add(new WebserviceOptions("authToken", authToken)); } StringBuilder sb = new StringBuilder(); sb.append("("); for(WebserviceOptions option: options){ sb.append(option); sb.append(";"); } sb.append(")"); //String baseUrl = "http://dev.aptoide.com/webservices/productPurchaseAuthorization/"+token+"/1/options="+sb.toString(); String baseUrl = WebserviceOptions.WebServicesLink + "3/productPurchaseAuthorization"; // GenericUrl url = new GenericUrl(baseUrl); HashMap<String, String> parameters = new HashMap<String, String>(); parameters.put("mode","json"); parameters.put("reqType","rest"); parameters.put("payType","1"); parameters.put("authToken",authToken); token = SecurePreferences.getInstance().getString("access_token", null); parameters.put("access_token",token); // HttpContent content = new UrlEncodedContent(parameters); // // Log.e("Aptoide-InappBillingRequest", baseUrl); // //setHttpRequestFactory(AndroidHttp.newCompatibleTransport().createRequestFactory()); // HttpRequest request = getHttpRequestFactory().buildPostRequest(url, content); // request.setUnsuccessfulResponseHandler(new OAuthRefreshAccessTokenHandler(parameters, getHttpRequestFactory())); // // request.setParser(new JacksonFactory().createJsonObjectParser()); // // HttpResponse response; // try{ // response = request.execute(); // } catch (EOFException e){ // // HttpHeaders httpHeaders = new HttpHeaders(); // httpHeaders.put("Connection", "close"); // request.setHeaders(httpHeaders); // response = request.execute(); // } // // return response.parseAs(getResultType()); IabSimpleResponseJson response = null; try{ response = getService().productPurchaseAuthorization(parameters); }catch (RetrofitError error){ OauthErrorHandler.handle(error); } return response; } public String getToken() { return token; } public void setToken(String token) { this.token = token; } public void setAuthToken(String token) { this.authToken = token; } }