条带paymentContext确实将paymentContext.selectedPaymentOption设置为默认卡

时间:2019-07-23 14:42:38

标签: ios swift stripe-payments

昨天我为iOS添加了stripe sdk,并使用其教程来实现添加付款选项,并且一切正常。今天,经过一些代码重构(没有做任何关键的更改),paymentContext.selectedPaymentOption在委托方法中为零

func paymentContextDidChange(_ paymentContext: STPPaymentContext) {

}

当我初始化paymentContext两次时,昨天第一次paymentContext.selectedPaymentOption为nil,但是第二次它选择了默认值,今天两次我都为nil,知道为什么吗?

这就是我初始化paymentContext的方式:

let customerContext = STPCustomerContext(keyProvider: StripeClient.sharedClient)
paymentContext = STPPaymentContext(customerContext: customerContext)

客户还可以,因为它可以创建和读取条纹仪表板上的卡,唯一的问题是未选择默认卡。

2 个答案:

答案 0 :(得分:1)

自v16.0.2起,此功能由Stripe框架本地管理。 您应将最后一个付款方式ID存储在用户默认的任何位置,然后在实例化font-size: 16px font-size: 14px etc.

之后立即设置STPPaymentContext.defaultPaymentMethod

https://stripe.dev/stripe-ios/docs/Classes/STPPaymentContext.html#/c:objc(cs)STPPaymentContext(py)defaultPaymentMethod

请务必遵循注释STPPaymentContext

答案 1 :(得分:0)

发生这种情况的原因是,起初我使用的是Pod版本15.0.1,后来又更新为16.0.0。我得到了他们开发人员的回应,因此总之,不再支持默认卡。

这是完整的答复:

  

这是故意的,并且是PaymentMethods API的更改   不再存在默认的PaymentMethod这样的概念。您的   集成必须保持这一点,并明确传递   您要收费的PaymentMethod,根本就没有客户级别   默认