Search code examples
javaandroidstripe-paymentsstrip

How to set Debit or Credit card Details for stripe without use of CardInputWidget In ANDROID (JAVA)


I want to use my card details which I get form my User for as parameter of ConfirmPaymentIntentParams. without using CardInputWidget

txt_pay.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Log.e("PAY 01 ", "paymentIntentClientSecret " + paymentIntentClientSecret);
            CardInputWidget cardInputWidget = findViewById(R.id.cardInputWidget);
            PaymentMethodCreateParams params = cardInputWidget.getPaymentMethodCreateParams();
            if (params != null) {
                ConfirmPaymentIntentParams confirmParams = ConfirmPaymentIntentParams.createWithPaymentMethodCreateParams(params, paymentIntentClientSecret);
                stripe.confirmPayment(this, confirmParams);
                
            } catch (JSONException e) {
                e.printStackTrace();
                Log.e("PAY 02 ", "exception " + e.getMessage());
            }
        }
    });

Solution

  • Use PaymentMethodCreateParams.Card.Builder to set the value of various Field of payment card (Card no. ,Expiry Date , Expiry year , Cvv etc ) the rest of the code is the same(using the params object to create a PaymentMethod)

    In My case :

    PaymentMethodCreateParams.Card.Builder paymentBuilder = new PaymentMethodCreateParams.Card.Builder();
                        paymentBuilder.setNumber("4242 4242 4242 4242");
                        paymentBuilder.setExpiryMonth(03));
                        paymentBuilder.setExpiryYear(23));
                        paymentBuilder.setCvc("123");
                        
    ConfirmPaymentIntentParams confirmParams = ConfirmPaymentIntentParams.createWithPaymentMethodCreateParams(PaymentMethodCreateParams.create(paymentBuilder.build()), paymentIntentClientSecret);