Карта сохранения Android stripe без использования CardInputWidget

#android #stripe-payments #payment-gateway

#Android #stripe-платежи #платежный шлюз

Вопрос:

Мой проект требует сохранения пользовательских карт, и я использовал Stripe для этого, согласно официальной документации stripe, я должен использовать их предварительно созданный CardInputWidget.

Теперь у меня есть некоторые требования к дизайну, которые не соответствуют этому виджету даже после изменения его темы или стиля.

Итак, я ищу любой другой способ сохранить карточку stripe с помощью простого edittext или создать пользовательский объект карты Stripe?

Вот код

   implementation 'com.stripe:stripe-android:14.5.0'
  

Фрагмент кода

     stripe = new Stripe(getActivity(), myApp.getStripePublishKey());
    PaymentMethodCreateParams params = card_multiline_widget.getPaymentMethodCreateParams();
        if (params == null) {
            ToastUtils.makeToast(getActivity(), "Invalid Details");
            return;
        }
        
        stripe.createPaymentMethod(params, new ApiResultCallback<PaymentMethod>() {
            @Override
            public void onSuccess(@NonNull PaymentMethod result) {
                if (getActivity() != null) {
                    getActivity().runOnUiThread(() -> progressDialog.dismiss());
                }
                paymentMethodId = result.id;
                LogUtils.e(paymentMethodId);
                saveCard();
                // Send paymentMethodId to your server for the next steps
            }

            @Override
            public void onError(@NonNull Exception e) {
                // Display the error to the user
                e.printStackTrace();
                LogUtils.e(e.getMessage());
                if (getActivity() != null) {
                    getActivity().runOnUiThread(() -> progressDialog.dismiss());
                }
            }
        });
  

Комментарии:

1. Если вы используете свои собственные входные данные для сбора некоторых входных данных карты, вам просто нужно создать PaymentMethod CreateParams вручную, используя различные поля PaymentMethod CreateParams.Card.Builder : stripe.dev/stripe-android/stripe/com.stripe.android.model/… , остальной код тот же(использование объекта params для создания метода оплаты)

2. Это работает, я так долго искал его и не смог увидеть этот метод построения в документе. @karllekko Спасибо, чувак.

Ответ №1:

Короткое

Я думаю, что не рекомендуется использовать свой собственный ввод. Предпочитаю Stripe one.

Пояснения

Google может отклонить приложение из-за сбоя безопасности.

Если вы используете текстовое поле для ввода карты, вы можете увидеть номер карты перед отправкой в stripe. Таким образом, вы можете сохранить полную информацию о карте в файле журнала или где-либо еще, прежде чем получать токен Stripe.

Вы можете сделать это без дурных намерений, но будьте осторожны, если кто-то его нашел…