Merge pull request #621 from stripe/bg-token-type
Add token_type to analytics
This commit is contained in:
commit
c158f96753
|
@ -134,7 +134,9 @@ static NSString *const stripeAPIVersion = @"2015-10-12";
|
|||
NSCAssert(parameters != nil, @"'parameters' is required to create a token");
|
||||
NSCAssert(completion != nil, @"'completion' is required to use the token that is created");
|
||||
NSDate *start = [NSDate date];
|
||||
[[STPAnalyticsClient sharedClient] logTokenCreationAttemptWithConfiguration:self.configuration];
|
||||
NSString *tokenType = [STPAnalyticsClient tokenTypeFromParameters:parameters];
|
||||
[[STPAnalyticsClient sharedClient] logTokenCreationAttemptWithConfiguration:self.configuration
|
||||
tokenType:tokenType];
|
||||
[STPAPIRequest<STPToken *> postWithAPIClient:self
|
||||
endpoint:tokenEndpoint
|
||||
parameters:parameters
|
||||
|
|
|
@ -29,9 +29,12 @@ typedef NS_ENUM(NSUInteger, STPAddCardRememberMeUsage) {
|
|||
|
||||
+ (NSString *)muid;
|
||||
|
||||
+ (NSString *)tokenTypeFromParameters:(NSDictionary *)parameters;
|
||||
|
||||
- (void)logRememberMeConversion:(STPAddCardRememberMeUsage)selected;
|
||||
|
||||
- (void)logTokenCreationAttemptWithConfiguration:(STPPaymentConfiguration *)configuration;
|
||||
- (void)logTokenCreationAttemptWithConfiguration:(STPPaymentConfiguration *)configuration
|
||||
tokenType:(NSString *)tokenType;
|
||||
|
||||
- (void)logSourceCreationAttemptWithConfiguration:(STPPaymentConfiguration *)configuration
|
||||
sourceType:(NSString *)sourceType;
|
||||
|
|
|
@ -113,6 +113,20 @@ static BOOL STPAnalyticsCollectionDisabled = NO;
|
|||
return [[[UIDevice currentDevice] identifierForVendor] UUIDString];
|
||||
}
|
||||
|
||||
+ (NSString *)tokenTypeFromParameters:(NSDictionary *)parameters {
|
||||
if ([parameters.allKeys count] == 1) {
|
||||
NSArray *validTypes = @[@"bank_account", @"card", @"pii"];
|
||||
NSString *type = [parameters.allKeys firstObject];
|
||||
if ([validTypes containsObject:type]) {
|
||||
return type;
|
||||
}
|
||||
}
|
||||
if ([parameters.allKeys containsObject:@"pk_token"]) {
|
||||
return @"apple_pay";
|
||||
}
|
||||
return nil;
|
||||
}
|
||||
|
||||
- (instancetype)init {
|
||||
self = [super init];
|
||||
if (self) {
|
||||
|
@ -138,11 +152,13 @@ static BOOL STPAnalyticsCollectionDisabled = NO;
|
|||
return productUsage ?: @[];
|
||||
}
|
||||
|
||||
- (void)logTokenCreationAttemptWithConfiguration:(STPPaymentConfiguration *)configuration {
|
||||
- (void)logTokenCreationAttemptWithConfiguration:(STPPaymentConfiguration *)configuration
|
||||
tokenType:(NSString *)tokenType {
|
||||
NSDictionary *configurationDictionary = [self.class serializeConfiguration:configuration];
|
||||
NSMutableDictionary *payload = [self.class commonPayload];
|
||||
[payload addEntriesFromDictionary:@{
|
||||
@"event": @"stripeios.token_creation",
|
||||
@"token_type": tokenType ?: @"unknown",
|
||||
@"apple_pay_enabled": @([Stripe deviceSupportsApplePay]),
|
||||
@"product_usage": [self productUsage],
|
||||
}];
|
||||
|
|
|
@ -8,11 +8,15 @@
|
|||
|
||||
#import <XCTest/XCTest.h>
|
||||
#import "STPAnalyticsClient.h"
|
||||
#import "STPFixtures.h"
|
||||
#import "STPFormEncoder.h"
|
||||
|
||||
@interface STPAPIClient (Testing)
|
||||
+ (NSDictionary *)parametersForPayment:(PKPayment *)payment;
|
||||
@end
|
||||
|
||||
@interface STPAnalyticsClient (Testing)
|
||||
|
||||
+ (BOOL)shouldCollectAnalytics;
|
||||
|
||||
@end
|
||||
|
||||
@interface STPAnalyticsClientTest : XCTestCase
|
||||
|
@ -25,4 +29,18 @@
|
|||
XCTAssertFalse([STPAnalyticsClient shouldCollectAnalytics]);
|
||||
}
|
||||
|
||||
- (void)testTokenTypeFromParameters {
|
||||
STPCardParams *card = [STPFixtures cardParams];
|
||||
NSDictionary *cardDict = [STPFormEncoder dictionaryForObject:card];
|
||||
XCTAssertEqualObjects([STPAnalyticsClient tokenTypeFromParameters:cardDict], @"card");
|
||||
|
||||
STPBankAccountParams *bank = [STPFixtures bankAccountParams];
|
||||
NSDictionary *bankDict = [STPFormEncoder dictionaryForObject:bank];
|
||||
XCTAssertEqualObjects([STPAnalyticsClient tokenTypeFromParameters:bankDict], @"bank_account");
|
||||
|
||||
PKPayment *applePay = [STPFixtures applePayPayment];
|
||||
NSDictionary *applePayDict = [STPAPIClient parametersForPayment:applePay];
|
||||
XCTAssertEqualObjects([STPAnalyticsClient tokenTypeFromParameters:applePayDict], @"apple_pay");
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
|
||||
#import "STPAPIClient.h"
|
||||
#import "STPAPIClient+ApplePay.h"
|
||||
#import "STPFixtures.h"
|
||||
|
||||
@interface STPApplePayFunctionalTest : XCTestCase
|
||||
|
||||
|
@ -19,50 +20,7 @@
|
|||
@implementation STPApplePayFunctionalTest
|
||||
|
||||
- (void)testCreateTokenWithPayment {
|
||||
if (![PKPayment class]) {
|
||||
return;
|
||||
}
|
||||
PKPayment *payment = [PKPayment new];
|
||||
PKPaymentToken *paymentToken = [PKPaymentToken new];
|
||||
NSString *tokenDataString = @"{\"version\":\"EC_v1\",\"data\":\"lF8RBjPvhc2GuhjEh7qFNijDJjxD/ApmGdQhgn8tpJcJDOwn2E1BkOfSvnhrR8BUGT6+zeBx8OocvalHZ5ba/WA/"
|
||||
@"tDxGhcEcOMp8sIJrXMVcJ6WqT5P1ZY+utmdORhxyH4nUw2wuEY4lAE7/GtEU/RNDhaKx/"
|
||||
@"m93l0oLlk84qD1ynTA5JP3gjkdX+RK23iCAZDScXCcCU0OnYlJV8sDyf3+8hIo0gpN43AxoY6N1xAsVbGsO4ZjSCahaXbgt0egFug3s7Fyt9W4uzu07SKKCA2+"
|
||||
@"DNZeZeerefpN1d1YbiCNlxFmffZKLCGdFERc7Ci3+yrHWWnYhKdQh8FeKCiiAvY5gbZJgQ91lNumCuP1IkHdHqxYI0qFk9c2R6KStJDtoUbVEYbxwnGdEJJPiMPjuKlgi7E+"
|
||||
@"LlBdXiREmlz4u1EA=\",\"signature\":"
|
||||
@"\"MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCAMIID4jCCA4igAwIBAgIIJEPyqAad9XcwCgYIKoZIzj0EAwIwejEuMCwGA1UEAwwlQXBwbGUgQX"
|
||||
@"BwbGljYXRpb24gSW50ZWdyYXRpb24gQ0EgLSBHMzEmMCQGA1UECwwdQXBwbGUgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTMB4XDTE0MD"
|
||||
@"kyNTIyMDYxMVoXDTE5MDkyNDIyMDYxMVowXzElMCMGA1UEAwwcZWNjLXNtcC1icm9rZXItc2lnbl9VQzQtUFJPRDEUMBIGA1UECwwLaU9TIFN5c3RlbXMxEzARBgNVBAoMCkFwcGxlIEluYy4xCz"
|
||||
@"AJBgNVBAYTAlVTMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEwhV37evWx7Ihj2jdcJChIY3HsL1vLCg9hGCV2Ur0pUEbg0IO2BHzQH6DMx8cVMP36zIg1rrV1O/"
|
||||
@"0komJPnwPE6OCAhEwggINMEUGCCsGAQUFBwEBBDkwNzA1BggrBgEFBQcwAYYpaHR0cDovL29jc3AuYXBwbGUuY29tL29jc3AwNC1hcHBsZWFpY2EzMDEwHQYDVR0OBBYEFJRX22/"
|
||||
@"VdIGGiYl2L35XhQfnm1gkMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUI/JJxE+T5O8n5sT2KGw/orv9LkswggEdBgNVHSAEggEUMIIBEDCCAQwGCSqGSIb3Y2QFATCB/"
|
||||
@"jCBwwYIKwYBBQUHAgIwgbYMgbNSZWxpYW5jZSBvbiB0aGlzIGNlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFyZ"
|
||||
@"CB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRlIHBvbGljeSBhbmQgY2VydGlmaWNhdGlvbiBwcmFjdGljZSBzdGF0ZW1lbnRzLjA2BggrBgEFBQcCARYqaHR0cDovL3d3d"
|
||||
@"y5hcHBsZS5jb20vY2VydGlmaWNhdGVhdXRob3JpdHkvMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwuYXBwbGUuY29tL2FwcGxlYWljYTMuY3JsMA4GA1UdDwEB/"
|
||||
@"wQEAwIHgDAPBgkqhkiG92NkBh0EAgUAMAoGCCqGSM49BAMCA0gAMEUCIHKKnw+Soyq5mXQr1V62c0BXKpaHodYu9TWXEPUWPpbpAiEAkTecfW6+"
|
||||
@"W5l0r0ADfzTCPq2YtbS39w01XIayqBNy8bEwggLuMIICdaADAgECAghJbS+/"
|
||||
@"OpjalzAKBggqhkjOPQQDAjBnMRswGQYDVQQDDBJBcHBsZSBSb290IENBIC0gRzMxJjAkBgNVBAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRMwEQYDVQQKDApBcHBsZSBJbmMuMQsw"
|
||||
@"CQYDVQQGEwJVUzAeFw0xNDA1MDYyMzQ2MzBaFw0yOTA1MDYyMzQ2MzBaMHoxLjAsBgNVBAMMJUFwcGxlIEFwcGxpY2F0aW9uIEludGVncmF0aW9uIENBIC0gRzMxJjAkBgNVBAsMHUFwcGxlIENl"
|
||||
@"cnRpZmljYXRpb24gQXV0aG9yaXR5MRMwEQYDVQQKDApBcHBsZSBJbmMuMQswCQYDVQQGEwJVUzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABPAXEYQZ12SF1RpeJYEHduiAou/"
|
||||
@"ee65N4I38S5PhM1bVZls1riLQl3YNIk57ugj9dhfOiMt2u2ZwvsjoKYT/"
|
||||
@"VEWjgfcwgfQwRgYIKwYBBQUHAQEEOjA4MDYGCCsGAQUFBzABhipodHRwOi8vb2NzcC5hcHBsZS5jb20vb2NzcDA0LWFwcGxlcm9vdGNhZzMwHQYDVR0OBBYEFCPyScRPk+TvJ+bE9ihsP6K7/"
|
||||
@"S5LMA8GA1UdEwEB/"
|
||||
@"wQFMAMBAf8wHwYDVR0jBBgwFoAUu7DeoVgziJqkipnevr3rr9rLJKswNwYDVR0fBDAwLjAsoCqgKIYmaHR0cDovL2NybC5hcHBsZS5jb20vYXBwbGVyb290Y2FnMy5jcmwwDgYDVR0PAQH/"
|
||||
@"BAQDAgEGMBAGCiqGSIb3Y2QGAg4EAgUAMAoGCCqGSM49BAMCA2cAMGQCMDrPcoNRFpmxhvs1w1bKYr/0F+3ZD3VNoo6+8ZyBXkK3ifiY95tZn5jVQQ2PnenC/gIwMi3VRCGwowV3bF3zODuQZ/"
|
||||
@"0XfCwhbZZPxnJpghJvVPh6fRuZy5sJiSFhBpkPCZIdAAAxggFeMIIBWgIBATCBhjB6MS4wLAYDVQQDDCVBcHBsZSBBcHBsaWNhdGlvbiBJbnRlZ3JhdGlvbiBDQSAtIEczMSYwJAYDVQQLDB1BcH"
|
||||
@"BsZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMCCCRD8qgGnfV3MA0GCWCGSAFlAwQCAQUAoGkwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQ"
|
||||
@"EHATAcBgkqhkiG9w0BCQUxDxcNMTQxMjIyMDIxMzQyWjAvBgkqhkiG9w0BCQQxIgQgUak8LCvAswLOnY2vlZf/"
|
||||
@"iG3q04omAr3zV8YTtqvORGYwCgYIKoZIzj0EAwIERjBEAiAuPXMqEQqiTjYadOAvNmohP2yquB4owoQNjuAETkFXMAIgcH6zOxnbTTFmlEocqMztWR+L6OVBH6iTPIFMBNPcq6gAAAAAAAA=\","
|
||||
@"\"header\":{\"transactionId\":\"a530c7d68b6a69791d8864df2646c8aa3d09d33b56d8f8162ab23e1b26afe5e9\",\"ephemeralPublicKey\":"
|
||||
@"\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEhKpIc6wTNQGy39bHM0a0qziDb20jMBFZT9XKSdjGULpDGRdyil6MLwMyIf3lQxaV/"
|
||||
@"P7CQztw28IvYozvKvjBPQ==\",\"publicKeyHash\":\"yRcyn7njT6JL3AY9nmg0KD/xm/ch7gW1sGl2OuEucZY=\"}}";
|
||||
NSData *data = [tokenDataString dataUsingEncoding:NSUTF8StringEncoding];
|
||||
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wundeclared-selector"
|
||||
[paymentToken performSelector:@selector(setPaymentData:) withObject:data];
|
||||
[payment performSelector:@selector(setToken:) withObject:paymentToken];
|
||||
#pragma clang diagnostic pop
|
||||
|
||||
PKPayment *payment = [STPFixtures applePayPayment];
|
||||
STPAPIClient *client = [[STPAPIClient alloc] initWithPublishableKey:@"pk_test_vOo1umqsYxSrP5UXfOeL3ecm"];
|
||||
|
||||
XCTestExpectation *expectation = [self expectationWithDescription:@"Apple pay token creation"];
|
||||
|
|
|
@ -8,10 +8,21 @@
|
|||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <OCMock/OCMock.h>
|
||||
#import <PassKit/PassKit.h>
|
||||
#import <Stripe/Stripe.h>
|
||||
|
||||
@interface STPFixtures : NSObject
|
||||
|
||||
/**
|
||||
A PKPaymentObject with test payment data.
|
||||
*/
|
||||
+ (PKPayment *)applePayPayment;
|
||||
|
||||
/**
|
||||
A BankAccountParams object with all fields filled.
|
||||
*/
|
||||
+ (STPBankAccountParams *)bankAccountParams;
|
||||
|
||||
/**
|
||||
A CardParams object with a valid number, expMonth, expYear, and cvc.
|
||||
*/
|
||||
|
|
|
@ -11,6 +11,17 @@
|
|||
|
||||
@implementation STPFixtures
|
||||
|
||||
+ (STPBankAccountParams *)bankAccountParams {
|
||||
STPBankAccountParams *bankParams = [STPBankAccountParams new];
|
||||
// https://stripe.com/docs/testing#account-numbers
|
||||
bankParams.accountNumber = @"000123456789";
|
||||
bankParams.routingNumber = @"110000000";
|
||||
bankParams.country = @"US";
|
||||
bankParams.currency = @"usd";
|
||||
bankParams.accountNumber = @"Jenny Rosen";
|
||||
return bankParams;
|
||||
}
|
||||
|
||||
+ (STPCardParams *)cardParams {
|
||||
STPCardParams *cardParams = [STPCardParams new];
|
||||
cardParams.number = @"4242424242424242";
|
||||
|
@ -56,4 +67,48 @@
|
|||
return mockAPIAdapter;
|
||||
}
|
||||
|
||||
+ (PKPayment *)applePayPayment {
|
||||
PKPayment *payment = [PKPayment new];
|
||||
PKPaymentToken *paymentToken = [PKPaymentToken new];
|
||||
NSString *tokenDataString = @"{\"version\":\"EC_v1\",\"data\":\"lF8RBjPvhc2GuhjEh7qFNijDJjxD/ApmGdQhgn8tpJcJDOwn2E1BkOfSvnhrR8BUGT6+zeBx8OocvalHZ5ba/WA/"
|
||||
@"tDxGhcEcOMp8sIJrXMVcJ6WqT5P1ZY+utmdORhxyH4nUw2wuEY4lAE7/GtEU/RNDhaKx/"
|
||||
@"m93l0oLlk84qD1ynTA5JP3gjkdX+RK23iCAZDScXCcCU0OnYlJV8sDyf3+8hIo0gpN43AxoY6N1xAsVbGsO4ZjSCahaXbgt0egFug3s7Fyt9W4uzu07SKKCA2+"
|
||||
@"DNZeZeerefpN1d1YbiCNlxFmffZKLCGdFERc7Ci3+yrHWWnYhKdQh8FeKCiiAvY5gbZJgQ91lNumCuP1IkHdHqxYI0qFk9c2R6KStJDtoUbVEYbxwnGdEJJPiMPjuKlgi7E+"
|
||||
@"LlBdXiREmlz4u1EA=\",\"signature\":"
|
||||
@"\"MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCAMIID4jCCA4igAwIBAgIIJEPyqAad9XcwCgYIKoZIzj0EAwIwejEuMCwGA1UEAwwlQXBwbGUgQX"
|
||||
@"BwbGljYXRpb24gSW50ZWdyYXRpb24gQ0EgLSBHMzEmMCQGA1UECwwdQXBwbGUgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTMB4XDTE0MD"
|
||||
@"kyNTIyMDYxMVoXDTE5MDkyNDIyMDYxMVowXzElMCMGA1UEAwwcZWNjLXNtcC1icm9rZXItc2lnbl9VQzQtUFJPRDEUMBIGA1UECwwLaU9TIFN5c3RlbXMxEzARBgNVBAoMCkFwcGxlIEluYy4xCz"
|
||||
@"AJBgNVBAYTAlVTMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEwhV37evWx7Ihj2jdcJChIY3HsL1vLCg9hGCV2Ur0pUEbg0IO2BHzQH6DMx8cVMP36zIg1rrV1O/"
|
||||
@"0komJPnwPE6OCAhEwggINMEUGCCsGAQUFBwEBBDkwNzA1BggrBgEFBQcwAYYpaHR0cDovL29jc3AuYXBwbGUuY29tL29jc3AwNC1hcHBsZWFpY2EzMDEwHQYDVR0OBBYEFJRX22/"
|
||||
@"VdIGGiYl2L35XhQfnm1gkMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUI/JJxE+T5O8n5sT2KGw/orv9LkswggEdBgNVHSAEggEUMIIBEDCCAQwGCSqGSIb3Y2QFATCB/"
|
||||
@"jCBwwYIKwYBBQUHAgIwgbYMgbNSZWxpYW5jZSBvbiB0aGlzIGNlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFyZ"
|
||||
@"CB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRlIHBvbGljeSBhbmQgY2VydGlmaWNhdGlvbiBwcmFjdGljZSBzdGF0ZW1lbnRzLjA2BggrBgEFBQcCARYqaHR0cDovL3d3d"
|
||||
@"y5hcHBsZS5jb20vY2VydGlmaWNhdGVhdXRob3JpdHkvMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwuYXBwbGUuY29tL2FwcGxlYWljYTMuY3JsMA4GA1UdDwEB/"
|
||||
@"wQEAwIHgDAPBgkqhkiG92NkBh0EAgUAMAoGCCqGSM49BAMCA0gAMEUCIHKKnw+Soyq5mXQr1V62c0BXKpaHodYu9TWXEPUWPpbpAiEAkTecfW6+"
|
||||
@"W5l0r0ADfzTCPq2YtbS39w01XIayqBNy8bEwggLuMIICdaADAgECAghJbS+/"
|
||||
@"OpjalzAKBggqhkjOPQQDAjBnMRswGQYDVQQDDBJBcHBsZSBSb290IENBIC0gRzMxJjAkBgNVBAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRMwEQYDVQQKDApBcHBsZSBJbmMuMQsw"
|
||||
@"CQYDVQQGEwJVUzAeFw0xNDA1MDYyMzQ2MzBaFw0yOTA1MDYyMzQ2MzBaMHoxLjAsBgNVBAMMJUFwcGxlIEFwcGxpY2F0aW9uIEludGVncmF0aW9uIENBIC0gRzMxJjAkBgNVBAsMHUFwcGxlIENl"
|
||||
@"cnRpZmljYXRpb24gQXV0aG9yaXR5MRMwEQYDVQQKDApBcHBsZSBJbmMuMQswCQYDVQQGEwJVUzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABPAXEYQZ12SF1RpeJYEHduiAou/"
|
||||
@"ee65N4I38S5PhM1bVZls1riLQl3YNIk57ugj9dhfOiMt2u2ZwvsjoKYT/"
|
||||
@"VEWjgfcwgfQwRgYIKwYBBQUHAQEEOjA4MDYGCCsGAQUFBzABhipodHRwOi8vb2NzcC5hcHBsZS5jb20vb2NzcDA0LWFwcGxlcm9vdGNhZzMwHQYDVR0OBBYEFCPyScRPk+TvJ+bE9ihsP6K7/"
|
||||
@"S5LMA8GA1UdEwEB/"
|
||||
@"wQFMAMBAf8wHwYDVR0jBBgwFoAUu7DeoVgziJqkipnevr3rr9rLJKswNwYDVR0fBDAwLjAsoCqgKIYmaHR0cDovL2NybC5hcHBsZS5jb20vYXBwbGVyb290Y2FnMy5jcmwwDgYDVR0PAQH/"
|
||||
@"BAQDAgEGMBAGCiqGSIb3Y2QGAg4EAgUAMAoGCCqGSM49BAMCA2cAMGQCMDrPcoNRFpmxhvs1w1bKYr/0F+3ZD3VNoo6+8ZyBXkK3ifiY95tZn5jVQQ2PnenC/gIwMi3VRCGwowV3bF3zODuQZ/"
|
||||
@"0XfCwhbZZPxnJpghJvVPh6fRuZy5sJiSFhBpkPCZIdAAAxggFeMIIBWgIBATCBhjB6MS4wLAYDVQQDDCVBcHBsZSBBcHBsaWNhdGlvbiBJbnRlZ3JhdGlvbiBDQSAtIEczMSYwJAYDVQQLDB1BcH"
|
||||
@"BsZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMCCCRD8qgGnfV3MA0GCWCGSAFlAwQCAQUAoGkwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQ"
|
||||
@"EHATAcBgkqhkiG9w0BCQUxDxcNMTQxMjIyMDIxMzQyWjAvBgkqhkiG9w0BCQQxIgQgUak8LCvAswLOnY2vlZf/"
|
||||
@"iG3q04omAr3zV8YTtqvORGYwCgYIKoZIzj0EAwIERjBEAiAuPXMqEQqiTjYadOAvNmohP2yquB4owoQNjuAETkFXMAIgcH6zOxnbTTFmlEocqMztWR+L6OVBH6iTPIFMBNPcq6gAAAAAAAA=\","
|
||||
@"\"header\":{\"transactionId\":\"a530c7d68b6a69791d8864df2646c8aa3d09d33b56d8f8162ab23e1b26afe5e9\",\"ephemeralPublicKey\":"
|
||||
@"\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEhKpIc6wTNQGy39bHM0a0qziDb20jMBFZT9XKSdjGULpDGRdyil6MLwMyIf3lQxaV/"
|
||||
@"P7CQztw28IvYozvKvjBPQ==\",\"publicKeyHash\":\"yRcyn7njT6JL3AY9nmg0KD/xm/ch7gW1sGl2OuEucZY=\"}}";
|
||||
NSData *data = [tokenDataString dataUsingEncoding:NSUTF8StringEncoding];
|
||||
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wundeclared-selector"
|
||||
[paymentToken performSelector:@selector(setPaymentData:) withObject:data];
|
||||
[payment performSelector:@selector(setToken:) withObject:paymentToken];
|
||||
#pragma clang diagnostic pop
|
||||
return payment;
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
Loading…
Reference in New Issue