PKPaymentAuthorizationViewControllerDelegate

PKPaymentAuthorizationViewControllerDelegate

繼承自NSObject,@import PassKit

PKPaymentAuthorizationViewControllerDelegate協議被支付授權視圖控制器的代理實施。實現該協議響應用戶和視圖控制器之間的交互。

在它回調其他的代理方法之前,支付授權視圖控制器自動等待它的代理完成響應一個方法。指定代理回調方法中的完成Block用來完成當前的方法。該操作告訴支付授權視圖控制器繼續授權進程的下一步。

這種步進式過程(一步一步地進行)有一個例外:一旦用戶取消沒有授權的支付,支付授權視圖控制器調用paymentAuthorizationViewControllerDidFinish方法。該控制器在任何時候調用該方法。

Working with Authorization 處理授權

-paymentAuthorizationViewControllerWillAuthorizePayment:

告訴代理用戶正在授權該支付請求。
參數:controller 支付授權視圖控制器
支付請求被授權之前但在用戶使用密碼或者Touch ID支付之后調用該方法。

-paymentAuthorizationViewController:didAuthorizatePayment:completion:

告訴代理用戶已經授權該支付請求。
參數:
controller 支付授權視圖控制器
payment 授權的支付。該對象不僅包含需要提交給支付處理器的支付密鑰,還包含支付請求需要的賬單和運送信息。
completion 當app授權支付之后回調完成的Block。該Block取下面的參數:status 支付的授權狀態。對于它的值,查看PKPaymentAuthorizationStatus。

當授權支付請求之后調用該方法,提交支付信息給支付進程授權該交易,并回調完成的Block

-paymentAuthorizationViewController:didSelectPaymentMethod:completion:

告訴代理支付方式已經改變并請求更新的概要項列表。
參數:
controleller 支付授權視圖控制器
paymentMethod 新的支付方式
completion 當app更新概要項之后回調完成的Block。該Block包含下面參數:summaryItem 包含任何由支付方式引起的費用或者信用卡附加費帶來的改變而更新后的概要項數組。
當用戶選擇一個新的支付卡時調用該方法。使用該代理回調更新概要項用以響應卡片方式的改變(例如:信用卡附加費),調用更新概要項的回調。

注意:該代理不再接受回調,除非paymentAuthorizationViewControllerDidFinish:直到它引起完成的Block

-paymentAuthorizationViewControllerDidFinish:

告訴代理支付授權已經完成。
參數:controller 支付授權視圖控制器。

使用該方法dismiss支付授權視圖控制器,更新其他的app狀態。
當用戶授權一個支付請求時,當paymentAuthorizationViewController:didAuthorizePayment:completion:方法的完成Block已經展示給用戶,該方法被調用。當用戶沒有授權支付請求引起取消操作時,僅僅paymentAuthorizationViewControllerDidFinish:被調用。

Working with Shipping Information 處理運送信息

-paymentAuthorizationViewController:didSelectShippingMethod:completion:

告訴代理用戶選擇一個運送方式。
參數:
controller 支付授權視圖控制器
shippingMethod 選擇的運送方式。該參數包含支付方式的一種,包含在支付請求中。
completion 更新運送方式信息時該完成Block被調用。該Block包含下面的參數:status 支付的授權狀態。所有可能值,可查看PKPaymentAuthorizationStatus。SummaryItems PKPaymentSummaryItems對象的數組,用以替換當前支付請求的概要項。

使用該方法更新基于用戶選擇的運送地址產生的運送費用,該運送地址為先前在paymentAuthorizationViewController:didSelectShippingAddress:completion:方法中傳送給代理的。如果沒有選擇地址,使用在支付請求中預填充的地址。

當該方法被調用時,創建一個新的PKPaymentSummaryItem對象的數組,展示包括運費的更新后的費用。更多關于創建概要項的信息,可查看PKPaymentRequest類中的paymentSummaryItems屬性。

-paymentAuthorizationViewController:didSelectShippingContact:completion:

告訴代理用于選擇一個運送地址。
參數:
controller 支付授權視圖控制器
contact 展示新的運送地址的聯系對象。為了維護隱私,運送信息是匿名的。例如:在美國僅僅包含城市、州、郵政編碼。這提供足夠的信息用來計算運費,不顯示敏感信息除非用戶實際上批準該次購買。
completion 更新運送信息時完成Block被調用。該Block包含下面的參數:staus 支付的授權狀態。所有可能值,可查看PKPaymentAuthorizationStatus。shippingMethods 一個 PKShippingMethod對象的數組,用以替代當前支付請求的運送方式。summaryItems PKPaymentSummaryItems對象的數組,用以替換當前支付請求的概要項。

使用該方法更新適用的運送方式和如果選中一種運送方式相應的當前的運費。
當該方法被調用時,創建一個指定地址適用的PKShippingMethod對象的新數組。也可以創建一個顯示更新后的費用的PKPaymentSummaryItem對象的數組。概要項應該包含選中的適用的運送方式的運費。更多關于更新這些數據的信息,可查看PKPaymentRequest類的shippingMethodspaymentSummaryItems屬性。

Constants 常量

PKPaymentAuthorizationStatus

一般是成功和失敗的狀態,也有由于特殊錯誤生成的代碼。

PaymentAuthorizationStatus Description
PKPaymentAuthorizationStatusSuccess 支付授權成功或者交易被期望是成功的
PKPaymentAuthorizationStatusFailure 支付授權失敗(無效的地址或聯系方式)
PKPaymentAuthorizationStatusInvalidBillingPostalAddress 無效或不可用的賬單地址
PKPaymentAuthorizationStatusInvalidShippingPostalAddress 無效或者不可用的運送地址
PKPaymentAuthorizationStatusInvalidShippingContact 無效或不完整的運送聯系方式
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1.About Apple Pay Apple Pay是一種移動支付技術,讓使用者把它們對真實的物品和服務的支付信...
    NEWWORLD閱讀 5,244評論 14 51
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,124評論 25 708
  • Authorizing Payments 支付授權處理是支付授權視圖控制器和它的代理之間的協力合作的結果。支付授權...
    NEWWORLD閱讀 1,431評論 2 0
  • 我昨晚九點多睡覺,因為中午沒有休息,所以晚上入睡特別快,而且感覺到困。然而早晨定了五六個鬧鐘,五點的,都沒有醒來。...
    曉麗姐閱讀 418評論 0 2
  • 圖片發自簡書App 流光溢彩笑語喧,踽踽獨行顏難展。早知歸來形影吊,不如他鄉天倫歡。 注:2000年,孤身回蓉,愛...
    成都獨行俠閱讀 326評論 0 6