You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android端Stripe IDEAL专属集成:实现Card Widget仅支持IDEAL支付卡

Stripe CardInputWidget仅支持IDEAL支付卡配置问题

我尝试使用如下代码实现Stripe支付功能,但当前Card Widget可接受所有类型支付卡,我需要配置该组件仅支持IDEAL类型支付卡:
CardWidget示意图

布局文件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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 16:54:05