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

Android端Stripe Tap to Pay读卡器屏幕如何显示金额?

解决Stripe Tap to Pay读卡器显示金额的问题
  • 创建PaymentIntent时必须指定金额和币种
    不管是后端生成还是测试环境用Stripe Dashboard创建,PaymentIntent必须包含amount(以最小货币单位计,比如100代表1美元)和currency字段,同时要设置payment_method_types为["card_present"],否则读卡器无法获取金额数据。
    后端示例(Java):

    PaymentIntentCreateParams params =
      PaymentIntentCreateParams.builder()
        .setAmount(100L)
        .setCurrency("usd")
        .setPaymentMethodTypes(Arrays.asList("card_present"))
        .build();
    PaymentIntent paymentIntent = stripe.paymentIntents().create(params);
    
  • 启动支付会话时传入正确的PaymentIntent Client Secret
    Android端启动Tap to Pay流程时,要把生成的PaymentIntent的client secret传入createPaymentIntentParams,让读卡器关联这笔支付的金额信息:

    val paymentIntentParams = Terminal.createPaymentIntentParams(paymentIntentClientSecret)
    Terminal.getInstance().collectPaymentMethod(paymentIntentParams, object : Callback<PaymentMethod> {
      override fun onSuccess(paymentMethod: PaymentMethod) {
        // 执行支付确认逻辑
      }
    
      override fun onFailure(e: Exception) {
        // 处理错误
      }
    })
    
  • 检查读卡器固件版本
    旧版本的读卡器固件可能不支持金额显示功能。通过SDK获取当前读卡器信息,查看deviceSoftwareVersion,如果不是最新,调用更新接口:

    val reader = Terminal.getInstance().getReader()
    if (reader?.needsUpdate == true) {
      Terminal.getInstance().updateReaderSoftware(object : Callback<Reader> {
        override fun onSuccess(reader: Reader) {
          // 更新完成
        }
    
        override fun onFailure(e: Exception) {
          // 更新失败处理
        }
      })
    }
    
  • 测试环境验证
    测试环境下使用Stripe提供的测试卡(比如4242 4242 4242 4242)进行支付,读卡器应该会同步显示PaymentIntent中设置的金额。如果还是不显示,确认是否在创建PaymentIntent时没有遗漏必要字段,或者SDK版本是否为最新(建议使用Stripe Terminal SDK最新稳定版)。

内容的提问来源于stack exchange,提问作者Rahul Mishra

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 07:51:08