From 02e619c480d61826bd4f88411cb3cc244d2a59e9 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Thu, 4 Jun 2015 15:54:42 +0200 Subject: [PATCH] Forgot to replace a method in in app helper + fix wrong os constant --- res/raw/linphonerc_factory | 2 +- .../purchase/InAppPurchaseHelper.java | 71 ++++++------------- src/org/linphone/xmlrpc/XmlRpcHelper.java | 2 +- 3 files changed, 24 insertions(+), 51 deletions(-) diff --git a/res/raw/linphonerc_factory b/res/raw/linphonerc_factory index c7b88ec41..944a1cb50 100644 --- a/res/raw/linphonerc_factory +++ b/res/raw/linphonerc_factory @@ -33,5 +33,5 @@ log_collection_upload_server_url=https://www.linphone.org:444/lft.php user_certificates_path=/data/data/org.linphone/files [in-app-purchase] -server_url=https://www.linphone.org/inapp.php +server_url=https://www.linphone.org/xmlrpc.php purchasable_items_ids=test_account_subscription \ No newline at end of file diff --git a/src/org/linphone/purchase/InAppPurchaseHelper.java b/src/org/linphone/purchase/InAppPurchaseHelper.java index 6027281df..25fbf2f63 100644 --- a/src/org/linphone/purchase/InAppPurchaseHelper.java +++ b/src/org/linphone/purchase/InAppPurchaseHelper.java @@ -18,8 +18,6 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -import java.net.MalformedURLException; -import java.net.URL; import java.util.ArrayList; import java.util.regex.Pattern; @@ -47,9 +45,6 @@ import android.util.Patterns; import com.android.vending.billing.IInAppBillingService; -import de.timroes.axmlrpc.XMLRPCClient; -import de.timroes.axmlrpc.XMLRPCException; - /** * @author Sylvain Berfini */ @@ -94,18 +89,9 @@ public class InAppPurchaseHelper { public static final String PURCHASE_DETAILS_PAYLOAD = "developerPayload"; public static final String PURCHASE_DETAILS_PURCHASE_TOKEN = "purchaseToken"; - public static final String SERVER_ERROR_INVALID_ACCOUNT = "ERROR_INVALID_ACCOUNT"; - public static final String SERVER_ERROR_PURCHASE_CANCELLED = "ERROR_PURCHASE_CANCELLED"; - public static final String SERVER_ERROR_RECEIPT_PARSING_FAILED = "ERROR_RECEIPT_PARSING_FAILED"; - public static final String SERVER_ERROR_UID_ALREADY_IN_USE = "ERROR_UID_ALREADY_IN_USE"; - public static final String SERVER_ERROR_SIGNATURE_VERIFICATION_FAILED = "ERROR_SIGNATURE_VERIFICATION_FAILED"; - public static final String SERVER_ERROR_ACCOUNT_ALREADY_EXISTS = "ERROR_ACCOUNT_ALREADY_EXISTS"; - public static final String SERVER_ERROR_UNKNOWN_ERROR = "ERROR_UNKNOWN_ERROR"; - public static final String CLIENT_ERROR_SUBSCRIPTION_PURCHASE_NOT_AVAILABLE = "SUBSCRIPTION_PURCHASE_NOT_AVAILABLE"; public static final String CLIENT_ERROR_BIND_TO_BILLING_SERVICE_FAILED = "BIND_TO_BILLING_SERVICE_FAILED"; public static final String CLIENT_ERROR_BILLING_SERVICE_UNAVAILABLE = "BILLING_SERVICE_UNAVAILABLE"; - public static final String CLIENT_ERROR_SERVER_NOT_REACHABLE = "SERVER_NOT_REACHABLE"; private Context mContext; private InAppPurchaseListener mListener; @@ -374,43 +360,30 @@ public class InAppPurchaseHelper { } private Purchasable verifySignatureAndGetExpire(String purchasedData, String signature) { - XMLRPCClient client = null; + XmlRpcHelper helper = new XmlRpcHelper(); + Object result = helper.getAccountExpire(mGmailAccount, purchasedData, signature); + long longExpire = -1; + String expire = (String)result; + try { - client = new XMLRPCClient(new URL(LinphonePreferences.instance().getInAppPurchaseValidatingServerUrl())); - } catch (MalformedURLException e) { + longExpire = Long.parseLong(expire); + } catch (NumberFormatException nfe) { + Log.e("[In-app purchase] Server failure: " + result); + mListener.onError(expire); + return null; + } + + try { + JSONObject json = new JSONObject(purchasedData); + String productId = json.getString(PURCHASE_DETAILS_PRODUCT_ID); + Purchasable item = new Purchasable(productId); + item.setExpire(longExpire); + item.setPayloadAndSignature(purchasedData, signature); + //TODO parse JSON result to get the purchasable in it + return item; + } catch (JSONException e) { Log.e(e); } - - if (client != null) { - try { - Object result = client.call("get_expiration_date", mGmailAccount, purchasedData, signature, "google"); - Log.e(purchasedData); - Log.e(signature); - long longExpire = -1; - String expire = (String)result; - - try { - longExpire = Long.parseLong(expire); - } catch (NumberFormatException nfe) { - Log.e("[In-app purchase] Server failure: " + result); - mListener.onError(SERVER_ERROR_UNKNOWN_ERROR); - return null; - } - - JSONObject json = new JSONObject(purchasedData); - String productId = json.getString(PURCHASE_DETAILS_PRODUCT_ID); - Purchasable item = new Purchasable(productId); - item.setExpire(longExpire); - item.setPayloadAndSignature(purchasedData, signature); - //TODO parse JSON result to get the purchasable in it - return item; - } catch (XMLRPCException e) { - Log.e(e); - } catch (JSONException e) { - Log.e(e); - } - } - return null; } @@ -428,7 +401,7 @@ public class InAppPurchaseHelper { } catch (NumberFormatException nfe) { Log.e("[In-app purchase] Server failure: " + result); listener.onParsedAndVerifiedSignatureQueryFinished(null); - mListener.onError(SERVER_ERROR_UNKNOWN_ERROR); + mListener.onError(result); return; } diff --git a/src/org/linphone/xmlrpc/XmlRpcHelper.java b/src/org/linphone/xmlrpc/XmlRpcHelper.java index 12c30ca77..9e4879b13 100644 --- a/src/org/linphone/xmlrpc/XmlRpcHelper.java +++ b/src/org/linphone/xmlrpc/XmlRpcHelper.java @@ -12,7 +12,7 @@ import de.timroes.axmlrpc.XMLRPCException; import de.timroes.axmlrpc.XMLRPCServerException; public class XmlRpcHelper { - public static final String OS = "GOOGLE"; + public static final String OS = "google"; public static final String SERVER_ERROR_INVALID_ACCOUNT = "ERROR_INVALID_ACCOUNT"; public static final String SERVER_ERROR_PURCHASE_CANCELLED = "ERROR_PURCHASE_CANCELLED"; public static final String SERVER_ERROR_RECEIPT_PARSING_FAILED = "ERROR_RECEIPT_PARSING_FAILED";