Нет подходящего конструктора для Stripe - PullRequest
1 голос
/ 06 января 2020

Ошибка, которую я получил, это ошибка: не найден подходящий конструктор для Stripe (StripeFormActivity, String). Конструктор Stripe.Stripe () не применим (фактические и формальные списки аргументов различаются по длине). Конструктор Stripe.Stripe (String) не применим. (фактические и формальные списки аргументов различаются по длине)

Stripe stripe=new Stripe(StripeFormActivity.this,PUBLISHABLE_KEY);
                    stripe.createToken(
                    card,

                    new TokenCallback() {
                        public void onSuccess(Token token) {
                            //getTokenList().addToList(token);

                            ProgressDialog.cancel();
                            cusRotateLoading.stop();

                            Log.d("token", "token = " + token.getId());
                            Intent ri = new Intent();
                            ri.putExtra("stripe_id", token.getId());
                            setResult(2, ri);
                            finish();
                        }




                            public void onError(Exception error) {
                                ProgressDialog.cancel();
                                cusRotateLoading.stop();
                                Common.showMkError(StripeFormActivity.this, error.getLocalizedMessage());
                            }
                        });

Ответы [ 3 ]

0 голосов
/ 06 января 2020

Изменить с TokenCallback() на новый ApiResultCallback<Token>(). импортировать com.stripe.android.ApiResultCallback и получить последнюю версию в настоящее время 11.1.3

Так что после изменения она будет выглядеть как

Stripe stripe=new Stripe(StripeFormActivity.this,PUBLISHABLE_KEY);

                        stripe.createToken(
                                cardToSave,
                                new ApiResultCallback<Token>() {
                                    public void onSuccess(@NonNull Token token) {
                                        //getTokenList().addToList(token);

                                        ProgressDialog.cancel();
                                        cusRotateLoading.stop();

                                        Log.d("token", "token = " + token.getId());
                                        Intent ri = new Intent();
                                        ri.putExtra("stripe_id", token.getId());
                                        setResult(2, ri);
                                        finish();
                                    }
                                    public void onError(@NonNull Exception error) {
                                        ProgressDialog.cancel();
                                        cusRotateLoading.stop();
                                        Common.showMkError(StripeFormActivity.this, error.getLocalizedMessage());
                                    }
                                }
                        );
0 голосов
/ 07 января 2020

В последней версии 12.8.2 есть несколько устаревших API, см. Мое решение ниже.

Шаг 1: Использование последней зависимости в файле Gradle

def stripe_version = "12.8.2"
implementation "com.stripe:stripe-android:$stripe_version"

Шаг 2: Измените свой код в StripeFormActivity на

Stripe stripe = new Stripe(StripeFormActivity.this, PUBLISHABLE_KEY);
stripe.createCardToken(card, new ApiResultCallback<Token>() {
    @Override
    public void onSuccess(Token token) {
        //getTokenList().addToList(token);

        ProgressDialog.cancel();
        cusRotateLoading.stop();

        Log.d("token", "token = " + token.getId());
        Intent ri = new Intent();
        ri.putExtra("stripe_id", token.getId());
        setResult(2, ri);
        finish();
    }

    @Override
    public void onError(@NotNull Exception e) {
        ProgressDialog.cancel();
        cusRotateLoading.stop();
        Common.showMkError(StripeFormActivity.this, error.getLocalizedMessage());
    }
});
0 голосов
/ 06 января 2020

здесь kotlin версия

Stripe(this, stripePublicKey).createToken(card, object : ApiResultCallback<Token> {
                override fun onSuccess(token: Token) {

                    if (token.card != null) {

                    } else {
                        Utils.showToast(getString(R.string.something_went_wrong), this)
                    }
                }

                override fun onError(error: Exception) {
                    Utils.showToast(error.localizedMessage, this)
                }
            })

Здесь java версия

new Stripe(this, stripePublicKey).createToken(card, new ApiResultCallback<Token> {
                        override onSuccess(Token:token) {

                            if (token.card != null) {

                            } else {
                                Utils.showToast(getString(R.string.something_went_wrong), this)
                            }
                        }

                        override onError(Exception:error) {
                            Utils.showToast(error.localizedMessage, this)
                        }
                    })
...