'io.card:android-sdk:5.5.1'
但在DataEntryActivity的editText中输入到期日和持卡人姓名,然后正确获取,但在扫描卡时无法获取到期日和持卡人姓名。
我正在使用这个代码
link is here
使用此依赖项编译“io.card:AndroidSDK:5.5.1”
我的代码在这里,
Intent scanIntent = new Intent(getActivity(), CardIOActivity.class);
scanIntent.putExtra(CardIOActivity.EXTRA_REQUIRE_EXPIRY, true); // default: false
scanIntent.putExtra(CardIOActivity.EXTRA_SCAN_EXPIRY, true);
scanIntent.putExtra(CardIOActivity.EXTRA_REQUIRE_CARDHOLDER_NAME, true); // default: false
scanIntent.putExtra(CardIOActivity.EXTRA_HIDE_CARDIO_LOGO, true); // default: false
scanIntent.putExtra(CardIOActivity.EXTRA_CAPTURED_CARD_IMAGE, true);
scanIntent.putExtra(CardIOActivity.EXTRA_USE_PAYPAL_ACTIONBAR_ICON, false);
scanIntent.putExtra(CardIOActivity.EXTRA_GUIDE_COLOR, getResources().getColor(R.color.primary));
// matches the theme of your application
scanIntent.putExtra(CardIOActivity.EXTRA_KEEP_APPLICATION_THEME, false); // default: false
// MY_SCAN_REQUEST_CODE is arbitrary and is only used within this activity.
scanIntent.putExtra(CardIOActivity.EXTRA_CAPTURED_CARD_IMAGE, false);
scanIntent.putExtra(CardIOActivity.EXTRA_RETURN_CARD_IMAGE, false);
scanIntent.putExtra(CardIOActivity.EXTRA_SUPPRESS_MANUAL_ENTRY, true);
startActivityForResult(scanIntent, MY_SCAN_REQUEST_CODE);
以及活动结果。此代码在我的活动中正常工作
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
String resultStr;
if (data != null && data.hasExtra(CardIOActivity.EXTRA_SCAN_RESULT)) {
CreditCard scanResult = data.getParcelableExtra(CardIOActivity.EXTRA_SCAN_RESULT);
// Never log a raw card number. Avoid displaying it, but if necessary use getFormattedCardNumber()
String resultStr1 = scanResult.getFormattedCardNumber();
resultStr = "Card Number: " + scanResult.getRedactedCardNumber() + "\n";
if (scanResult.getRedactedCardNumber() != null) {
cardNoFlag = true;
edtMaskedCardNo.setText(scanResult.getFormattedCardNumber());
}
scanResult.getCardType();
// Do something with the raw number, e.g.:
// myService.setCardNumber( scanResult.cardNumber );
String expYr = "", month = "";
if (scanResult.isExpiryValid()) {
expYr = String.valueOf(scanResult.expiryYear % 100);
if (isSingle(scanResult.expiryMonth)) {
// month = String.format("%02d", scanResult.expiryMonth);
month = String.valueOf("0" + scanResult.expiryMonth);
} else {
month = String.valueOf(scanResult.expiryMonth);
}
resultStr += "Expiration Date: " + scanResult.expiryMonth + "/" + scanResult.expiryYear + "\n";
ExpDateFlag = true;
b.putBoolean("ExpDateFlag", ExpDateFlag);
strExpDate = month + "/" + expYr;
b.putString("ExpDate", month + "/" + expYr);
b.putString("FormattedExpDate", month.concat(expYr));
strFormattedExpiry = month.concat(expYr);
/*Amit Verma set Expire*/
edtExpDate.setText(month + "/" + expYr);
}
if (scanResult.cardholderName != null) {
resultStr += "Cardholder Name : " + scanResult.cardholderName + "\n";
}
if (scanResult.cvv != null) {
// // Never log or display a CVV
strScanCVV = scanResult.cvv;
}
} else {
resultStr = "Scan was canceled.";
}
}