プッシュプロビジョニング
ステップ1: 次を表示する ウォレットに追加 ボタン
エンドユーザーが最初にイシュアアプリケーションを起動したとき、特定のカードに対して次を表示するか非表示にするかを判断する必要があります。 Apple Walletに追加 特定のカードのボタン。
できるだけ早く、エンドユーザーがiPhoneを持っているか、Apple WatchとペアリングされたiPhoneを持っているかを判定します。
次に、このペアリング状態をPush Provisioning SDKと組み合わせて getToken APIの結果を使用して、次を表示するか非表示にするかを決定します。 Apple Walletに追加 ボタン。
import WatchConnectivity
class ViewController: UIViewController, TPCSDKProvisionDelegate, WCSessionDelegate {
// TPC関数を呼び出す前に isWatchPaired 値を保存するため
var isWatchPaired = false
override func viewDidLoad() {
super.viewDidLoad()
// ビューの読み込み後に追加のセットアップを行います。
if WCSession.isSupported() {
let session = WCSession.default
session.delegate = self
session.activate()
}
}
// MARK: WCSessionDelegate
func session(_ session: WCSession, activationDidCompleteWith activationState: WCSessionActivationState, error: Error?) {
if error != nil {
// エラーを処理する
} else if activationState == .activated && session.isPaired {
isWatchPaired = true
}
}
func sessionDidBecomeInactive(_ session: WCSession) {
// sessionDidBecomeInactive を処理する
isWatchPaired = false
}
func sessionDidDeactivate(_ session: WCSession) {
// sessionDidDeactivate を処理する
isWatchPaired = false
}
}次に、 getToken APIを呼び出して結果を更新します。
注意
次を参照してください PKAddPassButton イシュアアプリケーションでボタンを使用するためのガイドライン。 Apple Walletに追加 ボタンをイシュアアプリケーションで使用するためのガイドライン。
次は iOS SDK 2.0.0 およびそれ以前に適用されます。
次は iOS SDK 2.1.0 以降に適用されます。
注意
プロビジョニング後もカードが「NOT_DIGITIZED」と表示される場合は、イシュアアプリケーションがTSPポータルで正しく構成されているか確認してください。
その
TPCSDK.isCardDigitizedAPIは非推奨で推奨されません。代わりに次のAPIを使用してください。getTokenAPIを使用してください。なお、isCardDigitizedAPIはカードがアクティベーション保留中か、iPhone上かApple Watch上かを示しません。
ステップ2: カードをプロビジョニングする
プロビジョニングデリゲートはプロビジョニング完了後に PKPass を返します。それを使用してカードのデジタル化状況を確認します。デリゲートが nilを返す場合、SDKはエラーも返します。
PKPass クラスを使用する前に、PassKit.framework をプロジェクトに追加してください。
警告
このAPIを呼び出す前に、イシュアアプリケーションにPush Provisioning権限を追加する必要があります。そうしないと、APIはエラーを返します。権限を取得するには次の手順に従ってください。 Push Provisioning Access ガイドライン.
次のAPIを使用して取得します。
getTokenローカルPKPassまたはリモートPKPass。いずれかがでない場合、PKSecureElementPass オブジェクトのまたはリモートPKPass。いずれかがprimaryAccountIdentifiernilプロパティにアクセスします。取得したをprovisionAPIに渡します。Visa、Mastercard、Amex、Discover の標準スキーム列挙値を使用したプロビジョニングをfunc onProvisionCompletion(pass: PKPaymentPass?, error: Error?) {if let error = error {if let tpcError = error as? TPCError {
// TPCError を処理する
primaryAccountIdentifier:primaryAccountIdentifier,
最終更新
役に立ちましたか?