Everything i will describe below works well in the dev environment.
I have an error on the prod environment only that is preventing my app from initializing our custom tender on the flex device. I receive the following message:
Status code: 500 Access denied to package com.xxxxx.xxxxx
I validated over and over and yes my package name of the app market and the one in my application code are the same.
Yes i do request for payment permissions as the following in the manifest:
<uses-permission android:name="android.permission.MERCHANT_R" /> <uses-permission android:name="android.permission.MERCHANT_W" />
Yes the RAID number in the app is the same as the production RAID number even if it is only used to process actual payment and i dont get to that step in prod yet.
Our app has been set as private, so it is not available on the market.
There is one way i recreated this issue on my dev environment. It was by creating a new test location and trying to side load the app on the device. Then i was receiving the same error as above.
Afterward, i uploaded my apk on the sandbox market, pushed it on my device via the market and had no issue initializing my custom tender at all.
Could it be an issue related with being a private app on prod?
As reference here is the code i use to initialize my custom tender:
tenderConnector = new TenderConnector(this, CloverAccount.getAccount(this), null); tenderConnector.connect(); tenderConnector.checkAndCreateTender(getString(R.string.new_tender_name), getPackageName(), true, false, new TenderConnector.TenderCallback<Tender>() { @Override public void onServiceSuccess(Tender result, ResultStatus status) { super.onServiceSuccess(result, status); String text = "Custom Tender:\n"; text += " " + result.getId() + " , " + result.getLabel() + " , " + result.getLabelKey() + " , " + result.getEnabled() + " , " + result.getOpensCashDrawer() + "\n"; } @Override public void onServiceFailure(ResultStatus status) { super.onServiceFailure(status); } @Override public void onServiceConnectionFailure() { super.onServiceConnectionFailure(); } });
Thank you