BTConfiguration+ApplePay.m 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #if __has_include(<Braintree/BraintreeApplePay.h>)
  2. #import <Braintree/BTConfiguration+ApplePay.h>
  3. #else
  4. #import <BraintreeApplePay/BTConfiguration+ApplePay.h>
  5. #endif
  6. @implementation BTConfiguration (ApplePay)
  7. - (BOOL)isApplePayEnabled {
  8. BTJSON *applePayConfiguration = self.json[@"applePay"];
  9. return [applePayConfiguration[@"status"] isString] && ![[applePayConfiguration[@"status"] asString] isEqualToString:@"off"];
  10. }
  11. - (BOOL)canMakeApplePayPayments {
  12. return [PKPaymentAuthorizationViewController canMakePaymentsUsingNetworks:self.applePaySupportedNetworks];
  13. }
  14. - (NSString *)applePayCountryCode {
  15. return [self.json[@"applePay"][@"countryCode"] asString];
  16. }
  17. - (NSString *)applePayCurrencyCode {
  18. return [self.json[@"applePay"][@"currencyCode"] asString];
  19. }
  20. - (NSString *)applePayMerchantIdentifier {
  21. return [self.json[@"applePay"][@"merchantIdentifier"] asString];
  22. }
  23. - (NSArray<PKPaymentNetwork> *)applePaySupportedNetworks {
  24. NSArray <NSString *> *gatewaySupportedNetworks = [self.json[@"applePay"][@"supportedNetworks"] asStringArray];
  25. NSMutableArray <PKPaymentNetwork> *supportedNetworks = [NSMutableArray new];
  26. for (NSString *gatewaySupportedNetwork in gatewaySupportedNetworks) {
  27. if ([gatewaySupportedNetwork localizedCaseInsensitiveCompare:@"visa"] == NSOrderedSame) {
  28. [supportedNetworks addObject:PKPaymentNetworkVisa];
  29. } else if ([gatewaySupportedNetwork localizedCaseInsensitiveCompare:@"mastercard"] == NSOrderedSame) {
  30. [supportedNetworks addObject:PKPaymentNetworkMasterCard];
  31. } else if ([gatewaySupportedNetwork localizedCaseInsensitiveCompare:@"amex"] == NSOrderedSame) {
  32. [supportedNetworks addObject:PKPaymentNetworkAmex];
  33. } else if ([gatewaySupportedNetwork localizedCaseInsensitiveCompare:@"discover"] == NSOrderedSame) {
  34. [supportedNetworks addObject:PKPaymentNetworkDiscover];
  35. } else if ([gatewaySupportedNetwork localizedCaseInsensitiveCompare:@"maestro"] == NSOrderedSame) {
  36. [supportedNetworks addObject:PKPaymentNetworkMaestro];
  37. } else if ([gatewaySupportedNetwork localizedCaseInsensitiveCompare:@"elo"] == NSOrderedSame) {
  38. if (@available(iOS 12.1.1, *)) {
  39. [supportedNetworks addObject:PKPaymentNetworkElo];
  40. }
  41. }
  42. }
  43. return [supportedNetworks copy];
  44. }
  45. @end