Stripe在Android上创建令牌

时间:2017-05-01 12:26:53

标签: android callback token stripe-payments stripe-connect

我们正在尝试从我们的Android应用程序上的信用卡创建条带令牌,但是当我们调用stripe.createToken时它什么都不做,它不会在侦听器中输入onSuccess和onError方法。我们的代码如下:

private void getStripeToken(Card card) {
    Stripe stripe = null;
    try {
        stripe = new Stripe(getApplicationContext(), getString(R.string.stripe_public_key));
    } catch (AuthenticationException e) {
        e.printStackTrace();
        return;
    }
    stripe.createToken(card, new TokenCallback() {
        @Override
        public void onError(Exception error) {
            stripeError = error.getLocalizedMessage();
        }

        @Override
        public void onSuccess(Token token) {
            stripeToken = token;
        }
    });
}

当getStripeToken完成时,stripeError和stripeToken为null。哪里出错了?感谢

1 个答案:

答案 0 :(得分:1)

getStripeToken方法结束时,值将保持不变,因为createToken是一个异步操作 - 这就是你必须给它回调的原因。

因此,如果您使用createToken,则必须位于UI线程上(因为它使用AsyncTask进行该调用,并且您应该期望在网络调用时更新您的值完成。

如果您希望在方法调用结束时更新值,请使用createTokenSynchronous,但请确保仅在主线程中执行此操作。