Android中的Stripe Termial连接阅读器是否需要使用locationId?

问题描述 投票:0回答:2

我正在使用带有wisepad 3阅读器的Stripe终端。读者在发现阶段被发现,但尚未建立连接。我们暂时不使用位置。

文档中写道: https://docs.stripe.com/terminal/quickstart?reader=wp3

要连接到读取器,您的后端需要通过向 SDK 提供 ConnectionToken 中的密钥来授予 SDK 权限,以便通过您的 Stripe 帐户使用该读取器。您的后端应该只为其信任的客户端创建连接令牌。如果您使用的是 Stripe Connect,您还应该将连接令牌的范围限定到相关的连接帐户。如果使用位置,您应该在创建连接令牌时传递位置 ID 以控制对读取器的访问。

从文档看来,使用位置似乎是可选的。但在连接代码的配置中,需要提供位置ID。我想知道是否可以在不使用位置 ID 的情况下连接阅读器。

我当前的连接代码是:

private fun connectToReader(reader: Reader, result: MethodChannel.Result) {

    val bluetoothReaderListener = TerminalBluetoothReaderListener()

    val connectionConfig = ConnectionConfiguration.BluetoothConnectionConfiguration(
        locationId = "", 
        autoReconnectOnUnexpectedDisconnect = true,
        bluetoothReaderListener = bluetoothReaderListener
    )

    Terminal.getInstance().connectReader(reader, connectionConfig, object : ReaderCallback {
        override fun onSuccess(connectedReader: Reader) {
            Log.d("StripeTerminal", "Reader connected: ${connectedReader.serialNumber}")
            notifyFlutterReaderConnection(true)
            result.success("Reader connected successfully: ${connectedReader.serialNumber}")
        }

        override fun onFailure(e: TerminalException) {
            Log.e("StripeTerminal", "Error connecting to reader: ${e.message}")
            notifyFlutterReaderConnection(false)
            result.error("CONNECT_ERROR", "Error connecting to reader: ${e.message}", null)
        }
    })
}
android stripe-payments
2个回答

0
投票

是的,位置 ID 是必需的。首先,您必须在 Stripe 帐户终端仪表板中添加位置。 然后,如果您的后端未实现获取位置 ID 的端点,那么您的团队必须实现它。 https://docs.stripe.com/api/terminal/locations/retrieve 之后,您可以通过调用后端 api 从前端后端获取位置 ID。

根据您使用的阅读器类型,您可以按照以下步骤注册您的阅读器:

https://docs.stripe.com/terminal/fleet/register-readers?terminal-sdk-platform=android

© www.soinside.com 2019 - 2024. All rights reserved.