首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >快速条形存取DidCreateToken

快速条形存取DidCreateToken
EN

Stack Overflow用户
提问于 2018-12-25 17:49:55
回答 1查看 1.5K关注 0票数 1

我试图通过使用Swift将Stripe集成到我的ios ( Firebase-Cloud-Functions )应用程序中。现在,我想将令牌保存到创建的卡中,以便将其保存到我的Firestore-Database中。

我一直在跟踪本教程如何实现它。当我自己显示我的addCardViewController时,它是工作的,因为我有didCreateToken方法。但是现在我只是向它展示programmatically,就像他们提供的示例中显示的那样(第158行是他们展示视图控制器的地方),我不知道如何实现这个方法,并获得卡片if a user creates/add的令牌是一个新的方法。

这就是我通常做的事情:

代码语言:javascript
复制
func addCardViewController(_ addCardViewController: STPAddCardViewController, didCreateToken token: STPToken, completion: @escaping STPErrorBlock)
{
    STRIPE_CUSTOMERS_REF.document(userId).collection("tokens").addDocument(data: ["token": tokenId]) // Calls Firebase-Cloud-Function and adds payment method to Stripe
    navigationController?.popViewController(animated: true)
}

但就像我说的,我无法实现这个方法。

当用户添加新卡时,我希望得到令牌。

我真的很感激任何帮助。如果您需要更多的信息,请告诉我。

-Marie

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-25 18:43:49

看起来您使用STPPaymentContext (标准集成)来表示STPPaymentMethodsViewController (上面示例中的第158行)。

STPPaymentContext实际上实现了自己的STPPaymentMethodsViewControllerSTPAddCardViewController实例。因此,STPPaymentContext处理这两个视图控制器的委托方法,这些方法在使用标准集成时不会公开给用户。这解释了为什么该委托方法没有为您触发。

相反,视图控制器应该成为STPPaymentContext的委托,并实现所有必需的委托方法,包括paymentContextDidChange方法。每当用户添加新卡或选择新的支付方法1时,就会触发paymentContextDidChange方法。

当用户输入新的卡详细信息时,您应该能够使用以下内容获得令牌ID:

代码语言:javascript
复制
func paymentContextDidChange(_ paymentContext: STPPaymentContext)
{
    if let card = paymentContext.selectedPaymentMethod as? STPCard {
        let token = card.stripeID
        // store token as required
    }
}

希望这能帮上忙!

0

1

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53924470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档