Stripe IOS SDK не соответствует AllResponseFields? - PullRequest
0 голосов
/ 23 января 2019

Я пытаюсь сделать простую проверку счета для клиента, чтобы увидеть, нужно ли ему добавить источник, прежде чем перейти на другую страницу.Однако мои вызовы атрибутов объекта STPCustomer не соответствуют информации для полного ответа.

Я пытался очистить кэш клиента и перезагрузить клиента, но ... все равно не совпадает.

Вот усеченный, как, необходимый код.К классу прикреплен STPPaymentContextDelegate.

private var customerContext = STPCustomerContext? 
private var paymentContext = STPPaymentContext? 

func setupStripe() {
self.paymentContext = STPPaymentContext(customerContext: self.customerContext!)

    self.paymentContext?.hostViewController = self
    self.paymentContext?.delegate = self

    self.paymentView = STPPaymentMethodsViewController(configuration: STPPaymentConfiguration.shared(), theme: STPTheme.default(), customerContext: self.customerContext!, delegate: self)
}

func getCustomerSources() {

if let customer = customerContext.retrieveCustomer({ (customer, error) in
        if customer != nil {
             print(customer.sources.count)
             print(customer.sources)
             print(customer.allResponseFields)
        }
    })
}

Когда я запускаю getCustomerSources() на тестовом клиенте, я ожидаю:

 1
 [ba_1Dvf46LrBVaGM6Sq9qIYhOlJ]
 AnyHashable("id"): cus_number, AnyHashable("email"): rosa_diaz@gmail.com, AnyHashable("default_source"): ba_1Dvf46LrBVaGM6Sq9qIYhOlJ, AnyHashable("created"): 1548220659, AnyHashable("description"): LiG8WbVhT8SVhta8LdfUuWzOwQn2, AnyHashable("livemode"): 0, AnyHashable("object"): customer, AnyHashable("sources"): {
  data =     (
            {
        "bank_name" = "STRIPE TEST BANK";
        country = US;
        currency = usd;
        customer = "cus_EOQzwwGPjzopjS";
        fingerprint = 1AQMB9nzeGSGXHst;
        id = "ba_1Dvf46LrBVaGM6Sq9qIYhOlJ";
        last4 = 6789;
        metadata =             {
        };
        object = "bank_account";
        "routing_number" = 110000000;
        status = verified;
    }
   );
   "has_more" = 0;
   object = list;
   "total_count" = 1;
   url = "/v1/customers/cus_EOQzwwGPjzopjS/sources";
}])

Однако вместо моих 1 и ba_1Dvf46LrBVaGM6Sq9qIYhOlJ, я получаю 0 и []. Но раздел allResponseFields такой же.

Есть какие-нибудь идеи относительно того, почему существует несоответствие между тем, что возвращают атрибуты объекта STPCustomer, и тем, что фактический ответ говорит мне?

1 Ответ

0 голосов
/ 23 января 2019

Трудно сказать, что происходит, не зная больше о параметре error, который получает ваш обратный вызов.Похоже, что при синтаксическом анализе ответа API может возникнуть ошибка, и печать error, переданная в ваш блок retrieveCustomer, должна дать вам лучшее представление о том, что происходит.Если ошибка не устранена, я бы порекомендовал связаться с support@stripe.com с подробностями, так как они могут помочь с вопросами о приложении для iOS!

...