Card.io 不扫描信用卡

Posted

技术标签:

【中文标题】Card.io 不扫描信用卡【英文标题】:Card.io not scanning credit card 【发布时间】:2015-11-09 19:52:48 【问题描述】:

我正在尝试在我的应用程序中实现Card.io,我按照Card.io website 上的说明进行操作,当我进入我的应用程序并启动它时,它锁定在我的卡上,但之后没有其他任何反应。下面是我的代码

AndroidManifest

<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.CAMERA"/>

<--!..........................-->

<activity android:name="io.card.payment.CardIOActivity" android:configChanges="keyboardHidden|orientation" android:hardwareAccelerated="true"/>
<activity android:name="io.card.payment.DataEntryActivity" android:screenOrientation="portrait"/>

活动结果

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) 
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == MY_SCAN_REQUEST_CODE) 
        String cardNumbs, cardExp, cardCVV;
        String resultStr;

        if (data != null && data.hasExtra(CardIOActivity.EXTRA_SCAN_RESULT)) 
            //TODO
            CreditCard scanResult = data.getParcelableExtra(CardIOActivity.EXTRA_SCAN_RESULT);

            cardNumbs = scanResult.getRedactedCardNumber();
            acctDebitCardNo.setText(cardNumbs);
            if (scanResult.isExpiryValid()) 
                cardExp = scanResult.expiryMonth + "/" + "20" + scanResult.expiryYear;
                acctDebitCardExp.setText(cardExp);
             else 
                acctDebitCardExp.setError("Card Has Expired");
            
            if (scanResult.cvv != null) 
                cardCVV = scanResult.cvv;
                acctDebitCardCvv.setText(cardCVV);
            
        
    

启动相机的权限

Intent scanIntent = new Intent(getActivity(), CardIOActivity.class);

        // customize these values to suit our/there needs...LOL :).
        scanIntent.putExtra(CardIOActivity.EXTRA_REQUIRE_EXPIRY, true);
        scanIntent.putExtra(CardIOActivity.EXTRA_REQUIRE_CVV, true);
        scanIntent.putExtra(CardIOActivity.EXTRA_REQUIRE_POSTAL_CODE, false); // default: false
        // hides the manual entry button
        // if set, developers should provide their own manual entry mechanism in the app
        scanIntent.putExtra(CardIOActivity.EXTRA_SUPPRESS_MANUAL_ENTRY, false); // default: false
        // matches the theme of your application
        scanIntent.putExtra(CardIOActivity.EXTRA_KEEP_APPLICATION_THEME, true);

        // MY_SCAN_REQUEST_CODE is arbitrary and is only used within this activity.
        startActivityForResult(scanIntent, MY_SCAN_REQUEST_CODE);

我不知道我做错了什么

【问题讨论】:

来自 card.io 的 Dave。请尝试各种卡。 card.io 仅限于识别带有大浮雕数字的传统格式信用卡。即使有这些,它也不是在所有情况下都能成功。 嗯,我已经在 5 种不同的卡上尝试过,但都没有成功(主要是万事达卡和维萨卡)。由于它不能正常工作,我们决定不使用它。 【参考方案1】:

在我自己的情况下,问题在于卡片没有压花(大多数尼日利亚卡片没有)。 Card.io 和 PayCards 不支持浮雕卡。如果这种情况适合您的情况,您可能需要使用Firebase MLKit 自己构建扫描仪。整个过程没有听起来那么复杂。你可以关注this guide来帮助你。

我希望这会有所帮助。编码愉快!

【讨论】:

【参考方案2】:

卡号是浮雕的吗?请参阅 card-io/card.io-ios-SDK#20 了解为什么不支持非浮雕卡片。

【讨论】:

我认为您的服务无法读取任何尼日利亚卡。因为,我也是一个使用你的图书馆的应用程序。它也不会准备好任何尼日利亚卡。【参考方案3】:
    首先你必须将card.io-5.0.1.aar的文件扩展名(它在aars文件夹中)改成一个zip文件。from this link 更改文件后,将其解压缩。 解压后,将 jni 文件夹内的所有文件复制并粘贴到项目的 libs 文件夹中。 瞧!它现在应该可以工作了! :)

【讨论】:

我正在使用基于Mavenrepository compile 'io.card:android-sdk:5.0.1' 还是它也适用于它? 我已经这样做了,但仍然得到相同的非自动扫描行为,只是锁定在卡上,之后什么也没有发生

以上是关于Card.io 不扫描信用卡的主要内容,如果未能解决你的问题,请参考以下文章

信用卡扫描仪 - 颤振

android 信用卡扫描库或任何 API(Card.io 除外)

是否可以使用 card.io 获取信用卡类型?

如何在 iOS 混合应用程序中集成 card.io sdk?

没有card.io的Android PayPal集成?

NativeScript 中的 Card.io - thinkdigital-nativescript-cardio