Android端Stripe IDEAL专属集成:实现Card Widget仅支持IDEAL支付卡
Stripe CardInputWidget仅支持IDEAL支付卡配置问题
我尝试使用如下代码实现Stripe支付功能,但当前Card Widget可接受所有类型支付卡,我需要配置该组件仅支持IDEAL类型支付卡:
布局文件Add Card.xml代码
<com.stripe.android.view.CardInputWidget android:id="@+id/cardInputWidget" android:layout_width="match_parent" android:layout_height="wrap_content" />
Java业务代码
CardInputWidget cardInputWidget = findViewById(R.id.cardInputWidget); PaymentMethodCreateParams.Card card = cardInputWidget.getPaymentMethodCard(); if (card != null) { PaymentMethod.BillingDetails billingDetails = new PaymentMethod.BillingDetails.Builder() .build(); // Create SetupIntent confirm parameters with the above PaymentMethodCreateParams paymentMethodParams = PaymentMethodCreateParams .create(card, billingDetails); if(paymentConfirmVM.setupIntentClientSecret.get()!=null) { ConfirmSetupIntentParams confirmParams = ConfirmSetupIntentParams .create(paymentMethodParams, paymentConfirmVM.setupIntentClientSecret.get()); stripe.confirmSetupIntent(this, confirmParams); }else{ getViewModel().setIsLoading(false); } }
解决方案
iDEAL属于荷兰专属银行转账支付方式,默认不归属普通信用卡范畴,可根据你的业务需求选择以下两种实现方案:
- 方案1:限制现有CardInputWidget仅支持iDEAL类卡,直接在初始化组件后添加允许卡品牌配置即可,代码如下:
// 初始化组件后添加该行配置 cardInputWidget.setAllowedCardBrands(Collections.singletonList(CardBrand.IDEAL));
该方案仅在你使用的Stripe SDK版本支持将iDEAL纳入卡品牌分类时生效
- 方案2:使用Stripe官方提供的iDEAL专属支付流程,不需要引入CardInputWidget组件,直接构造iDEAL支付参数即可,示例代码如下:
// 构造iDEAL专用支付参数 PaymentMethodCreateParams.Ideal idealParams = PaymentMethodCreateParams.Ideal.builder() .build(); PaymentMethod.BillingDetails billingDetails = new PaymentMethod.BillingDetails.Builder() .build(); PaymentMethodCreateParams paymentMethodParams = PaymentMethodCreateParams .create(idealParams, billingDetails); // 后续确认流程保持原有逻辑不变 if(paymentConfirmVM.setupIntentClientSecret.get()!=null) { ConfirmSetupIntentParams confirmParams = ConfirmSetupIntentParams .create(paymentMethodParams, paymentConfirmVM.setupIntentClientSecret.get()); stripe.confirmSetupIntent(this, confirmParams); }else{ getViewModel().setIsLoading(false); }
使用前请确认你的Stripe账户已在后台支付方式配置中开启iDEAL支付权限。
内容的提问来源于stack exchange,提问作者Mukesh
相关产品推荐
相关产品推荐

