Я интегрирую card.io в свое приложение для чтения информации о дебетовой/кредитной карте. Я успешно интегрировал его, но он всегда получает номер карты, но не срок действия, CVV и отображение. Иногда он получает дату истечения срока действия, но никогда не получает имя держателя карты и CVV. И, кроме того, если я хочу изменить тему, я имею в виду, что текстовые поля и фоны кнопок возможны, поскольку классы библиотеки не редактируются. Ниже приведен код, который я использую для намерения, т.е.
private void readCardInfo() {
Intent scanIntent = new Intent(getActivity(), CardIOActivity.class);
scanIntent.putExtra(CardIOActivity.EXTRA_REQUIRE_EXPIRY, true);
scanIntent.putExtra(CardIOActivity.EXTRA_REQUIRE_CVV, true);
scanIntent.putExtra(CardIOActivity.EXTRA_REQUIRE_CARDHOLDER_NAME, true);
startActivityForResult(scanIntent, MY_SCAN_REQUEST_CODE);
}
а ниже код, который я использую для получения данных onActivityResult();
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == MY_SCAN_REQUEST_CODE ){
if (data != null && data.hasExtra(CardIOActivity.EXTRA_SCAN_RESULT)) {
CreditCard scanResult = data.getParcelableExtra(CardIOActivity.EXTRA_SCAN_RESULT);
cardNumber = scanResult.getFormattedCardNumber();
if (scanResult.isExpiryValid()) {
expiryDate = scanResult.expiryMonth + "/" + scanResult.expiryYear;
LogHelper.debugLog("expiry date is " + expiryDate);
setExpiryDate(expiryDate);
}
if (scanResult.cvv != null) {
codeCVV = scanResult.cvv;
tvCVV.setText(codeCVV);
}
if (scanResult.cardholderName != null) {
cardHolderName = scanResult.cardholderName;
etNameOnCard.setText(cardHolderName);
}
setCardNumber(cardNumber);
}
}
}
Я что-то делаю неправильно или пропустил какой-то шаг?