トークンリクエスタへプッシュする(Token Connect)
トークンリクエスタへのプッシュ(Token Connect)
概要
エンドユーザー体験
フロー
有効なトークンリクエスタを取得
トークンリクエスタへプッシュ
シーケンス図
最終更新
役に立ちましたか?
役に立ちましたか?
fun getEligibleTokenRequestors(d1Task: D1Task, cardID: String) {
val callback: D1Task.Callback<List<TokenRequestor>> = object : D1Task.Callback<List<TokenRequestor>> {
override fun onSuccess(tkRequestorList: List<TokenRequestor>) {
// サーバーから受け取ったtkRequestorListオブジェクトを処理します。
// 上のサンプル画像のようにUIに表示する例です。
for (tkRequestor : TokenRequestor in tkRequestorList) {
val tkRequestorID : String = tkRequestor.id
val tkRequestorName : String = tkRequestor.name
val tkRequestorAssets : MutableList<AssetContent>? = tkRequestor.assets // トークンリクエスタのロゴ。
val tkrProvisioningMethods : MutableList<ProvisioningMethod> = tkRequestor.provisioningMethods // トークンリクエスタのプロビジョニング方法。
}
}
override fun onError(exception: D1Exception) {
// D1 SDK 統合 - エラー管理セクションを参照してください。
}
}
d1Task.getTokenRequestorList(cardID, callback)
}let cardID = "" // 例えばバックエンドから取得
d1Task.tokenRequestorList(cardID) { tokenRequestors, error in
if let error = error {
// D1 SDK 統合のエラー管理セクションを参照してください
} else if let tokenRequestors = tokenRequestors {
// tokenRequestorsをUIに表示します
for tokenRequestor in tokenRequestors {
print("ID: \(tokenRequestor.id ?? "")")
print("名前: \(tokenRequestor.name ?? "")")
if let asset = tokenRequestor.asset?.first,
let imageData = Data(base64Encoded: asset.encodedData) {
let image = UIImage(data: imageData)
_ = image
}
}
}
}// cardID: getConsumerDetails APIで受信。
// tokenRequestor: ユーザーが選択。
fun pushCardToTokenRequestor(d1Task: D1Task, cardID: String, tokenRequestor: TokenRequestor) {
val appURL = "d1demoapp://com.thalesgroup.gemalto.d1.validation/PushToSchemeResult" // デジタル化フロー完了時にトークンリクエスタがコールバックするイシュアアプリのカスタムURL。
val tcsAccepted = true
val callback: D1Task.Callback<String> = object : D1Task.Callback<String> {
override fun onSuccess(pushUrl: String) {
// トークンリクエスタアプリケーションを起動します。
getActivity().startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(pushUrl)))
}
override fun onError(exception: D1Exception) {
// D1 SDK 統合 - エラー管理セクションを参照してください。
}
}
// Click to Payの場合、MastercardのtokenRequestor.id属性値は50123197928です。
d1Task.addDigitalCardToScheme(
cardID,
tokenRequestor,
appURL,
tcsAccepted,
callback
)
}let cardID = "" // 例えばバックエンドから取得
// トークン化フローの後にトークンリクエスタが呼び出す、イシュアアプリケーションのディープリンクURL。
let appURL = "test://sample.com.demo/tokenRequestorsPage"
// tokenRequestorはエンドユーザーが選択し、tokenRequestorList()から返されます。
d1Task.addDigitalCardToScheme(
cardID,
tokenRequestor: tokenRequestor,
appURL: appURL,
termsAndConditionsAccepted: true
) { provisionString, error in
if let error = error {
// D1 SDK 統合のエラー管理セクションを参照してください
} else if let provisionString = provisionString,
let pushUrl = URL(string: provisionString),
UIApplication.shared.canOpenURL(pushUrl) {
UIApplication.shared.open(pushUrl)
}
}