PPOTCheckoutBrowserSwitchRequest.m 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. //
  2. // PPOTCheckoutBrowserSwitchRequest.m
  3. // PayPalOneTouch
  4. //
  5. // Copyright © 2015 PayPal, Inc. All rights reserved.
  6. //
  7. #import "PPOTCheckoutBrowserSwitchRequest.h"
  8. #import "PPOTAppSwitchUtil.h"
  9. #import "PPOTPersistentRequestData.h"
  10. #if __has_include("PayPalUtils.h")
  11. #import "PPOTTime.h"
  12. #import "PPOTString.h"
  13. #import "PPOTMacros.h"
  14. #else
  15. #import <PayPalUtils/PPOTTime.h>
  16. #import <PayPalUtils/PPOTString.h>
  17. #import <PayPalUtils/PPOTMacros.h>
  18. #endif
  19. // TODO: have a factory/builder/json reader of sandbox, mock, etc
  20. @interface PPOTCheckoutBrowserSwitchRequest ()
  21. @property (nonatomic, readwrite) NSString *msgID;
  22. @end
  23. @implementation PPOTCheckoutBrowserSwitchRequest
  24. - (NSURL *)encodedURL {
  25. return [NSURL URLWithString:self.approvalURL];
  26. }
  27. - (void)addDataToPersistentRequestDataDictionary:(NSMutableDictionary *)requestDataDictionary {
  28. [super addDataToPersistentRequestDataDictionary:requestDataDictionary];
  29. NSString *queryString = [self.approvalURL componentsSeparatedByString:@"?"][1];
  30. NSDictionary *queryDictionary = [PPOTAppSwitchUtil parseQueryString:queryString];
  31. NSString *hermesToken = queryDictionary[kPPOTAppSwitchHermesTokenKey];
  32. if (hermesToken == nil) {
  33. hermesToken = queryDictionary[kPPOTAppSwitchHermesBATokenKey];
  34. }
  35. requestDataDictionary[kPPOTRequestDataDataDictionaryHermesTokenKey] = FORCE_VALUE_OR_NULL(hermesToken);
  36. requestDataDictionary[kPPOTRequestDataDataDictionaryEnvironmentKey] = FORCE_VALUE_OR_NULL(self.environment);
  37. }
  38. @end