简体   繁体   中英

Stripe IOS SDK not matching AllResponseFields?

I'm trying to do a simple count check for a customer to see if they need to add a source before moving onto another page. However, my calls to the STPCustomer object's attributes are not matching the information for the full response.

I've tried clearing the customer cache and reloading the customer, but uh... still no match.

Here's a truncated like, essentials code. The class has the STPPaymentContextDelegate attached.

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)
        }
    })
}

When I run getCustomerSources() on the test customer, I am expecting:

 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";
}])

However, instead of my 1 and ba_1Dvf46LrBVaGM6Sq9qIYhOlJ , I am getting 0 and [] . But the allResponseFields section is the same.

Any ideas as to why there's a discrepancy between what the STPCustomer object attributes are returning and what the actual response is telling me?

it's hard to say what's going on without knowing more about the error parameter that your callback receives. It sounds like there might be an error parsing the API response, and printing the error passed into your retrieveCustomer block should give you a better idea about what's going on. If the error persists I'd recommend contacting support@stripe.com with details, as they can help directly with iOS app questions!

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM