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
c502aa4c
Commit
c502aa4c
authored
9 years ago
by
Dima Bart
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Move BUYClient checkout API into category.
parent
be11d176
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
259 additions
and
421 deletions
+259
-421
project.pbxproj
Mobile Buy SDK/Mobile Buy SDK.xcodeproj/project.pbxproj
+18
-0
Buy.h
Mobile Buy SDK/Mobile Buy SDK/Buy.h
+1
-0
BUYClient+Checkout.h
Mobile Buy SDK/Mobile Buy SDK/Data/BUYClient+Checkout.h
+227
-0
BUYClient+Checkout.m
Mobile Buy SDK/Mobile Buy SDK/Data/BUYClient+Checkout.m
+0
-0
BUYClient+Customers.h
Mobile Buy SDK/Mobile Buy SDK/Data/BUYClient+Customers.h
+1
-1
BUYClient+Customers.m
Mobile Buy SDK/Mobile Buy SDK/Data/BUYClient+Customers.m
+1
-1
BUYClient+Internal.h
Mobile Buy SDK/Mobile Buy SDK/Data/BUYClient+Internal.h
+5
-1
BUYClient.h
Mobile Buy SDK/Mobile Buy SDK/Data/BUYClient.h
+1
-198
BUYClient.m
Mobile Buy SDK/Mobile Buy SDK/Data/BUYClient.m
+1
-219
Buy.h
Mobile Buy SDK/Mobile Buy SDK/Static Framework/Buy.h
+1
-0
BUYApplePayHelpers.m
Mobile Buy SDK/Mobile Buy SDK/Utils/BUYApplePayHelpers.m
+1
-1
BUYStoreViewController.m
.../Mobile Buy SDK/View Controllers/BUYStoreViewController.m
+1
-0
BUYViewController.m
...y SDK/Mobile Buy SDK/View Controllers/BUYViewController.m
+1
-0
No files found.
Mobile Buy SDK/Mobile Buy SDK.xcodeproj/project.pbxproj
View file @
c502aa4c
...
@@ -347,6 +347,10 @@
...
@@ -347,6 +347,10 @@
9A0B0C6D1CEB4D300037D68F
/* BUYClient+Storefront.h in Headers */
=
{
isa
=
PBXBuildFile
;
fileRef
=
9A0B0C6A1CEB4D300037D68F
/* BUYClient+Storefront.h */
;
settings
=
{
ATTRIBUTES
=
(
Public
,
);
};
};
9A0B0C6D1CEB4D300037D68F
/* BUYClient+Storefront.h in Headers */
=
{
isa
=
PBXBuildFile
;
fileRef
=
9A0B0C6A1CEB4D300037D68F
/* BUYClient+Storefront.h */
;
settings
=
{
ATTRIBUTES
=
(
Public
,
);
};
};
9A0B0C6E1CEB4D300037D68F
/* BUYClient+Storefront.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
9A0B0C6B1CEB4D300037D68F
/* BUYClient+Storefront.m */
;
};
9A0B0C6E1CEB4D300037D68F
/* BUYClient+Storefront.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
9A0B0C6B1CEB4D300037D68F
/* BUYClient+Storefront.m */
;
};
9A0B0C6F1CEB4D300037D68F
/* BUYClient+Storefront.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
9A0B0C6B1CEB4D300037D68F
/* BUYClient+Storefront.m */
;
};
9A0B0C6F1CEB4D300037D68F
/* BUYClient+Storefront.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
9A0B0C6B1CEB4D300037D68F
/* BUYClient+Storefront.m */
;
};
9A0B0C721CEB52B90037D68F
/* BUYClient+Checkout.h in Headers */
=
{
isa
=
PBXBuildFile
;
fileRef
=
9A0B0C701CEB52B90037D68F
/* BUYClient+Checkout.h */
;
settings
=
{
ATTRIBUTES
=
(
Public
,
);
};
};
9A0B0C731CEB52B90037D68F
/* BUYClient+Checkout.h in Headers */
=
{
isa
=
PBXBuildFile
;
fileRef
=
9A0B0C701CEB52B90037D68F
/* BUYClient+Checkout.h */
;
};
9A0B0C741CEB52B90037D68F
/* BUYClient+Checkout.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
9A0B0C711CEB52B90037D68F
/* BUYClient+Checkout.m */
;
};
9A0B0C751CEB52B90037D68F
/* BUYClient+Checkout.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
9A0B0C711CEB52B90037D68F
/* BUYClient+Checkout.m */
;
};
9A102D1B1CDD1F960026CC43
/* BUYErrorTests.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
9A102D1A1CDD1F960026CC43
/* BUYErrorTests.m */
;
};
9A102D1B1CDD1F960026CC43
/* BUYErrorTests.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
9A102D1A1CDD1F960026CC43
/* BUYErrorTests.m */
;
};
9A102D1E1CDD25980026CC43
/* BUYOptionValueTests.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
9A102D1D1CDD25980026CC43
/* BUYOptionValueTests.m */
;
};
9A102D1E1CDD25980026CC43
/* BUYOptionValueTests.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
9A102D1D1CDD25980026CC43
/* BUYOptionValueTests.m */
;
};
9A47CEFD1CE39F6000A6D5BA
/* BUYCreditCardToken.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
9A47CEFB1CE39F5B00A6D5BA
/* BUYCreditCardToken.m */
;
};
9A47CEFD1CE39F6000A6D5BA
/* BUYCreditCardToken.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
9A47CEFB1CE39F5B00A6D5BA
/* BUYCreditCardToken.m */
;
};
...
@@ -625,6 +629,8 @@
...
@@ -625,6 +629,8 @@
9A0B0C651CEA703E0037D68F
/* BUYClient+Routing.m */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
"BUYClient+Routing.m"
;
sourceTree
=
"<group>"
;
};
9A0B0C651CEA703E0037D68F
/* BUYClient+Routing.m */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
"BUYClient+Routing.m"
;
sourceTree
=
"<group>"
;
};
9A0B0C6A1CEB4D300037D68F
/* BUYClient+Storefront.h */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
"BUYClient+Storefront.h"
;
sourceTree
=
"<group>"
;
};
9A0B0C6A1CEB4D300037D68F
/* BUYClient+Storefront.h */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
"BUYClient+Storefront.h"
;
sourceTree
=
"<group>"
;
};
9A0B0C6B1CEB4D300037D68F
/* BUYClient+Storefront.m */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
"BUYClient+Storefront.m"
;
sourceTree
=
"<group>"
;
};
9A0B0C6B1CEB4D300037D68F
/* BUYClient+Storefront.m */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
"BUYClient+Storefront.m"
;
sourceTree
=
"<group>"
;
};
9A0B0C701CEB52B90037D68F
/* BUYClient+Checkout.h */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
"BUYClient+Checkout.h"
;
sourceTree
=
"<group>"
;
};
9A0B0C711CEB52B90037D68F
/* BUYClient+Checkout.m */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
"BUYClient+Checkout.m"
;
sourceTree
=
"<group>"
;
};
9A102D1A1CDD1F960026CC43
/* BUYErrorTests.m */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
BUYErrorTests.m
;
sourceTree
=
"<group>"
;
};
9A102D1A1CDD1F960026CC43
/* BUYErrorTests.m */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
BUYErrorTests.m
;
sourceTree
=
"<group>"
;
};
9A102D1D1CDD25980026CC43
/* BUYOptionValueTests.m */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
BUYOptionValueTests.m
;
sourceTree
=
"<group>"
;
};
9A102D1D1CDD25980026CC43
/* BUYOptionValueTests.m */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
BUYOptionValueTests.m
;
sourceTree
=
"<group>"
;
};
9A47CEF81CE39EC200A6D5BA
/* BUYPaymentToken.h */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
BUYPaymentToken.h
;
sourceTree
=
"<group>"
;
};
9A47CEF81CE39EC200A6D5BA
/* BUYPaymentToken.h */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
BUYPaymentToken.h
;
sourceTree
=
"<group>"
;
};
...
@@ -1118,6 +1124,8 @@
...
@@ -1118,6 +1124,8 @@
9A0B0C651CEA703E0037D68F
/* BUYClient+Routing.m */
,
9A0B0C651CEA703E0037D68F
/* BUYClient+Routing.m */
,
9A0B0C6A1CEB4D300037D68F
/* BUYClient+Storefront.h */
,
9A0B0C6A1CEB4D300037D68F
/* BUYClient+Storefront.h */
,
9A0B0C6B1CEB4D300037D68F
/* BUYClient+Storefront.m */
,
9A0B0C6B1CEB4D300037D68F
/* BUYClient+Storefront.m */
,
9A0B0C701CEB52B90037D68F
/* BUYClient+Checkout.h */
,
9A0B0C711CEB52B90037D68F
/* BUYClient+Checkout.m */
,
8498DCB11CDD1B4A00BD12A8
/* BUYClient+Customers.h */
,
8498DCB11CDD1B4A00BD12A8
/* BUYClient+Customers.h */
,
8498DCB21CDD1B4A00BD12A8
/* BUYClient+Customers.m */
,
8498DCB21CDD1B4A00BD12A8
/* BUYClient+Customers.m */
,
);
);
...
@@ -1143,6 +1151,7 @@
...
@@ -1143,6 +1151,7 @@
9A0B0C671CEA703E0037D68F
/* BUYClient+Routing.h in Headers */
,
9A0B0C671CEA703E0037D68F
/* BUYClient+Routing.h in Headers */
,
84DD12991CC63FE600A2442D
/* _BUYCart.h in Headers */
,
84DD12991CC63FE600A2442D
/* _BUYCart.h in Headers */
,
84DD129D1CC63FE600A2442D
/* _BUYCollection.h in Headers */
,
84DD129D1CC63FE600A2442D
/* _BUYCollection.h in Headers */
,
9A0B0C731CEB52B90037D68F
/* BUYClient+Checkout.h in Headers */
,
84DD12A11CC63FE600A2442D
/* _BUYImageLink.h in Headers */
,
84DD12A11CC63FE600A2442D
/* _BUYImageLink.h in Headers */
,
84DD12A51CC63FE600A2442D
/* _BUYOption.h in Headers */
,
84DD12A51CC63FE600A2442D
/* _BUYOption.h in Headers */
,
84B0A7411CE10F8100253EB0
/* BUYClient+Checkout.h in Headers */
,
84B0A7411CE10F8100253EB0
/* BUYClient+Checkout.h in Headers */
,
...
@@ -1246,6 +1255,7 @@
...
@@ -1246,6 +1255,7 @@
9A0B0C661CEA703E0037D68F
/* BUYClient+Routing.h in Headers */
,
9A0B0C661CEA703E0037D68F
/* BUYClient+Routing.h in Headers */
,
84DD12B71CC63FEE00A2442D
/* _BUYGiftCard.h in Headers */
,
84DD12B71CC63FEE00A2442D
/* _BUYGiftCard.h in Headers */
,
84DD12911CC63FE600A2442D
/* _BUYOrder.h in Headers */
,
84DD12911CC63FE600A2442D
/* _BUYOrder.h in Headers */
,
9A0B0C721CEB52B90037D68F
/* BUYClient+Checkout.h in Headers */
,
84DD12811CC63FE600A2442D
/* _BUYCart.h in Headers */
,
84DD12811CC63FE600A2442D
/* _BUYCart.h in Headers */
,
84DD12851CC63FE600A2442D
/* _BUYCollection.h in Headers */
,
84DD12851CC63FE600A2442D
/* _BUYCollection.h in Headers */
,
84B0A7401CE10F8100253EB0
/* BUYClient+Checkout.h in Headers */
,
84B0A7401CE10F8100253EB0
/* BUYClient+Checkout.h in Headers */
,
...
@@ -1556,6 +1566,10 @@
...
@@ -1556,6 +1566,10 @@
901930FD1BC5B9BC00D1134E
/* BUYTaxLine.m in Sources */
,
901930FD1BC5B9BC00D1134E
/* BUYTaxLine.m in Sources */
,
84980F351CB75C2900CFAB58
/* NSEntityDescription+BUYAdditions.m in Sources */
,
84980F351CB75C2900CFAB58
/* NSEntityDescription+BUYAdditions.m in Sources */
,
84D915461CC0359700D334FB
/* BUYObserver.m in Sources */
,
84D915461CC0359700D334FB
/* BUYObserver.m in Sources */
,
901930FF1BC5B9BC00D1134E
/* BUYVariantOptionBreadCrumbsView.m in Sources */
,
901931011BC5B9BC00D1134E
/* BUYTheme+Additions.m in Sources */
,
9A0B0C751CEB52B90037D68F
/* BUYClient+Checkout.m in Sources */
,
901931021BC5B9BC00D1134E
/* BUYStoreViewController.m in Sources */
,
84D73C091CDD194D000F978A
/* BUYAddress.m in Sources */
,
84D73C091CDD194D000F978A
/* BUYAddress.m in Sources */
,
901931031BC5B9BC00D1134E
/* BUYOptionValue.m in Sources */
,
901931031BC5B9BC00D1134E
/* BUYOptionValue.m in Sources */
,
84980F551CB7616900CFAB58
/* BUYDecimalNumberTransformer.m in Sources */
,
84980F551CB7616900CFAB58
/* BUYDecimalNumberTransformer.m in Sources */
,
...
@@ -1687,6 +1701,10 @@
...
@@ -1687,6 +1701,10 @@
BE9A64521B503CB80033E558
/* BUYTaxLine.m in Sources */
,
BE9A64521B503CB80033E558
/* BUYTaxLine.m in Sources */
,
84980F341CB75C2900CFAB58
/* NSEntityDescription+BUYAdditions.m in Sources */
,
84980F341CB75C2900CFAB58
/* NSEntityDescription+BUYAdditions.m in Sources */
,
84D915451CC0359700D334FB
/* BUYObserver.m in Sources */
,
84D915451CC0359700D334FB
/* BUYObserver.m in Sources */
,
90DE92711B9897B6002EF4DA
/* BUYVariantOptionBreadCrumbsView.m in Sources */
,
906EAE441B836DE000976165
/* BUYTheme+Additions.m in Sources */
,
9A0B0C741CEB52B90037D68F
/* BUYClient+Checkout.m in Sources */
,
BE9A647F1B503D960033E558
/* BUYStoreViewController.m in Sources */
,
84D73C071CDD194D000F978A
/* BUYAddress.m in Sources */
,
84D73C071CDD194D000F978A
/* BUYAddress.m in Sources */
,
BE9A64691B503D0C0033E558
/* BUYOptionValue.m in Sources */
,
BE9A64691B503D0C0033E558
/* BUYOptionValue.m in Sources */
,
84980F541CB7616900CFAB58
/* BUYDecimalNumberTransformer.m in Sources */
,
84980F541CB7616900CFAB58
/* BUYDecimalNumberTransformer.m in Sources */
,
...
...
This diff is collapsed.
Click to expand it.
Mobile Buy SDK/Mobile Buy SDK/Buy.h
View file @
c502aa4c
...
@@ -66,6 +66,7 @@ FOUNDATION_EXPORT const unsigned char BuyVersionString[];
...
@@ -66,6 +66,7 @@ FOUNDATION_EXPORT const unsigned char BuyVersionString[];
#import <Buy/BUYClient+Customers.h>
#import <Buy/BUYClient+Customers.h>
#import <Buy/BUYClient+Checkout.h>
#import <Buy/BUYClient+Checkout.h>
#import <Buy/BUYClient+Storefront.h>
#import <Buy/BUYClient+Storefront.h>
#import <Buy/BUYClient+Checkout.h>
#import <Buy/BUYError.h>
#import <Buy/BUYError.h>
#import <Buy/BUYError+BUYAdditions.h>
#import <Buy/BUYError+BUYAdditions.h>
#import <Buy/BUYManagedObject.h>
#import <Buy/BUYManagedObject.h>
...
...
This diff is collapsed.
Click to expand it.
Mobile Buy SDK/Mobile Buy SDK/Data/BUYClient+Checkout.h
0 → 100644
View file @
c502aa4c
This diff is collapsed.
Click to expand it.
Mobile Buy SDK/Mobile Buy SDK/Data/BUYClient+Checkout.m
0 → 100644
View file @
c502aa4c
This diff is collapsed.
Click to expand it.
Mobile Buy SDK/Mobile Buy SDK/Data/BUYClient+Customers.h
View file @
c502aa4c
...
@@ -113,7 +113,7 @@ typedef void (^BUYDataOrdersBlock)(NSArray <BUYOrder*> * _Nullable orders, NSErr
...
@@ -113,7 +113,7 @@ typedef void (^BUYDataOrdersBlock)(NSArray <BUYOrder*> * _Nullable orders, NSErr
*
*
* @return the associated NSURLSessionDataTask
* @return the associated NSURLSessionDataTask
*/
*/
-
(
NSURLSessionDataTask
*
)
recoverPasswordForCustomer
:(
NSString
*
)
email
callback
:(
BUYData
Checkout
StatusBlock
)
block
;
-
(
NSURLSessionDataTask
*
)
recoverPasswordForCustomer
:(
NSString
*
)
email
callback
:(
BUYDataStatusBlock
)
block
;
/**
/**
* PUT /api/customers/:customer_id/customer_token/renew
* PUT /api/customers/:customer_id/customer_token/renew
...
...
This diff is collapsed.
Click to expand it.
Mobile Buy SDK/Mobile Buy SDK/Data/BUYClient+Customers.m
View file @
c502aa4c
...
@@ -113,7 +113,7 @@
...
@@ -113,7 +113,7 @@
return
[
self
createTokenForCustomerWithCredentials
:
credentials
customerJSON
:
nil
callback
:
block
];
return
[
self
createTokenForCustomerWithCredentials
:
credentials
customerJSON
:
nil
callback
:
block
];
}
}
-
(
NSURLSessionDataTask
*
)
recoverPasswordForCustomer
:(
NSString
*
)
email
callback
:(
BUYData
Checkout
StatusBlock
)
block
-
(
NSURLSessionDataTask
*
)
recoverPasswordForCustomer
:(
NSString
*
)
email
callback
:(
BUYDataStatusBlock
)
block
{
{
NSURL
*
route
=
[
self
routeForCustomersPasswordRecovery
];
NSURL
*
route
=
[
self
routeForCustomersPasswordRecovery
];
return
[
self
postRequestForURL
:
route
object
:@{
@"email"
:
email
}
completionHandler
:^
(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
)
{
return
[
self
postRequestForURL
:
route
object
:@{
@"email"
:
email
}
completionHandler
:^
(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
)
{
...
...
This diff is collapsed.
Click to expand it.
Mobile Buy SDK/Mobile Buy SDK/Data/BUYClient+Internal.h
View file @
c502aa4c
...
@@ -31,10 +31,14 @@ extern NSString *const kShopifyError;
...
@@ -31,10 +31,14 @@ extern NSString *const kShopifyError;
@interface
BUYClient
(
Internal
)
@interface
BUYClient
(
Internal
)
-
(
NSURLSessionDataTask
*
)
getRequestForURL
:(
NSURL
*
)
url
completionHandler
:(
void
(
^
)(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
))
completionHandler
;
-
(
NSURLSessionDataTask
*
)
deleteRequestForURL
:(
NSURL
*
)
url
completionHandler
:(
void
(
^
)(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
))
completionHandler
;
-
(
NSURLSessionDataTask
*
)
postRequestForURL
:(
NSURL
*
)
url
object
:(
id
<
BUYSerializable
>
)
object
completionHandler
:(
void
(
^
)(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
))
completionHandler
;
-
(
NSURLSessionDataTask
*
)
postRequestForURL
:(
NSURL
*
)
url
object
:(
id
<
BUYSerializable
>
)
object
completionHandler
:(
void
(
^
)(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
))
completionHandler
;
-
(
NSURLSessionDataTask
*
)
putRequestForURL
:(
NSURL
*
)
url
object
:(
id
<
BUYSerializable
>
)
object
completionHandler
:(
void
(
^
)(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
))
completionHandler
;
-
(
NSURLSessionDataTask
*
)
putRequestForURL
:(
NSURL
*
)
url
object
:(
id
<
BUYSerializable
>
)
object
completionHandler
:(
void
(
^
)(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
))
completionHandler
;
-
(
NSURLSessionDataTask
*
)
getRequestForURL
:(
NSURL
*
)
url
completionHandler
:(
void
(
^
)(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
))
completionHandler
;
-
(
NSURLSessionDataTask
*
)
patchRequestForURL
:(
NSURL
*
)
url
object
:(
id
<
BUYSerializable
>
)
object
completionHandler
:(
void
(
^
)(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
))
completionHandler
;
-
(
BUYStatus
)
statusForStatusCode
:(
NSUInteger
)
statusCode
error
:(
NSError
*
)
error
;
-
(
NSError
*
)
errorFromJSON
:(
NSDictionary
*
)
json
response
:(
NSURLResponse
*
)
response
;
-
(
NSError
*
)
errorFromJSON
:(
NSDictionary
*
)
json
response
:(
NSURLResponse
*
)
response
;
@end
@end
This diff is collapsed.
Click to expand it.
Mobile Buy SDK/Mobile Buy SDK/Data/BUYClient.h
View file @
c502aa4c
...
@@ -114,54 +114,12 @@ typedef NS_ENUM(NSUInteger, BUYStatus) {
...
@@ -114,54 +114,12 @@ typedef NS_ENUM(NSUInteger, BUYStatus) {
};
};
/**
/**
* Return block containing a BUYCheckout, id<BUYPaymentToken> and/or an NSError
*
* @param checkout The returned BUYCheckout
* @param paymentToken An opaque payment token type that wraps necessary credentials for payment
* @param error Optional NSError
*/
typedef
void
(
^
BUYDataCreditCardBlock
)(
BUYCheckout
*
_Nullable
checkout
,
id
<
BUYPaymentToken
>
_Nullable
paymentToken
,
NSError
*
_Nullable
error
);
/**
* Return block containing a BUYCheckout and/or an NSError
*
* @param checkout The returned BUYCheckout
* @param error Optional NSError
*/
typedef
void
(
^
BUYDataCheckoutBlock
)(
BUYCheckout
*
_Nullable
checkout
,
NSError
*
_Nullable
error
);
/**
* Return block containing a BUYCheckout, a BUYStatus and/or an NSError
* Return block containing a BUYCheckout, a BUYStatus and/or an NSError
*
*
* @param status A BUYStatus specifying the requested job's completion status
* @param status A BUYStatus specifying the requested job's completion status
* @param error Optional NSError
* @param error Optional NSError
*/
*/
typedef
void
(
^
BUYDataCheckoutStatusBlock
)(
BUYStatus
status
,
NSError
*
_Nullable
error
);
typedef
void
(
^
BUYDataStatusBlock
)(
BUYStatus
status
,
NSError
*
_Nullable
error
);
/**
* Return block containing BUYShippingRate objects, a BUYStatus and/or an NSError
*
* @param shippingRates Array of SHKShippingRates
* @param status A BUYStatus specifying the requested job's completion status
* @param error Optional NSError
*/
typedef
void
(
^
BUYDataShippingRatesBlock
)(
NSArray
*
_Nullable
shippingRates
,
BUYStatus
status
,
NSError
*
_Nullable
error
);
/**
* Return block containing a list of BUYProductImage objects and/or an NSError
*
* @param images An array of BUYProductImage objects
* @param error An optional NSError
*/
typedef
void
(
^
BUYDataImagesListBlock
)(
NSArray
*
_Nullable
images
,
NSError
*
_Nullable
error
);
/**
* Return block containing a BUYGiftCard
*
* @param giftCard A BUYGiftCard
* @param error An optional NSError
*/
typedef
void
(
^
BUYDataGiftCardBlock
)(
BUYGiftCard
*
_Nullable
giftCard
,
NSError
*
_Nullable
error
);
/**
/**
The BUYDataClient provides all requests needed to perform request on the Shopify Checkout API.
The BUYDataClient provides all requests needed to perform request on the Shopify Checkout API.
...
@@ -237,161 +195,6 @@ NS_ASSUME_NONNULL_BEGIN
...
@@ -237,161 +195,6 @@ NS_ASSUME_NONNULL_BEGIN
*/
*/
@property
(
strong
,
nonatomic
,
nullable
)
NSString
*
customerToken
;
@property
(
strong
,
nonatomic
,
nullable
)
NSString
*
customerToken
;
#pragma mark - Checkout
/**
* Builds a checkout on Shopify. The checkout object is used to prepare an order
*
* @param checkout BUYCheckout to create on Shopify
* @param block (^BUYDataCheckoutBlock)(BUYCheckout *checkout, NSError *error);
*
* @return The associated NSURLSessionDataTask
*/
-
(
NSURLSessionDataTask
*
)
createCheckout
:(
BUYCheckout
*
)
checkout
completion
:(
BUYDataCheckoutBlock
)
block
;
/**
* Builds a checkout on Shopify using a Cart Token from an existing cart on your Shopify store's storefront.
* The BUYCheckout object is used to prepare an order.
*
* @param cartToken Cart Token associated with an existing BUYCheckout on Shopify
* @param block (^BUYDataCheckoutBlock)(BUYCheckout *checkout, NSError *error);
*
* @return The associated NSURLSessionDataTask
*/
-
(
NSURLSessionDataTask
*
)
createCheckoutWithCartToken
:(
NSString
*
)
cartToken
completion
:(
BUYDataCheckoutBlock
)
block
;
/**
* Applies a gift card code to the checkout.
*
* @param giftCardCode The gift card code to apply on an existing checkout on Shopify. Note: This is not the same as the gift card identifier.
* @param checkout An existing BUYCheckout on Shopify
* @param block (^BUYDataCheckoutBlock)(BUYCheckout *checkout, NSError *error);
*
* @return The associated NSURLSessionDataTask
*/
-
(
NSURLSessionDataTask
*
)
applyGiftCardWithCode
:(
NSString
*
)
giftCardCode
toCheckout
:(
BUYCheckout
*
)
checkout
completion
:(
BUYDataCheckoutBlock
)
block
;
/**
* Removes a gift card from the checkout.
*
* @param giftCardCode The BUYGiftCard identifier to remove on an existing checkout on Shopify.
* @param checkout An existing BUYCheckout on Shopify
* @param block (^BUYDataCheckoutBlock)(BUYCheckout *checkout, NSError *error);
*
* @return The associated NSURLSessionDataTask
*/
-
(
NSURLSessionDataTask
*
)
removeGiftCard
:(
BUYGiftCard
*
)
giftCard
fromCheckout
:(
BUYCheckout
*
)
checkout
completion
:(
BUYDataCheckoutBlock
)
block
;
/**
* Retrieves an updated version of a BUYCheckout from Shopify.
*
* 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 retrieve (updated) from Shopify
* @param block (^BUYDataCheckoutBlock)(BUYCheckout *checkout, NSError *error);
*
* @return The associated NSURLSessionDataTask
*/
-
(
NSURLSessionDataTask
*
)
getCheckout
:(
BUYCheckout
*
)
checkout
completion
:(
BUYDataCheckoutBlock
)
block
;
/**
* Updates a given BUYCheckout on Shopify.
*
* 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.
*
* Note: A BUYCheckout object with an `orderId` is a completed checkout.
*
* @param checkout The BUYCheckout to updated on Shopify
* @param block (^BUYDataCheckoutBlock)(BUYCheckout *checkout, NSError *error);
*
* @return The associated NSURLSessionDataTask
*/
-
(
NSURLSessionDataTask
*
)
updateCheckout
:(
BUYCheckout
*
)
checkout
completion
:(
BUYDataCheckoutBlock
)
block
;
/**
* Finalizes the BUYCheckout and 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 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 NSURLSessionDataTask
*/
-
(
NSURLSessionDataTask
*
)
completeCheckout
:(
BUYCheckout
*
)
checkout
paymentToken
:(
_Nullable
id
<
BUYPaymentToken
>
)
paymentToken
completion
:(
BUYDataCheckoutBlock
)
block
;
/**
* Retrieve the status of a BUYCheckout. This checks the status of the current payment processing job for the provided checkout.
* Once the job is complete (status == BUYStatusComplete), you can retrieve the completed order by calling `getCheckout:completion`
*
* @param checkout The BUYCheckout to retrieve completion status for
* @param block (^BUYDataCheckoutStatusBlock)(BUYCheckout *checkout, BUYStatus status, NSError *error);
*
* @return The associated NSURLSessionDataTask
*/
-
(
NSURLSessionDataTask
*
)
getCompletionStatusOfCheckout
:(
BUYCheckout
*
)
checkout
completion
:(
BUYDataCheckoutStatusBlock
)
block
;
/**
* Retrieve the status of a checkout given a URL obtained in the UIApplicationDelegate method `application:sourceApplication:annotation`
*
* @param url The URL resource used to open the application
* @param block (^BUYDataCheckoutStatusBlock)(BUYCheckout *checkout, BUYStatus status, NSError *error);
*
* @return The associated NSURLSessionDataTask
*/
-
(
NSURLSessionDataTask
*
)
getCompletionStatusOfCheckoutURL
:(
NSURL
*
)
url
completion
:(
BUYDataCheckoutStatusBlock
)
block
;
#pragma mark - Shipping Rates
/**
* Retrieves a list of applicable shipping rates for a given BUYCheckout.
* Add the preferred/selected BUYShippingRate to BUYCheckout, then update BUYCheckout
*
* @param checkout The BUYCheckout to retrieve shipping rates for
* @param block (^BUYDataShippingRatesBlock)(NSArray *shippingRates, BUYStatus status, NSError *error);
*
* @return The associated NSURLSessionDataTask
*/
-
(
NSURLSessionDataTask
*
)
getShippingRatesForCheckout
:(
BUYCheckout
*
)
checkout
completion
:(
BUYDataShippingRatesBlock
)
block
;
#pragma mark - Payment Management
/**
* Prepares a credit card for usage during the checkout process. This sends it to Shopify's secure servers.
* Note: Storing the token does not charge the associated card (credit or otherwise).
* The card will be charged upon finalizing the checkout (`completeCheckout:completion:`)
*
* You MUST call `completeCheckout:completion:` after this call and receiving a `paymentSessionId`.
* The `paymentSessionId` on the `BUYCheckout` object is not persisted on `updateCheckout:completion:` calls.
*
* @param creditCard BUYCreditCard to prepare for usage
* @param checkout The BUYCheckout associated to the purchase.
* The `billingAddress` stored on the BUYCheckout object is optional and recommended and
* used (if provided) to help with fraud checking.
* @param block (^BUYDataCreditCardBlock)(BUYCheckout *checkout, NSString *paymentSessionId, NSError *error);
*
* @return The associated NSURLSessionDataTask
*/
-
(
NSURLSessionDataTask
*
)
storeCreditCard
:(
BUYCreditCard
*
)
creditCard
checkout
:(
BUYCheckout
*
)
checkout
completion
:(
BUYDataCreditCardBlock
)
block
;
/**
* Convenience method to release all product inventory reservations by setting its
* `reservationTime` to `@0` and calls `updateCheckout:completion`. We recommend creating
* a new BUYCheckout object from a BUYCart for further API calls.
*
* @param checkout The BUYCheckout to expire
* @param block (^BUYDataCheckoutBlock)(BUYCheckout *checkout, NSError *error);
*
* @return The associated NSURLSessionDataTask
*/
-
(
NSURLSessionDataTask
*
)
removeProductReservationsFromCheckout
:(
BUYCheckout
*
)
checkout
completion
:(
BUYDataCheckoutBlock
)
block
;
#pragma mark - Deprecated methods
#pragma mark - Deprecated methods
/**
/**
...
...
This diff is collapsed.
Click to expand it.
Mobile Buy SDK/Mobile Buy SDK/Data/BUYClient.m
View file @
c502aa4c
...
@@ -39,7 +39,6 @@
...
@@ -39,7 +39,6 @@
#import "BUYModelManager.h"
#import "BUYModelManager.h"
#import "BUYOrder.h"
#import "BUYOrder.h"
#import "BUYProduct.h"
#import "BUYProduct.h"
#import "BUYPaymentToken.h"
#import "BUYShippingRate.h"
#import "BUYShippingRate.h"
#import "BUYShop.h"
#import "BUYShop.h"
#import "BUYShopifyErrorCodes.h"
#import "BUYShopifyErrorCodes.h"
...
@@ -57,8 +56,6 @@
...
@@ -57,8 +56,6 @@
#define kMinSuccessfulStatusCode 200
#define kMinSuccessfulStatusCode 200
#define kMaxSuccessfulStatusCode 299
#define kMaxSuccessfulStatusCode 299
#define BUYAssertCheckout(checkout) BUYAssert([(checkout) hasToken], @"Checkout assertion failed. Checkout must have a valid token associated with it.")
NSString
*
const
BUYVersionString
=
@"1.3"
;
NSString
*
const
BUYVersionString
=
@"1.3"
;
NSString
*
const
kShopifyError
=
@"shopify"
;
NSString
*
const
kShopifyError
=
@"shopify"
;
...
@@ -123,224 +120,9 @@ NSString *const BUYClientCustomerAccessToken = @"X-Shopify-Customer-Access-Token
...
@@ -123,224 +120,9 @@ NSString *const BUYClientCustomerAccessToken = @"X-Shopify-Customer-Access-Token
_pageSize
=
MAX
(
MIN
(
pageSize
,
250
),
1
);
_pageSize
=
MAX
(
MIN
(
pageSize
,
250
),
1
);
}
}
#pragma mark - Checkout
-
(
void
)
handleCheckoutResponse
:
(
NSDictionary
*
)
json
error
:
(
NSError
*
)
error
block
:
(
BUYDataCheckoutBlock
)
block
{
BUYCheckout
*
checkout
=
nil
;
if
(
!
error
)
{
checkout
=
[
self
.
modelManager
insertCheckoutWithJSONDictionary
:
json
[
@"checkout"
]];
}
block
(
checkout
,
error
);
}
-
(
void
)
configureCheckout
:
(
BUYCheckout
*
)
checkout
{
checkout
.
marketingAttribution
=
@{
@"medium"
:
@"iOS"
,
@"source"
:
self
.
applicationName
};
checkout
.
sourceName
=
@"mobile_app"
;
if
(
self
.
urlScheme
||
checkout
.
webReturnToURL
)
{
checkout
.
webReturnToURL
=
checkout
.
webReturnToURL
?:
[
NSURL
URLWithString
:
self
.
urlScheme
];
checkout
.
webReturnToLabel
=
checkout
.
webReturnToLabel
?:
[
@"Return to "
stringByAppendingString
:
self
.
applicationName
];
}
}
-
(
NSURLSessionDataTask
*
)
createCheckout
:
(
BUYCheckout
*
)
checkout
completion
:
(
BUYDataCheckoutBlock
)
block
{
BUYAssert
(
checkout
,
@"Failed to create checkout. Invalid checkout object."
);
// Inject channel and marketing attributions
[
self
configureCheckout
:
checkout
];
NSDictionary
*
json
=
[
checkout
jsonDictionaryForCheckout
];
return
[
self
postCheckout
:
json
completion
:
block
];
}
-
(
NSURLSessionDataTask
*
)
createCheckoutWithCartToken
:
(
NSString
*
)
cartToken
completion
:
(
BUYDataCheckoutBlock
)
block
{
BUYAssert
(
cartToken
,
@"Failed to create checkout. Invalid cart token"
);
BUYCheckout
*
checkout
=
[
self
.
modelManager
checkoutwithCartToken
:
cartToken
];
[
self
configureCheckout
:
checkout
];
NSDictionary
*
json
=
[
checkout
jsonDictionaryForCheckout
];
return
[
self
postCheckout
:
json
completion
:
block
];
}
-
(
NSURLSessionDataTask
*
)
postCheckout
:
(
NSDictionary
*
)
checkoutJSON
completion
:
(
BUYDataCheckoutBlock
)
block
{
return
[
self
postRequestForURL
:[
self
routeForCheckouts
]
object
:
checkoutJSON
completionHandler
:^
(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
)
{
[
self
handleCheckoutResponse
:
json
error
:
error
block
:
block
];
}];
}
-
(
NSURLSessionDataTask
*
)
applyGiftCardWithCode
:
(
NSString
*
)
giftCardCode
toCheckout
:
(
BUYCheckout
*
)
checkout
completion
:
(
BUYDataCheckoutBlock
)
block
{
BUYAssertCheckout
(
checkout
);
BUYAssert
(
giftCardCode
.
length
>
0
,
@"Failed to apply gift card code. Invalid gift card code."
);
BUYGiftCard
*
giftCard
=
[
self
.
modelManager
giftCardWithCode
:
giftCardCode
];
NSURL
*
route
=
[
self
routeForCheckoutsUsingGiftCardWithToken
:
checkout
.
token
];
return
[
self
postRequestForURL
:
route
object
:
giftCard
completionHandler
:^
(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
)
{
if
(
json
&&
!
error
)
{
[
self
updateCheckout
:
checkout
withGiftCardDictionary
:
json
[
@"gift_card"
]
addingGiftCard
:
YES
];
}
block
(
checkout
,
error
);
}];
}
-
(
NSURLSessionDataTask
*
)
removeGiftCard
:
(
BUYGiftCard
*
)
giftCard
fromCheckout
:
(
BUYCheckout
*
)
checkout
completion
:
(
BUYDataCheckoutBlock
)
block
{
BUYAssertCheckout
(
checkout
);
BUYAssert
(
giftCard
.
identifier
,
@"Failed to remove gift card. Gift card must have a valid identifier."
);
NSURL
*
route
=
[
self
routeForCheckoutsUsingGiftCard
:
giftCard
.
identifier
token
:
checkout
.
token
];
return
[
self
deleteRequestForURL
:
route
completionHandler
:
^
(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
)
{
if
(
!
error
)
{
[
self
updateCheckout
:
checkout
withGiftCardDictionary
:
json
[
@"gift_card"
]
addingGiftCard
:
NO
];
}
block
(
checkout
,
error
);
}];
}
-
(
void
)
updateCheckout
:
(
BUYCheckout
*
)
checkout
withGiftCardDictionary
:
(
NSDictionary
*
)
giftCardDictionary
addingGiftCard
:
(
BOOL
)
addingGiftCard
{
if
(
addingGiftCard
)
{
BUYGiftCard
*
giftCard
=
[
self
.
modelManager
insertGiftCardWithJSONDictionary
:
giftCardDictionary
];
[
checkout
.
giftCardsSet
addObject
:
giftCard
];
}
else
{
[
checkout
removeGiftCardWithIdentifier
:
giftCardDictionary
[
@"id"
]];
}
checkout
.
paymentDue
=
[
NSDecimalNumber
buy_decimalNumberFromJSON
:
giftCardDictionary
[
@"checkout"
][
@"payment_due"
]];
// Marking the checkout as clean. The properties we have updated above we don't need to re-sync with Shopify.
// There's also an issue with gift cards where syncing the gift card JSON won't work since the update endpoint
// doesn't accept the gift card without a gift card code (which we do not have).
[
checkout
markAsClean
];
}
-
(
NSURLSessionDataTask
*
)
getCheckout
:
(
BUYCheckout
*
)
checkout
completion
:
(
BUYDataCheckoutBlock
)
block
{
BUYAssertCheckout
(
checkout
);
NSURL
*
route
=
[
self
routeForCheckoutsWithToken
:
checkout
.
token
];
return
[
self
getRequestForURL
:
route
completionHandler
:
^
(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
)
{
[
self
handleCheckoutResponse
:
json
error
:
error
block
:
block
];
}];
}
-
(
NSURLSessionDataTask
*
)
updateCheckout
:
(
BUYCheckout
*
)
checkout
completion
:
(
BUYDataCheckoutBlock
)
block
{
BUYAssertCheckout
(
checkout
);
NSURL
*
route
=
[
self
routeForCheckoutsWithToken
:
checkout
.
token
];
return
[
self
patchRequestForURL
:
route
object
:
checkout
completionHandler
:^
(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
)
{
[
self
handleCheckoutResponse
:
json
error
:
error
block
:
block
];
}];
}
-
(
NSURLSessionDataTask
*
)
completeCheckout
:
(
BUYCheckout
*
)
checkout
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"
);
NSURL
*
route
=
[
self
routeForCheckoutsCompletionWithToken
:
checkout
.
token
];
return
[
self
postRequestForURL
:
route
object
:[
paymentToken
JSONDictionary
]
completionHandler
:^
(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
)
{
[
self
handleCheckoutResponse
:
json
error
:
error
block
:
block
];
}];
}
-
(
NSURLSessionDataTask
*
)
getCompletionStatusOfCheckout
:
(
BUYCheckout
*
)
checkout
completion
:
(
BUYDataCheckoutStatusBlock
)
block
{
BUYAssertCheckout
(
checkout
);
return
[
self
getCompletionStatusOfCheckoutToken
:
checkout
.
token
completion
:
block
];
}
-
(
NSURLSessionDataTask
*
)
getCompletionStatusOfCheckoutURL
:
(
NSURL
*
)
url
completion
:
(
BUYDataCheckoutStatusBlock
)
block
{
NSURLComponents
*
components
=
[
NSURLComponents
componentsWithURL
:
url
resolvingAgainstBaseURL
:
NO
];
NSString
*
token
=
nil
;
for
(
NSURLQueryItem
*
item
in
components
.
queryItems
)
{
if
([
item
.
name
isEqualToString
:
@"checkout[token]"
])
{
token
=
item
.
value
;
break
;
}
}
BUYAssert
(
token
,
@"Failed to get completion status of checkout. Checkout URL must have a valid token associated with it."
);
return
[
self
getCompletionStatusOfCheckoutToken
:
token
completion
:
block
];
}
-
(
NSURLSessionDataTask
*
)
getCompletionStatusOfCheckoutToken
:
(
NSString
*
)
token
completion
:
(
BUYDataCheckoutStatusBlock
)
block
{
NSURL
*
route
=
[
self
routeForCheckoutsProcessingWithToken
:
token
];
return
[
self
getRequestForURL
:
route
completionHandler
:
^
(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
)
{
NSInteger
statusCode
=
[(
NSHTTPURLResponse
*
)
response
statusCode
];
block
([
BUYClient
statusForStatusCode
:
statusCode
error
:
error
],
error
);
}];
}
#pragma mark - Shipping Rates
-
(
NSURLSessionDataTask
*
)
getShippingRatesForCheckout
:
(
BUYCheckout
*
)
checkout
completion
:
(
BUYDataShippingRatesBlock
)
block
{
BUYAssertCheckout
(
checkout
);
NSURL
*
route
=
[
self
routeForCheckoutsShippingRatesWithToken
:
checkout
.
token
parameters
:@{
@"checkout"
:
@""
,
}];
return
[
self
getRequestForURL
:
route
completionHandler
:
^
(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
)
{
NSArray
*
shippingRates
=
nil
;
if
(
json
&&
!
error
)
{
shippingRates
=
[
self
.
modelManager
insertShippingRatesWithJSONArray
:
json
[
@"shipping_rates"
]];
}
NSInteger
statusCode
=
[(
NSHTTPURLResponse
*
)
response
statusCode
];
block
(
shippingRates
,
[
BUYClient
statusForStatusCode
:
statusCode
error
:
error
],
error
);
}];
}
#pragma mark - Payments
-
(
NSURLSessionDataTask
*
)
storeCreditCard
:
(
BUYCreditCard
*
)
creditCard
checkout
:
(
BUYCheckout
*
)
checkout
completion
:
(
BUYDataCreditCardBlock
)
completion
{
BUYAssertCheckout
(
checkout
);
BUYAssert
(
creditCard
,
@"Failed to store credit card. No credit card provided."
);
NSMutableDictionary
*
json
=
[[
NSMutableDictionary
alloc
]
init
];
json
[
@"token"
]
=
checkout
.
token
;
json
[
@"credit_card"
]
=
[
creditCard
jsonDictionaryForCheckout
];
if
(
checkout
.
billingAddress
)
{
json
[
@"billing_address"
]
=
[
checkout
.
billingAddress
jsonDictionaryForCheckout
];
}
return
[
self
postRequestForURL
:
checkout
.
paymentURL
object
:@{
@"checkout"
:
json
}
completionHandler
:^
(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
)
{
id
<
BUYPaymentToken
>
token
=
nil
;
if
(
!
error
)
{
token
=
[[
BUYCreditCardToken
alloc
]
initWithPaymentSessionID
:
json
[
@"id"
]];
}
completion
(
checkout
,
token
,
error
);
}];
}
-
(
NSURLSessionDataTask
*
)
removeProductReservationsFromCheckout
:
(
BUYCheckout
*
)
checkout
completion
:
(
BUYDataCheckoutBlock
)
block
{
BUYAssertCheckout
(
checkout
);
checkout
.
reservationTime
=
@0
;
return
[
self
updateCheckout
:
checkout
completion
:
block
];
}
#pragma mark - Error
#pragma mark - Error
+
(
BUYStatus
)
statusForStatusCode
:
(
NSUInteger
)
statusCode
error
:
(
NSError
*
)
error
-
(
BUYStatus
)
statusForStatusCode
:
(
NSUInteger
)
statusCode
error
:
(
NSError
*
)
error
{
{
BUYStatus
status
=
BUYStatusUnknown
;
BUYStatus
status
=
BUYStatusUnknown
;
if
(
statusCode
==
BUYStatusPreconditionFailed
)
{
if
(
statusCode
==
BUYStatusPreconditionFailed
)
{
...
...
This diff is collapsed.
Click to expand it.
Mobile Buy SDK/Mobile Buy SDK/Static Framework/Buy.h
View file @
c502aa4c
...
@@ -40,6 +40,7 @@
...
@@ -40,6 +40,7 @@
#import "BUYClient.h"
#import "BUYClient.h"
#import "BUYClient+Customers.h"
#import "BUYClient+Customers.h"
#import "BUYClient+Storefront.h"
#import "BUYClient+Storefront.h"
#import "BUYClient+Checkout.h"
#import "BUYCollection.h"
#import "BUYCollection.h"
#import "BUYCreditCard.h"
#import "BUYCreditCard.h"
#import "BUYCustomer.h"
#import "BUYCustomer.h"
...
...
This diff is collapsed.
Click to expand it.
Mobile Buy SDK/Mobile Buy SDK/Utils/BUYApplePayHelpers.m
View file @
c502aa4c
...
@@ -27,7 +27,7 @@
...
@@ -27,7 +27,7 @@
#import "BUYApplePayHelpers.h"
#import "BUYApplePayHelpers.h"
#import "BUYAddress.h"
#import "BUYAddress.h"
#import "BUYApplePayAdditions.h"
#import "BUYApplePayAdditions.h"
#import "BUYClient.h"
#import "BUYClient
+Checkout
.h"
#import "BUYClient+Storefront.h"
#import "BUYClient+Storefront.h"
#import "BUYCheckout.h"
#import "BUYCheckout.h"
#import "BUYError.h"
#import "BUYError.h"
...
...
This diff is collapsed.
Click to expand it.
Mobile Buy SDK/Mobile Buy SDK/View Controllers/BUYStoreViewController.m
View file @
c502aa4c
...
@@ -33,6 +33,7 @@
...
@@ -33,6 +33,7 @@
#import "BUYOrder.h"
#import "BUYOrder.h"
#import "BUYShopifyErrorCodes.h"
#import "BUYShopifyErrorCodes.h"
#import "BUYClient+Storefront.h"
#import "BUYClient+Storefront.h"
#import "BUYClient+Checkout.h"
@interface
BUYStoreViewController
()
<
WKNavigationDelegate
,
WKScriptMessageHandler
>
@interface
BUYStoreViewController
()
<
WKNavigationDelegate
,
WKScriptMessageHandler
>
@end
@end
...
...
This diff is collapsed.
Click to expand it.
Mobile Buy SDK/Mobile Buy SDK/View Controllers/BUYViewController.m
View file @
c502aa4c
...
@@ -31,6 +31,7 @@
...
@@ -31,6 +31,7 @@
#import "BUYApplePayAdditions.h"
#import "BUYApplePayAdditions.h"
#import "BUYCart.h"
#import "BUYCart.h"
#import "BUYClient+Storefront.h"
#import "BUYClient+Storefront.h"
#import "BUYClient+Checkout.h"
#import "BUYViewController.h"
#import "BUYViewController.h"
#import "BUYApplePayHelpers.h"
#import "BUYApplePayHelpers.h"
#import "BUYDiscount.h"
#import "BUYDiscount.h"
...
...
This diff is collapsed.
Click to expand it.
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