Adding phones, delivery and payment methods - rezolved/rezolve_sdk_sampleapp_android GitHub Wiki

Adding payment cards and delivery addresses is part of the payment flow. It requires payment module dependency:

dependencies {
    def rezolveSdkVersion = "3.2.0"
    implementation "com.rezolve.sdk:payment-android:$rezolveSdkVersion"
    // ...
}

As mentioned in the previous section after session was established you can start to create, update get and delete various items. There's a direct dependency between some of them. To create PaymentCard one of the required fields is addressId. To get addressId you first need to create an Address, but to do that you need phoneId, which is returned after phone object is created.

Phone myPhone = new Phone();
myPhone.setName("User's phone");
myPhone.setPhone("+447400123456");

RezolveSDK.peekInstance().getRezolveSession().getPhonebookManager().create(myPhone, new PhonebookCallback() {
            @Override
            public void onPhonebookCreateSuccess(Phone phone) {
                String phoneId = phone.getId();
            }

            @Override
            public void onError(@NonNull RezolveError error) {
                
            }
});
Address myAddress = new Address.Builder()
            .line1("10 Downing Street")
            .line2("optional line")
            .zip("SW1A 2AA")
            .city("London")
            .country("United Kingdom")
            .phoneId(phoneId)
            .fullName("Boris Johnson")
            .shortName("My Work Address")
            .build();
                
RezolveSDK.peekInstance().getRezolveSession().getAddressbookManager().create(myAddress, new AddressbookCallback() {
            @Override
            public void onAddressbookCreateSuccess(Address address) {
                String addressId = address.getId();
            }

            @Override
            public void onError(@NonNull RezolveError error) {
                        
            }
});
String pan = "4000221111111111";

PaymentCard myCard = new PaymentCard.Builder()
            .nameOnCard("John Doe")
            .addressId(addressId)
            .pan(pan)
            .brand("VISA")
            .shortName(pan.substring(pan.length() - 4))
            .validFrom("0122") // MMYY
            .expiresOn("1225") // MMYY
            .type("credit")
            .build();
                        
RezolveSDK.peekInstance().getRezolveSession().getWalletManager().create(myCard, new WalletCallback() {
            @Override
            public void onWalletCreateSuccess(PaymentCard paymentCard) {
                                
            }

            @Override
            public void onError(@NonNull RezolveError error) {
                                
            }
});