【问题标题】:Stripe creates token on AndroidStripe 在 Android 上创建令牌
【发布时间】:2017-09-28 20:49:06
【问题描述】:

我们试图在我们的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。错误在哪里?谢谢

【问题讨论】:

  • 问题出在 stripe_public_key
  • 通过在卡片实例中调用 validateCard() 来确保卡片得到验证。但就像之前的评论所说,我很确定你没有使用 corect 键。对于测试,您需要可发布的密钥;对于生产,您需要使用实时密钥。

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


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2019-01-12
    • 2018-11-20
    • 2020-12-06
    • 1970-01-01
    • 2019-08-03
    • 1970-01-01
    • 2015-11-07
    • 2019-06-06
    • 2018-05-30
    相关资源
    最近更新 更多