Check the current API client's key in this assert, not the shared key.

This commit is contained in:
David Estes 2021-03-24 17:18:47 -07:00
parent 2de791d57a
commit e2456747eb
3 changed files with 5 additions and 6 deletions

View File

@ -17,7 +17,7 @@ extension STPAPIClient {
@objc(createTokenWithPayment:completion:) @objc(createTokenWithPayment:completion:)
public func createToken(with payment: PKPayment, completion: @escaping STPTokenCompletionBlock) public func createToken(with payment: PKPayment, completion: @escaping STPTokenCompletionBlock)
{ {
var params = STPAPIClient.parameters(for: payment) var params = parameters(for: payment)
STPTelemetryClient.shared.addTelemetryFields(toParams: &params) STPTelemetryClient.shared.addTelemetryFields(toParams: &params)
createToken( createToken(
withParameters: params, withParameters: params,
@ -157,17 +157,17 @@ extension STPAPIClient {
} }
@objc(parametersForPayment:) @objc(parametersForPayment:)
class func parameters(for payment: PKPayment) -> [String: Any] { func parameters(for payment: PKPayment) -> [String: Any] {
let paymentString = String(data: payment.token.paymentData, encoding: .utf8) let paymentString = String(data: payment.token.paymentData, encoding: .utf8)
var payload: [String: Any] = [:] var payload: [String: Any] = [:]
payload["pk_token"] = paymentString payload["pk_token"] = paymentString
if let billingContact = payment.billingContact { if let billingContact = payment.billingContact {
payload["card"] = self.addressParams(from: billingContact) payload["card"] = STPAPIClient.addressParams(from: billingContact)
} }
assert( assert(
!((paymentString?.count ?? 0) == 0 !((paymentString?.count ?? 0) == 0
&& STPAPIClient.shared.publishableKey?.hasPrefix("pk_live") ?? false), && self.publishableKey?.hasPrefix("pk_live") ?? false),
"The pk_token is empty. Using Apple Pay with an iOS Simulator while not in Stripe Test Mode will always fail." "The pk_token is empty. Using Apple Pay with an iOS Simulator while not in Stripe Test Mode will always fail."
) )

View File

@ -44,7 +44,7 @@
XCTAssertEqualObjects([STPAnalyticsClient tokenTypeFromParameters:bankDict], @"bank_account"); XCTAssertEqualObjects([STPAnalyticsClient tokenTypeFromParameters:bankDict], @"bank_account");
PKPayment *applePay = [STPFixtures applePayPayment]; PKPayment *applePay = [STPFixtures applePayPayment];
NSDictionary *applePayDict = [self addTelemetry:[STPAPIClient parametersForPayment:applePay]]; NSDictionary *applePayDict = [self addTelemetry:[[STPAPIClient sharedClient] parametersForPayment:applePay]];
XCTAssertEqualObjects([STPAnalyticsClient tokenTypeFromParameters:applePayDict], @"apple_pay"); XCTAssertEqualObjects([STPAnalyticsClient tokenTypeFromParameters:applePayDict], @"apple_pay");
} }

View File

@ -63,7 +63,6 @@ API_AVAILABLE(ios(13.0))
if (@available(iOS 13.0, *)) { if (@available(iOS 13.0, *)) {
STPApplePayContextFunctionalTestAPIClient *apiClient = [[STPApplePayContextFunctionalTestAPIClient alloc] initWithPublishableKey:STPTestingDefaultPublishableKey]; STPApplePayContextFunctionalTestAPIClient *apiClient = [[STPApplePayContextFunctionalTestAPIClient alloc] initWithPublishableKey:STPTestingDefaultPublishableKey];
apiClient.applePayContext = self.context; apiClient.applePayContext = self.context;
[[STPAPIClient sharedClient] setPublishableKey:STPTestingDefaultPublishableKey];
self.apiClient = apiClient; self.apiClient = apiClient;
} else { } else {
XCTSkip("Unsupported iOS version"); XCTSkip("Unsupported iOS version");