Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
shopify_iossdk
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
cemarose
shopify_iossdk
Commits
974a0367
Commit
974a0367
authored
May 31, 2016
by
Dima Bart
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Convert completeCheckout operation and internal calls to use token.
parent
7c71837f
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
26 additions
and
32 deletions
+26
-32
BUYClientTest.m
Mobile Buy SDK/Mobile Buy SDK Tests/BUYClientTest.m
+1
-3
BUYIntegrationTest.m
Mobile Buy SDK/Mobile Buy SDK Tests/BUYIntegrationTest.m
+1
-1
BUYClient+Checkout.h
Mobile Buy SDK/Mobile Buy SDK/Data/BUYClient+Checkout.h
+3
-3
BUYClient+Checkout.m
Mobile Buy SDK/Mobile Buy SDK/Data/BUYClient+Checkout.m
+6
-9
BUYClient+Internal.h
Mobile Buy SDK/Mobile Buy SDK/Data/BUYClient+Internal.h
+1
-1
BUYCheckoutOperation.h
... Buy SDK/Mobile Buy SDK/Operations/BUYCheckoutOperation.h
+2
-2
BUYCheckoutOperation.m
... Buy SDK/Mobile Buy SDK/Operations/BUYCheckoutOperation.m
+11
-12
BUYApplePayAuthorizationDelegate.m
...K/Mobile Buy SDK/Utils/BUYApplePayAuthorizationDelegate.m
+1
-1
No files found.
Mobile Buy SDK/Mobile Buy SDK Tests/BUYClientTest.m
View file @
974a0367
...
...
@@ -126,9 +126,7 @@ NSString * const BUYFakeCustomerToken = @"dsfasdgafdg";
-
(
void
)
testCheckoutPaymentWithOnlyGiftCard
{
BUYCheckout
*
checkout
=
[[
BUYCheckout
alloc
]
initWithModelManager
:
self
.
client
.
modelManager
JSONDictionary
:@{
@"token"
:
@"abcdef"
,
@"payment_due"
:
@0
}];
BUYOperation
*
task
=
[
self
.
client
completeCheckout
:
checkout
paymentToken
:
nil
completion
:^
(
BUYCheckout
*
checkout
,
NSError
*
error
)
{}];
BUYOperation
*
task
=
[
self
.
client
completeCheckoutWithToken
:
@"abcdef"
paymentToken
:
nil
completion
:^
(
BUYCheckout
*
checkout
,
NSError
*
error
)
{}];
XCTAssertNotNil
(
task
);
}
...
...
Mobile Buy SDK/Mobile Buy SDK Tests/BUYIntegrationTest.m
View file @
974a0367
...
...
@@ -241,7 +241,7 @@
}];
XCTestExpectation
*
expectation
=
[
self
expectationWithDescription
:
NSStringFromSelector
(
_cmd
)];
[
self
.
client
completeCheckout
:
_checkout
paymentToken
:
paymentToken
completion
:^
(
BUYCheckout
*
returnedCheckout
,
NSError
*
error
)
{
[
self
.
client
completeCheckout
WithToken
:
_checkout
.
token
paymentToken
:
paymentToken
completion
:^
(
BUYCheckout
*
returnedCheckout
,
NSError
*
error
)
{
XCTAssertNil
(
error
);
XCTAssertNotNil
(
returnedCheckout
);
XCTAssertNotNil
(
returnedCheckout
.
order
);
...
...
Mobile Buy SDK/Mobile Buy SDK/Data/BUYClient+Checkout.h
View file @
974a0367
...
...
@@ -119,20 +119,20 @@ typedef void (^BUYDataGiftCardBlock)(BUYGiftCard * _Nullable giftCard, NSError *
-
(
BUYRequestOperation
*
)
getCheckoutWithToken
:(
NSString
*
)
checkoutToken
completion
:(
BUYDataCheckoutBlock
)
block
;
/**
* Finalizes the BUYCheckout and charges the payment provider (ex: Credit Card, Apple Pay, etc).
* Finalizes the BUYCheckout a
ssociated with the token a
nd charges the payment provider (ex: Credit Card, Apple Pay, etc).
* This enqueues a completion job on Shopify and returns immediately.
* You must get the job's status by calling checkCompletionStatusOfCheckout:block
*
* Note: There's no guarantee that the BUYCheckout returned will be the same as the one that is passed in.
* We recommended using the BUYCheckout returned in the block.
*
* @param checkout
The BUYCheckout to complete
* @param checkout
Token The checkout token for which to complete checkout. May be nil if the total checkout amount is equal to $0.00
* @param paymentToken Opaque payment token object. May be nil if the total checkout amount is equal to $0.00
* @param block (^BUYDataCheckoutBlock)(BUYCheckout *checkout, NSError *error);
*
* @return The associated BUYOperation
*/
-
(
BUYOperation
*
)
completeCheckout
:(
BUYCheckout
*
)
checkout
paymentToken
:(
_Nullable
id
<
BUYPaymentToken
>
)
paymentToken
completion
:(
BUYDataCheckoutBlock
)
block
;
-
(
BUYOperation
*
)
completeCheckout
WithToken
:(
nullable
NSString
*
)
checkoutToken
paymentToken
:(
_Nullable
id
<
BUYPaymentToken
>
)
paymentToken
completion
:(
BUYDataCheckoutBlock
)
block
;
/**
* Retrieve the status of a checkout with token. This checks the status of the current payment processing job for the provided checkout.
...
...
Mobile Buy SDK/Mobile Buy SDK/Data/BUYClient+Checkout.m
View file @
974a0367
...
...
@@ -92,8 +92,9 @@
}];
}
-
(
BUYOperation
*
)
completeCheckout
:(
BUYCheckout
*
)
checkout
paymentToken
:(
id
<
BUYPaymentToken
>
)
paymentToken
completion
:(
BUYDataCheckoutBlock
)
block
{
BUYCheckoutOperation
*
operation
=
[[
BUYCheckoutOperation
alloc
]
initWithClient
:
self
checkout
:
checkout
token
:
paymentToken
completion
:
block
];
-
(
BUYOperation
*
)
completeCheckoutWithToken
:(
NSString
*
)
checkoutToken
paymentToken
:(
id
<
BUYPaymentToken
>
)
paymentToken
completion
:(
BUYDataCheckoutBlock
)
block
{
BUYCheckoutOperation
*
operation
=
[[
BUYCheckoutOperation
alloc
]
initWithClient
:
self
checkoutToken
:
checkoutToken
token
:
paymentToken
completion
:
block
];
[
self
startOperation
:
operation
];
return
operation
;
}
...
...
@@ -123,15 +124,11 @@
#pragma mark - Checkout Helpers -
-
(
BUYRequestOperation
*
)
beginCheckout
:(
BUYCheckout
*
)
checkout
paymentToken
:(
id
<
BUYPaymentToken
>
)
paymentToken
completion
:(
BUYDataCheckoutBlock
)
block
-
(
BUYRequestOperation
*
)
beginCheckout
WithToken
:(
NSString
*
)
checkoutToken
paymentToken
:(
id
<
BUYPaymentToken
>
)
paymentToken
completion
:(
BUYDataCheckoutBlock
)
block
{
BUYAssertCheckout
(
checkout
);
BOOL
isFree
=
(
checkout
.
paymentDue
&&
checkout
.
paymentDue
.
floatValue
==
0
);
BUYAssert
(
paymentToken
||
isFree
,
@"Failed to complete checkout. Checkout must have a payment token or have a payment value equal to $0.00"
);
BUYAssertToken
(
checkoutToken
);
NSURL
*
route
=
[
self
urlForCheckoutsCompletionWithToken
:
checkout
.
t
oken
];
NSURL
*
route
=
[
self
urlForCheckoutsCompletionWithToken
:
checkout
T
oken
];
return
[
self
postRequestForURL
:
route
object
:[
paymentToken
JSONDictionary
]
start
:
NO
completionHandler
:^
(
NSDictionary
*
json
,
NSHTTPURLResponse
*
response
,
NSError
*
error
)
{
[
self
handleCheckoutResponse
:
json
error
:
error
block
:
block
];
}];
...
...
Mobile Buy SDK/Mobile Buy SDK/Data/BUYClient+Internal.h
View file @
974a0367
...
...
@@ -62,7 +62,7 @@ typedef void (^BUYClientRequestJSONCompletion)(NSDictionary *json, NSHTTPURLResp
@interface
BUYClient
(
PrivateCheckout
)
-
(
BUYRequestOperation
*
)
beginCheckout
:(
BUYCheckout
*
)
checkout
paymentToken
:(
id
<
BUYPaymentToken
>
)
paymentToken
completion
:(
BUYDataCheckoutBlock
)
block
;
-
(
BUYRequestOperation
*
)
beginCheckout
WithToken
:(
NSString
*
)
checkoutToken
paymentToken
:(
id
<
BUYPaymentToken
>
)
paymentToken
completion
:(
BUYDataCheckoutBlock
)
block
;
-
(
BUYRequestOperation
*
)
getCompletionStatusOfCheckoutWithToken
:(
NSString
*
)
token
start
:(
BOOL
)
start
completion
:(
BUYDataStatusBlock
)
block
;
-
(
BUYRequestOperation
*
)
getCheckoutWithToken
:(
NSString
*
)
checkoutToken
start
:(
BOOL
)
start
completion
:(
BUYDataCheckoutBlock
)
block
;
...
...
Mobile Buy SDK/Mobile Buy SDK/Operations/BUYCheckoutOperation.h
View file @
974a0367
...
...
@@ -38,8 +38,8 @@ typedef void (^BUYCheckoutOperationCompletion)(BUYCheckout * _Nullable checkout,
@property
(
strong
,
nonatomic
,
readonly
,
nonnull
)
BUYClient
*
client
;
+
(
instancetype
)
operationWithClient
:(
BUYClient
*
)
client
checkout
:(
BUYCheckout
*
)
checkout
token
:(
id
<
BUYPaymentToken
>
)
token
completion
:(
BUYCheckoutOperationCompletion
)
completion
;
-
(
instancetype
)
initWithClient
:(
BUYClient
*
)
client
checkout
:(
BUYCheckout
*
)
checkout
token
:(
id
<
BUYPaymentToken
>
)
token
completion
:(
BUYCheckoutOperationCompletion
)
completion
;
+
(
instancetype
)
operationWithClient
:(
BUYClient
*
)
client
checkout
Token
:(
NSString
*
)
checkoutToken
token
:(
id
<
BUYPaymentToken
>
)
token
completion
:(
BUYCheckoutOperationCompletion
)
completion
;
-
(
instancetype
)
initWithClient
:(
BUYClient
*
)
client
checkout
Token
:(
NSString
*
)
checkoutToken
token
:(
id
<
BUYPaymentToken
>
)
token
completion
:(
BUYCheckoutOperationCompletion
)
completion
;
@end
...
...
Mobile Buy SDK/Mobile Buy SDK/Operations/BUYCheckoutOperation.m
View file @
974a0367
...
...
@@ -28,12 +28,11 @@
#import "BUYClient+Checkout.h"
#import "BUYClient+Internal.h"
#import "BUYPaymentToken.h"
#import "BUYCheckout.h"
#import "BUYRequestOperation.h"
@interface
BUYCheckoutOperation
()
@property
(
strong
,
nonatomic
,
readonly
)
BUYCheckout
*
checkout
;
@property
(
strong
,
nonatomic
,
readonly
)
NSString
*
checkoutToken
;
@property
(
strong
,
nonatomic
,
readonly
)
id
<
BUYPaymentToken
>
token
;
@property
(
strong
,
nonatomic
,
readonly
)
BUYCheckoutOperationCompletion
completion
;
...
...
@@ -45,19 +44,19 @@
#pragma mark - Init -
+
(
instancetype
)
operationWithClient
:(
BUYClient
*
)
client
checkout
:(
BUYCheckout
*
)
checkout
token
:(
id
<
BUYPaymentToken
>
)
token
completion
:(
BUYCheckoutOperationCompletion
)
completion
+
(
instancetype
)
operationWithClient
:(
BUYClient
*
)
client
checkout
Token
:(
NSString
*
)
checkoutToken
token
:(
id
<
BUYPaymentToken
>
)
token
completion
:(
BUYCheckoutOperationCompletion
)
completion
{
return
[[[
self
class
]
alloc
]
initWithClient
:
client
checkout
:
checkout
token
:
token
completion
:
completion
];
return
[[[
self
class
]
alloc
]
initWithClient
:
client
checkout
Token
:
checkoutToken
token
:
token
completion
:
completion
];
}
-
(
instancetype
)
initWithClient
:(
BUYClient
*
)
client
checkout
:(
BUYCheckout
*
)
checkout
token
:(
id
<
BUYPaymentToken
>
)
token
completion
:(
BUYCheckoutOperationCompletion
)
completion
-
(
instancetype
)
initWithClient
:(
BUYClient
*
)
client
checkout
Token
:(
NSString
*
)
checkoutToken
token
:(
id
<
BUYPaymentToken
>
)
token
completion
:(
BUYCheckoutOperationCompletion
)
completion
{
self
=
[
super
init
];
if
(
self
)
{
_client
=
client
;
_
checkout
=
checkout
;
_
token
=
toke
n
;
_c
ompletion
=
completio
n
;
_client
=
client
;
_
token
=
token
;
_
completion
=
completio
n
;
_c
heckoutToken
=
checkoutToke
n
;
}
return
self
;
}
...
...
@@ -138,7 +137,7 @@
-
(
BUYRequestOperation
*
)
createBeginOperation
{
return
[
self
.
client
beginCheckout
:
self
.
checkout
paymentToken
:
self
.
token
completion
:^
(
BUYCheckout
*
checkout
,
NSError
*
error
)
{
return
[
self
.
client
beginCheckout
WithToken
:
self
.
checkoutToken
paymentToken
:
self
.
token
completion
:^
(
BUYCheckout
*
checkout
,
NSError
*
error
)
{
if
(
!
checkout
)
{
[
self
finishWithError
:
error
];
}
...
...
@@ -147,7 +146,7 @@
-
(
BUYRequestOperation
*
)
createPollOperation
{
BUYRequestOperation
*
operation
=
[
self
.
client
getCompletionStatusOfCheckoutWithToken
:
self
.
checkout
.
t
oken
start
:
NO
completion
:^
(
BUYStatus
status
,
NSError
*
error
)
{
BUYRequestOperation
*
operation
=
[
self
.
client
getCompletionStatusOfCheckoutWithToken
:
self
.
checkout
T
oken
start
:
NO
completion
:^
(
BUYStatus
status
,
NSError
*
error
)
{
if
(
status
!=
BUYStatusComplete
)
{
[
self
finishWithError
:
error
];
}
...
...
@@ -161,7 +160,7 @@
-
(
BUYRequestOperation
*
)
createGetOperation
{
return
[
self
.
client
getCheckoutWithToken
:
self
.
checkout
.
t
oken
start
:
NO
completion
:^
(
BUYCheckout
*
checkout
,
NSError
*
error
)
{
return
[
self
.
client
getCheckoutWithToken
:
self
.
checkout
T
oken
start
:
NO
completion
:^
(
BUYCheckout
*
checkout
,
NSError
*
error
)
{
if
(
checkout
)
{
[
self
finishWithCheckout
:
checkout
];
}
else
{
...
...
Mobile Buy SDK/Mobile Buy SDK/Utils/BUYApplePayAuthorizationDelegate.m
View file @
974a0367
...
...
@@ -99,7 +99,7 @@ const NSTimeInterval PollDelay = 0.5;
id
<
BUYPaymentToken
>
token
=
[[
BUYApplePayToken
alloc
]
initWithPaymentToken
:
payment
.
token
];
//Now that the checkout is up to date, call complete.
[
self
.
client
completeCheckout
:
checkout
paymentToken
:
token
completion
:^
(
BUYCheckout
*
checkout
,
NSError
*
error
)
{
[
self
.
client
completeCheckout
WithToken
:
checkout
.
token
paymentToken
:
token
completion
:^
(
BUYCheckout
*
checkout
,
NSError
*
error
)
{
if
(
checkout
&&
error
==
nil
)
{
self
.
checkout
=
checkout
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment