Commit 246200b8 by Dima Bart

Require a valid checkout token to complete payment, otherwise throw.

parent 67665b95
...@@ -444,27 +444,18 @@ NSString *const BUYClientCustomerAccessToken = @"X-Shopify-Customer-Access-Token ...@@ -444,27 +444,18 @@ NSString *const BUYClientCustomerAccessToken = @"X-Shopify-Customer-Access-Token
- (NSURLSessionDataTask*)completeCheckout:(BUYCheckout *)checkout paymentToken:(id<BUYPaymentToken>)paymentToken completion:(BUYDataCheckoutBlock)block - (NSURLSessionDataTask*)completeCheckout:(BUYCheckout *)checkout paymentToken:(id<BUYPaymentToken>)paymentToken completion:(BUYDataCheckoutBlock)block
{ {
NSAssert(checkout, @"Failed to complete checkout. Checkout must not be nil"); NSAssert(checkout, @"Failed to complete checkout. Checkout must not be nil");
NSAssert([checkout hasToken], @"Failed to complete checkout. Checkout must have a valid token associated with it/");
NSURLSessionDataTask *task = nil;
if ([checkout hasToken]) {
BOOL isFree = (checkout.paymentDue && checkout.paymentDue.floatValue == 0);
NSData *data = nil; NSData *data = nil;
if (paymentToken) { if (paymentToken) {
data = [NSJSONSerialization dataWithJSONObject:[paymentToken jsonRepresentation] options:0 error:nil]; data = [NSJSONSerialization dataWithJSONObject:[paymentToken jsonRepresentation] options:0 error:nil];
} }
if (data || isFree) { BOOL isFree = (checkout.paymentDue && checkout.paymentDue.floatValue == 0);
task = [self checkoutCompletionRequestWithCheckout:checkout body:data completion:block];
}
} else { NSAssert(data || isFree, @"Failed to complete checkout. Checkout must have a payment token or have a payment value equal to $0.00");
block(nil, [NSError errorWithDomain:kShopifyError code:BUYShopifyError_InvalidCheckoutObject userInfo:nil]);
}
return task; return [self checkoutCompletionRequestWithCheckout:checkout body:data completion:block];
} }
- (NSURLSessionDataTask *)checkoutCompletionRequestWithCheckout:(BUYCheckout *)checkout body:(NSData *)body completion:(BUYDataCheckoutBlock)block - (NSURLSessionDataTask *)checkoutCompletionRequestWithCheckout:(BUYCheckout *)checkout body:(NSData *)body completion:(BUYDataCheckoutBlock)block
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment