簡體   English   中英

Braintree-Android SDK:是新信用卡還是現有信用卡?

[英]Braintree - Android SDK: new credit card or existing one?

我是Android + Braintree世界的新手。 目前,我正在使用Drop-In界面。 我想做的是以下

“如果用戶正在創建/添加新卡,請詢問他是否要保存信用卡信息”。

我需要此信息,因為稍后我將在事務的參數中相應地設置storeInVaultOnSuccess選項。 現在,似乎無法在嵌入式GUI中插入元素來了解用戶是否要保存這些數據。

很好,因此我將在該插入界面之后添加一個附加步驟,在該界面中,我只會詢問用戶是否要保存信用卡數據。

但是問題是我不想問這個問題,如果他選擇一個已經存在的信用卡,那么我需要知道他是否創建了一張新卡還是他選擇了一個存在的卡。

有沒有一種方法可以執行此任務(或者有更好的選擇)?

我已經嘗試過的東西:我試圖查看onActivityResult方法中給出的所有信息,更具體地說,是作為第三個參數給出的Intent的內容。 我所擁有的當然是EXTRA_PAYMENT_METHOD_NONCE ,然后是EXTRA_PAYMENT_METHOD (類型為com.braintreepayments.api.models.Card ),但是看着Card.java的代碼,我無法理解如何檢索(如果可能的話) )這類信息。

提前致謝。

全面披露:我在Braintree工作。 如果您還有其他疑問,請隨時與支持小組聯系。

Drop-In UI不支持該工作流程,因為在輸入時,Drop-In會自動對信用卡進行存儲並僅提供隨機數(出於PCI原因,該隨機數不包含有關卡的任何信息給客戶端)。 換句話說,storeInVaultOnSuccess將不再適用,因為它已經存在。

如您所說,解決此問題的方法(同時仍使用Drop-In)將是保留對交易中使用的付款方式的引用,並詢問交易是否完成。 您可以通過檢查響應對象來獲得此信息:

String payment_method_token = "";

TransactionRequest request = new TransactionRequest()
  .amount(new BigDecimal("100.00"));
  .paymentMethodNonce(nonceFromTheClient);
Result<Transaction> result = gateway.transaction().sale(request);
Transaction transaction = result.getTarget();

if (transaction.getPaymentInstrumentType().equals(PaymentInstrumentType.CREDIT_CARD){
  payment_method_token = transaction.getCreditCard.getToken();
}
// ... other payment method types that you support 

但是,正如您所說,這更加復雜。 您將必須根據以下條件進行選擇:a)創建付款方式時(使用createdAt),或a)比較結帳體驗前后的付款方式數組

這種流程確實推動了Drop-In的極限,而這些約束通常會促使開發人員轉向自定義集成 在這種情況下,您將在輸入信用卡信息時收集他們的偏好-是否要存儲它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM