Update analytics
Bucket product usage client side Add app name and version to analytics Move PayTextField's commonInit to private header
This commit is contained in:
parent
8ab7eaa279
commit
ac708b81d6
|
@ -671,6 +671,8 @@
|
|||
F1D3A25C1EB014BD0095BFA9 /* UIImage+Stripe.m in Sources */ = {isa = PBXBuildFile; fileRef = F1D3A2591EB014BD0095BFA9 /* UIImage+Stripe.m */; };
|
||||
F1D3A25D1EB014BD0095BFA9 /* UIImage+Stripe.m in Sources */ = {isa = PBXBuildFile; fileRef = F1D3A2591EB014BD0095BFA9 /* UIImage+Stripe.m */; };
|
||||
F1D3A25F1EB015B30095BFA9 /* UIImage+StripeTests.m in Sources */ = {isa = PBXBuildFile; fileRef = F1D3A25E1EB015B30095BFA9 /* UIImage+StripeTests.m */; };
|
||||
F1D3A2651EBA5BAE0095BFA9 /* STPPaymentCardTextField+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = F1D3A2631EBA5BAE0095BFA9 /* STPPaymentCardTextField+Private.h */; };
|
||||
F1D3A2661EBA5BAE0095BFA9 /* STPPaymentCardTextField+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = F1D3A2631EBA5BAE0095BFA9 /* STPPaymentCardTextField+Private.h */; };
|
||||
F1D64B291D8767FC001CDB7C /* STPWebViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = F1D64B271D8767FC001CDB7C /* STPWebViewController.h */; };
|
||||
F1D64B2A1D8767FC001CDB7C /* STPWebViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = F1D64B271D8767FC001CDB7C /* STPWebViewController.h */; };
|
||||
F1D64B2B1D8767FC001CDB7C /* STPWebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F1D64B281D8767FC001CDB7C /* STPWebViewController.m */; };
|
||||
|
@ -1141,6 +1143,7 @@
|
|||
F1D3A2581EB014BD0095BFA9 /* UIImage+Stripe.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImage+Stripe.h"; sourceTree = "<group>"; };
|
||||
F1D3A2591EB014BD0095BFA9 /* UIImage+Stripe.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIImage+Stripe.m"; sourceTree = "<group>"; };
|
||||
F1D3A25E1EB015B30095BFA9 /* UIImage+StripeTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIImage+StripeTests.m"; sourceTree = "<group>"; };
|
||||
F1D3A2631EBA5BAE0095BFA9 /* STPPaymentCardTextField+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "STPPaymentCardTextField+Private.h"; sourceTree = "<group>"; };
|
||||
F1D64B271D8767FC001CDB7C /* STPWebViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = STPWebViewController.h; sourceTree = "<group>"; };
|
||||
F1D64B281D8767FC001CDB7C /* STPWebViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = STPWebViewController.m; sourceTree = "<group>"; };
|
||||
F1D64B2D1D87686E001CDB7C /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; };
|
||||
|
@ -1716,6 +1719,7 @@
|
|||
04BC29AC1CD9A88600318357 /* STPCheckoutAPIVerification.m */,
|
||||
04BC29B31CD9AE0000318357 /* STPCheckoutBootstrapResponse.h */,
|
||||
04BC29B41CD9AE0000318357 /* STPCheckoutBootstrapResponse.m */,
|
||||
F1D3A2631EBA5BAE0095BFA9 /* STPPaymentCardTextField+Private.h */,
|
||||
04B31DD81D09A4DC00EF1631 /* STPPaymentConfiguration+Private.h */,
|
||||
04E39F5A1CECFAFD00AF3B96 /* STPPaymentContext+Private.h */,
|
||||
F12C8DBE1D63DE9F00ADA0D7 /* STPPaymentContextAmountModel.h */,
|
||||
|
@ -1924,6 +1928,7 @@
|
|||
04A488431CA3580700506E53 /* UINavigationController+Stripe_Completion.h in Headers */,
|
||||
C124A1711CCA968B007D42EE /* STPAnalyticsClient.h in Headers */,
|
||||
049A3FA81CC963EB00F57DE7 /* STPPaymentMethod.h in Headers */,
|
||||
F1D3A2661EBA5BAE0095BFA9 /* STPPaymentCardTextField+Private.h in Headers */,
|
||||
F1DEB8911E2052150066B8E8 /* STPCoreScrollViewController.h in Headers */,
|
||||
04F94DB51D229F74004FC826 /* STPSMSCodeTextField.h in Headers */,
|
||||
C1363BB81D7633D800EB82B4 /* STPPaymentMethodTableViewCell.h in Headers */,
|
||||
|
@ -2123,6 +2128,7 @@
|
|||
049880FC1CED5A2300EA4FFD /* STPPaymentConfiguration.h in Headers */,
|
||||
F1852F931D80B6EC00367C86 /* STPStringUtils.h in Headers */,
|
||||
049A3FAE1CC9AA9900F57DE7 /* STPAddressViewModel.h in Headers */,
|
||||
F1D3A2651EBA5BAE0095BFA9 /* STPPaymentCardTextField+Private.h in Headers */,
|
||||
0426B96E1CEADC98006AC8DD /* STPColorUtils.h in Headers */,
|
||||
04B31DDA1D09A4DC00EF1631 /* STPPaymentConfiguration+Private.h in Headers */,
|
||||
F1D96F961DC7D82400477E64 /* STPLocalizationUtils.h in Headers */,
|
||||
|
|
|
@ -272,6 +272,4 @@
|
|||
*/
|
||||
@property(nonatomic, strong, readwrite, nonnull) STPCardParams *cardParams;
|
||||
|
||||
- (void)commonInit;
|
||||
|
||||
@end
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
|
||||
#import "STPAnalyticsClient.h"
|
||||
|
||||
#import "NSBundle+Stripe_AppName.h"
|
||||
#import "NSMutableURLRequest+Stripe.h"
|
||||
#import "STPAPIClient+ApplePay.h"
|
||||
#import "STPAPIClient.h"
|
||||
|
@ -17,6 +18,7 @@
|
|||
#import "STPCard.h"
|
||||
#import "STPFormEncodable.h"
|
||||
#import "STPPaymentCardTextField.h"
|
||||
#import "STPPaymentCardTextField+Private.h"
|
||||
#import "STPPaymentConfiguration.h"
|
||||
#import "STPPaymentContext.h"
|
||||
#import "STPPaymentMethodsViewController+Private.h"
|
||||
|
@ -50,6 +52,9 @@
|
|||
+ (void)initializeIfNeeded {
|
||||
static dispatch_once_t onceToken;
|
||||
dispatch_once(&onceToken, ^{
|
||||
|
||||
// Individual views
|
||||
|
||||
[STPPaymentCardTextField stp_aspect_hookSelector:@selector(commonInit)
|
||||
withOptions:STPAspectPositionAfter
|
||||
usingBlock:^{
|
||||
|
@ -57,6 +62,8 @@
|
|||
[client setApiUsage:[client.apiUsage setByAddingObject:NSStringFromClass([STPPaymentCardTextField class])]];
|
||||
} error:nil];
|
||||
|
||||
// Pay context
|
||||
|
||||
[STPPaymentContext stp_aspect_hookSelector:@selector(initWithAPIAdapter:configuration:theme:)
|
||||
withOptions:STPAspectPositionAfter
|
||||
usingBlock:^{
|
||||
|
@ -65,6 +72,8 @@
|
|||
} error:nil];
|
||||
|
||||
|
||||
// View controllers
|
||||
|
||||
[STPAddCardViewController stp_aspect_hookSelector:@selector(commonInitWithConfiguration:)
|
||||
withOptions:STPAspectPositionAfter
|
||||
usingBlock:^{
|
||||
|
@ -140,6 +149,29 @@
|
|||
return productUsage ?: @[];
|
||||
}
|
||||
|
||||
- (NSDictionary *)productUsageDictionary {
|
||||
NSMutableDictionary *productUsage = [NSMutableDictionary new];
|
||||
|
||||
NSString *uiUsageLevel = nil;
|
||||
if ([self.apiUsage containsObject:NSStringFromClass([STPPaymentContext class])]) {
|
||||
uiUsageLevel = @"full";
|
||||
}
|
||||
else if (self.apiUsage.count == 1
|
||||
&& [self.apiUsage containsObject:NSStringFromClass([STPPaymentCardTextField class])]) {
|
||||
uiUsageLevel = @"card_text_field";
|
||||
}
|
||||
else if (self.apiUsage.count > 0) {
|
||||
uiUsageLevel = @"partial";
|
||||
}
|
||||
else {
|
||||
uiUsageLevel = @"none";
|
||||
}
|
||||
productUsage[@"ui_usage_level"] = uiUsageLevel;
|
||||
productUsage[@"product_usage"] = [self productUsage];
|
||||
|
||||
return productUsage.copy;
|
||||
}
|
||||
|
||||
- (void)logTokenCreationAttemptWithConfiguration:(STPPaymentConfiguration *)configuration
|
||||
tokenType:(NSString *)tokenType {
|
||||
NSDictionary *configurationDictionary = [self.class serializeConfiguration:configuration];
|
||||
|
@ -147,9 +179,8 @@
|
|||
[payload addEntriesFromDictionary:@{
|
||||
@"event": @"stripeios.token_creation",
|
||||
@"token_type": tokenType ?: @"unknown",
|
||||
@"apple_pay_enabled": @([Stripe deviceSupportsApplePay]),
|
||||
@"product_usage": [self productUsage],
|
||||
}];
|
||||
[payload addEntriesFromDictionary:[self productUsageDictionary]];
|
||||
[payload addEntriesFromDictionary:configurationDictionary];
|
||||
[self logPayload:payload];
|
||||
}
|
||||
|
@ -162,8 +193,8 @@
|
|||
@"event": @"stripeios.source_creation",
|
||||
@"source_type": sourceType ?: @"unknown",
|
||||
@"apple_pay_enabled": @([Stripe deviceSupportsApplePay]),
|
||||
@"product_usage": [self productUsage],
|
||||
}];
|
||||
[payload addEntriesFromDictionary:[self productUsageDictionary]];
|
||||
[payload addEntriesFromDictionary:configurationDictionary];
|
||||
[self logPayload:payload];
|
||||
}
|
||||
|
@ -212,6 +243,10 @@
|
|||
if (deviceType) {
|
||||
payload[@"device_type"] = deviceType;
|
||||
}
|
||||
payload[@"app_name"] = [NSBundle stp_applicationName];
|
||||
payload[@"app_version"] = [NSBundle stp_applicationVersion];
|
||||
payload[@"apple_pay_enabled"] = @([Stripe deviceSupportsApplePay]);
|
||||
|
||||
return payload;
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
//
|
||||
// STPPaymentCardTextField+Private.h
|
||||
// Stripe
|
||||
//
|
||||
// Created by Brian Dorfman on 5/3/17.
|
||||
// Copyright © 2017 Stripe, Inc. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Stripe/Stripe.h>
|
||||
|
||||
@interface STPPaymentCardTextField (Private)
|
||||
- (void)commonInit;
|
||||
@end
|
Loading…
Reference in New Issue