Visa Developer Community

Helper

Visa checkout Android v6.3.0 hangs on 4.4.2

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 

 

Tags (1)
7 REPLIES 7
Valued Supporter

Re: Visa checkout Android v6.3.0 hangs on 4.4.2

Hi @Uday

 

I am working on your request, I will get back to you soon. 

 

Thank you, 

Vaibhav 

Helper

Re: Visa checkout Android v6.3.0 hangs on 4.4.2

Hello Vaibhav/VC 

Did you guys get a chance to look into this? Thanks 

Valued Supporter

Re: Visa checkout Android v6.3.0 hangs on 4.4.2

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 

Helper

Re: Visa checkout Android v6.3.0 hangs on 4.4.2

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

 

Newbie

Re: Visa checkout Android v6.3.0 hangs on 4.4.2

Hi,

 

I'm just following up to see if there is an update on the issues that were raised by Uday?

 

Thanks,

Aliyah

Highlighted
Valued Supporter

Re: Visa checkout Android v6.3.0 hangs on 4.4.2

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 

Helper

Re: Visa checkout Android v6.3.0 hangs on 4.4.2

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();
}
}