Hello,
I am using latest Android SDK v6.3.0 for visa checkout.
When I tap on 'Checkout' Button on Samsung 4.4.2 device, it just hangs on loading screen. ( Attached screen shot )
There is no specific error log, I can see in logcat.
Note: It works fine on all other versions, tested on 5.0 and up, received VisaPaymentSummary successfully.
Can you guys please check and advise.
Thanks
Hi @Uday,
I am working on your request, I will get back to you soon.
Thank you,
Vaibhav
Hello Vaibhav/VC
Did you guys get a chance to look into this? Thanks
Hi @Uday,
Apology for the delay. I have opened an incident with our engineering team and they have been able to reproduce the bug and they are working on to fix the bug. We will update you soon on this.
Thank you,
Vaibhav
Thanks for the update Vaibhav.
Please keep us posted.
However, we also feel there is another issue, when we tried to tap on visa-checkout button. It doesn't respond on first-tap.
( As we are not implementing any click on app side. )
My implementation follows below:
<com.visa.checkout.CheckoutButton
android:id="@+id/checkout_payment_visa_checkout"
android:layout_width="213dp"
android:layout_height="55dp"
android:layout_below="xxxx"
android:layout_centerHorizontal="xxx"
android:layout_marginTop="xxxx"
android:layout_marginBottom="xxxx" />
Thanks
Uday
Hi,
I'm just following up to see if there is an update on the issues that were raised by Uday?
Thanks,
Aliyah
Hi Uday,
Apologies for the delay. Could you try from different networks like 4G/Home, additionally, could you provide the following items?
· Android manifest file
· Code base that’s being used for visa checkout
· Apikey that’s being used during this testing
· Development version of the apk
Thank you,
Vaibhav
Hi Vaibhav,
Thanks for the reply,
FYI, Loader freeze issue happens on sample source as well.
See below for requested items:
API key:
R7EBXRT5YLO1L05REWL821VC2JWZEQN7rNqjEd_Q**bleep**2if1s
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.visa.checkout.integration.sdklitesampleapp"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="19"
android:targetSdkVersion="26" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<application
android:allowBackup="false"
android:debuggable="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:testOnly="true"
android:theme="@style/AppTheme" >
>
<activity android:name="com.visa.checkout.integration.nativesampleapp.PaymentStartActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data
android:name="android.support.VERSION"
android:value="26.1.0" />
<activity
android:name="com.visa.checkout.CheckoutWebViewActivity"
android:configChanges="orientation|screenSize"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<meta-data
android:name="android.arch.lifecycle.VERSION"
android:value="27.0.0-SNAPSHOT" />
</application>
</manifest>
public class PaymentStartActivity extends AppCompatActivity {
private static final String TAG = PaymentStartActivity.class.getSimpleName();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_payment_start);
final CheckoutButton checkoutButton = findViewById(R.id.visaCheckoutButton);
checkoutButton.init(this, ConfigureVisaPaymentInfo.getProfile(),
ConfigureVisaPaymentInfo.getPurchaseInfo(),
new VisaCheckoutSdk.VisaCheckoutResultListener() {
@Override
public void onResult(VisaPaymentSummary visaPaymentSummary) {
if (VisaPaymentSummary.PAYMENT_SUCCESS.equalsIgnoreCase(
visaPaymentSummary.getStatusName())) {
Log.d(TAG, "Success");
} else if (VisaPaymentSummary.PAYMENT_CANCEL.equalsIgnoreCase(
visaPaymentSummary.getStatusName())) {
Log.d(TAG, "Canceled");
} else if (VisaPaymentSummary.PAYMENT_ERROR.equalsIgnoreCase(
visaPaymentSummary.getStatusName())) {
Log.d(TAG, "Error");
} else if (VisaPaymentSummary.PAYMENT_FAILURE.equalsIgnoreCase(
visaPaymentSummary.getStatusName())) {
Log.d(TAG, "Generic Unknown failure");
}
}
});
}
public class ConfigureVisaPaymentInfo {
public static Profile getProfile() {
return new Profile.ProfileBuilder("xxxxxxxxxxxxx",
Environment.SANDBOX)
.setDisplayName("Sample App")
.setDataLevel(Profile.DataLevel.FULL)
.setAcceptCanadianVisaDebit(true)
.setEnableTokenization(true)
.setCardBrands(new String[] {
Profile.CardBrand.AMEX, Profile.CardBrand.VISA, Profile.CardBrand.MASTERCARD,
Profile.CardBrand.ELO, Profile.CardBrand.ELECTRON
})
.setShippingCountries(new String[] {
Profile.Country.US, Profile.Country.CA, Profile.Country.BR, Profile.Country.GB,
Profile.Country.IN, Profile.Country.IE, Profile.Country.AU, Profile.Country.PL,
Profile.Country.MX
})
.setBillingCountries(new String[] {
Profile.Country.US, Profile.Country.CA, Profile.Country.BR, Profile.Country.GB,
Profile.Country.IN, Profile.Country.IE, Profile.Country.AU, Profile.Country.PL,
Profile.Country.MX
})
.setCountryCode(Profile.Country.CA)
.put("any key", "any data")
.build();
}
public static PurchaseInfo getPurchaseInfo() {
HashMap<String, String> data = new HashMap<>();
data.put("key", "value");
data.put("key1", "value1");
return new PurchaseInfo.PurchaseInfoBuilder(new BigDecimal("10.23"),
PurchaseInfo.Currency.CAD).setShippingHandling(new BigDecimal("0"))
.setTax(new BigDecimal("0"))
.setDiscount(new BigDecimal("0"))
.setMisc(new BigDecimal("0"))
.setGiftWrap(new BigDecimal("0"))
.setDescription("Gift Card Order")
.setOrderId("234-SD355-343432")
.setReviewMessage("Gift Card Order")
.setMerchantRequestId("345345345dsfs434343423234234")
.setSourceId("test-source-id")
.setPromoCode("test-promo-code")
.setShippingAddressRequired(true)
.setUserReviewAction(PurchaseInfo.UserReviewAction.PAY)
.setThreeDSSetup(true, false)
.setCustomData(data)
.setPrefillRequest(new VisaConfigRequest() {
@Override
public void handleConfigRequest(Object o, VisaConfigResponse visaConfigResponse) {
try {
JSONObject jsonObject = new JSONObject();
jsonObject.put("userFirstName", "First name");
jsonObject.put("userLastName", "Last name");
jsonObject.put("userEmail", "email");
jsonObject.put("userPhone", "phone");
visaConfigResponse.sendResponse(jsonObject);
} catch (JSONException e) {
visaConfigResponse.sendResponse(null);
}
}
})
.put("any key", "any data")
.build();
}
}
Hi @Uday,
Thank you for your patience. Currently, we are on SDK version 6.6.2 for Android and 6.6.1 for iOS. If the merchant updates to the newest SDK version, are they still encountering the same issue? If so, can the following information be provided?
Thank you,
Vaibhav
I am facing same issue in iOS
SDK Version : VisaCheckout-iOS-SDK-6.6.2
PFA for screen-shot
Also where I can find my api key in console ?