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:)
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)
createToken(
withParameters: params,
@ -157,17 +157,17 @@ extension STPAPIClient {
}
@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)
var payload: [String: Any] = [:]
payload["pk_token"] = paymentString
if let billingContact = payment.billingContact {
payload["card"] = self.addressParams(from: billingContact)
payload["card"] = STPAPIClient.addressParams(from: billingContact)
}
assert(
!((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."
)

View File

@ -44,7 +44,7 @@
XCTAssertEqualObjects([STPAnalyticsClient tokenTypeFromParameters:bankDict], @"bank_account");
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");
}

View File

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