Welcome to our new developer portal! Use the "Ask" button to chat with our AI Agent.
For the complete documentation index, see llms.txt. This page is also available as Markdown.

Android

ステップ 1: ウォレットに追加ボタンの表示

発行元アプリケーションは Push Provisioning SDK を使用して、対象の xPay ウォレットが端末でサポートされているか、およびカードに対してトークンが既に存在するかを確認します。結果に基づいて、次を表示または非表示にします。 ウォレットに追加 ボタン。

発行元アプリケーションで を使用する際は、これらのウォレットブランドガイドラインに従ってください: ウォレットに追加 あなたの発行元アプリケーションで:

  • Huawei Pay サポートは国内スキームのみ利用可能です。

    exclamation-circle

    警告

    • Huawei Pay は国際的な決済ネットワーク(例: Mastercard や Visa)によってサポートされていません。特定の場合にのみ 国内 スキームがサポートされる可能性があります。利用条件については Thales に確認してください。

    • 2024年6月10日以降、 Google Wallet は Android 9 以上を必要とします。

PAN の下4桁を使用して、発行元アプリケーションは端末上のウォレットに既にプロビジョニングされているカードのトークンを取得できます(Android の Samsung Pay と Google Pay)。

各トークンには次が含まれます:

  • トークン ID。

  • デジタルカード(DPAN)の下4桁。

  • トークンの状態(デジタル化ステータス)。

OEMPayType type = OEMPayType.GOOGLE_PAY; // または OEMPayType.SAMSUNG_PAY
GetTokenInput input = new GetTokenInput("1234"); // 物理カード(FPAN)の下4桁
PushProvisioning pushProvisioning = TPCManager.getInstance().getPushProvisioning(type);
pushProvisioning.getToken(input, new TPCSDKListener<Token>() {
    @Override
    public void onStart() {
    }
    @Override
    public void onSuccess(TPCResult<Token> result) {
        // トークンは result.getResult() を使用して取得できます。
        // OEM ウォレットに対応するトークンがない場合、result.getResult() は null を返します。
        // トークン状態は以下のように使用されます:
        if(result.getResult()==null || TextUtils.isEmpty(result.getResult().getState())){
            // API はトークンを返しませんでした。
            // 「GPay/SPay に追加」ボタンを表示します。
        }else{
            Token token = result.getResult();
            if(type==OEMPayType.GOOGLE_PAY){
                // Google Pay の場合。
                try {
                    int tokenState = Integer.parseInt(token.getState());
                    switch (tokenState){
                        case CardDigitizationStatus.GOOGLE_PAY_TOKEN_STATE_NEEDS_IDENTITY_VERIFICATION:
                            // Activate アクションについては Token ライフサイクル管理を参照してください。
                            // カードは ID&V の保留中です。 
                            break;
                        case CardDigitizationStatus.GOOGLE_PAY_TOKEN_STATE_PENDING:
                        case CardDigitizationStatus.GOOGLE_PAY_TOKEN_STATE_SUSPENDED:
                        case CardDigitizationStatus.GOOGLE_PAY_TOKEN_STATE_ACTIVE:
                            // カードは既に追加されています。
                            break;
                        case CardDigitizationStatus.GOOGLE_PAY_TOKEN_STATE_UNTOKENIZED:
                            // 「GPay に追加」ボタンを表示します。
                            break;
                    }
                } catch (NumberFormatException e) {
                    // 例外を処理します。
                }
            }else if(type==OEMPayType.SAMSUNG_PAY){
                // Samsung Pay の場合。
                String tokenState = token.getState();
                switch (tokenState){
                    case CardDigitizationStatus.SAMSUNG_PAY_PENDING_PROVISION:
                        // Activate アクションについては Token ライフサイクル管理を参照してください。
                        // カードは ID&V の保留中です。
                        break;
                    case CardDigitizationStatus.SAMSUNG_PAY_ACTIVE:
                    case CardDigitizationStatus.SAMSUNG_PAY_EXPIRED:
                    case CardDigitizationStatus.SAMSUNG_PAY_PENDING_ENROLLED:
                    case CardDigitizationStatus.SAMSUNG_PAY_SUSPENDED:
                    case CardDigitizationStatus.SAMSUNG_PAY_PENDING_ACTIVATION:
                        // カードは既に追加されています。
                        break;
                    case CardDigitizationStatus.SAMSUNG_PAY_DISPOSED:
                        // 「SPay に追加」ボタンを表示します。
                        break;
                }
            }
        }
    }
    @Override
    public void onError(TPCSDKException exception) {
        // Samsung Pay 固有の処理
        Throwable exceptionCause = exception.getCause();
        if (exceptionCause != null && exceptionCause instanceof TPCSpayException) {
            // Samsung Pay のエラーの詳細を取得します。
            TPCSpayException spayException = (TPCSpayException) exceptionCause;
        }
    }
});

Google Pay の場合、トークンのステータスは次のとおりです:

Google Pay のステータス
説明

GOOGLE_PAY_TOKEN_STATE_NEEDS_IDENTITY_VERIFICATION

カードはデジタル化され、ID&V を保留中です。

GOOGLE_PAY_TOKEN_STATE_PENDING

カードはデジタル化されています。

GOOGLE_PAY_TOKEN_STATE_SUSPENDED

カードはデジタル化されています。

GOOGLE_PAY_TOKEN_STATE_ACTIVE

カードはデジタル化されています。

GOOGLE_PAY_TOKEN_STATE_UNTOKENIZED

カードはデジタル化されていません。

CARD_IS_NOT_DIGITIZED

カードはデジタル化されていません。

Samsung Pay の場合、トークンのステータスは次のとおりです:

Samsung Pay のステータス
説明

SAMSUNG_PAY_PENDING_PROVISION

カードはデジタル化され、ID&V を保留中です。

SAMSUNG_PAY_ACTIVE

カードはデジタル化されています。

SAMSUNG_PAY_EXPIRED

カードはデジタル化されています。

SAMSUNG_PAY_PENDING_ENROLLED

カードはデジタル化されています。

SAMSUNG_PAY_PENDING_ACTIVATION

カードはデジタル化されています。

SAMSUNG_PAY_SUSPENDED

カードはデジタル化されています。

SAMSUNG_PAY_DISPOSED

カードはデジタル化されていません。

exclamation-circle

注意

  • Google Pay の場合、デジタル化後もカードがまだ NOT_DIGITIZED として表示される場合は、発行元アプリケーションが TSP ポータルで正しく構成されているか確認してください。

  • Samsung Pay の場合、一部の発行元はポータルに複数の ISSUER NAME 値を登録する必要があります。これは発行元アプリケーションおよび/または TSP の要件によります。API の値がポータルに登録された値と一致していることを確認してください。API は完全一致のみを返します。 ISSUER NAME API が返す値は完全一致のみです。

  • この getToken API は Huawei Pay ではサポートされていません。代わりに isCardDigitized を使用してデジタル化ステータスを確認してください。

ステップ 2: リクエストのプロビジョニング

Android では、成功結果は OEMPayTypeによって異なります。Google Pay の場合、SDK はトークン ID を返します。Samsung Pay の場合は Card オブジェクトを返します。Huawei Pay の場合は boolean を返します。

info-circle

TPC SDK v1.9.0 以降、Google Pay のプッシュプロビジョニングは新しい API を使用できます: addCard(Activity activity, CardInfo cardInfo, TPCSDKListener<T> listener).

最終更新

役に立ちましたか?