【问题标题】:Adding my app as a tap and pay option in Android在 Android 中将我的应用程序添加为点击付款选项
【发布时间】:2017-12-27 18:00:44
【问题描述】:

我正在尝试获取有关如何将我的应用添加为 Android 设备的触碰付款选项的一些信息。

可以将 PayPal 和 Android Pay 等应用设置为在检测到 NFC 接触时启动的默认应用。我希望我的支付应用程序能够在有人进行 NFC 触碰时启动。

目前,我的应用可以通过 Android Beam 功能利用 NFC,但我很想知道如何将我的应用作为点击支付的默认选项包含在内,以便 NFC 点击可以直接启动该应用。

【问题讨论】:

  • 我也有同样的要求,请问您有解决问题的办法吗?
  • @SagarMody 我也需要这个问题的答案——你有什么信息可以分享吗?
  • @Jake 您的应用是支付 (HCE) 应用吗?如果是这样,那么我认为当您使用metadataandroid.nfc.cardemulation.host_apdu_service 注册Service 时,它将成为设置中的一个选项。我从未见过用户在点击支付时选择支付应用程序的情况。通常默认设置是提前设置的,当 android 检测到点击支付时会立即使用它(无需用户交互)以加快体验。通常在设备上找到的第一个支付应用程序被设置为默认支付。用户可以在安装另一个后更改它
  • @ahasbini 是的,我们知道,所以我们需要的是用户如何将我们的应用程序更改为默认支付应用程序,如果您在与我们分享之前这样做过吗?谢谢
  • @abdullahicyc 这是一个提示用户将应用设置为默认支付应用的答案:stackoverflow.com/a/24167039/2949966。请注意,如果不先询问用户,应用程序不能将自己设置为默认值。

标签: android nfc payment-processing android-tap-and-pay


【解决方案1】:

我正在尝试像你一样做同样的事情,我发现这个问题可以让你将你的应用程序显示为付款方式。

Application not visible in Tap and Pay

在您的 android 清单中的应用程序标记中添加此行...

 <service android:exported="true" android:name="my.package.MyPaymentService" android:permission="android.permission.BIND_NFC_SERVICE">
        <intent-filter>
            <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
        <meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/apduservice" />
    </service>

然后在您的 xml 文件夹中使用此内容创建一个名为 apdusehvices.xml 的文件...

<host-apdu-service xmlns:android="http://schemas.android.com/apk/res/android"
    android:requireDeviceUnlock="true"
    android:apduServiceBanner="@drawable/ic_fingerprint_error">

    <aid-group
        android:category="payment"
        android:description="@string/app_name" >
        <aid-filter
            android:name="325041592E5359532E4444463031"
            android:description="@string/ppse" />
        <aid-filter
            android:name="A0000000041010"
            android:description="@string/mastercard" />
        <aid-filter
            android:name="A0000000031010"
            android:description="@string/visa" />
        <aid-filter
            android:name="A000000003101001"
            android:description="@string/visa" />
        <aid-filter
            android:name="A0000002771010"
            android:description="@string/interac" />
    </aid-group>

您需要在您的值 => 字符串中设置字符串变量,并在您的可绘制文件夹中设置背景图像。

现在我可以选择我的应用程序作为 Tap & Pay 应用程序,但是当我选择它时,应用程序崩溃了,我想这是因为我没有在那里创建 Service 类并且清单指向 my.package.MyPaymentService。

【讨论】:

    猜你喜欢
    • 2021-01-29
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 2019-03-10
    • 2023-03-20
    • 1970-01-01
    • 2018-02-03
    • 1970-01-01
    相关资源
    最近更新 更多