Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
I
ios1x
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
ios1x
Commits
e67a4058
Commit
e67a4058
authored
Jun 29, 2017
by
houweibin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1,订单支付补完
parent
159e0c9f
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
154 additions
and
36 deletions
+154
-36
project.pbxproj
iCemarose.xcodeproj/project.pbxproj
+7
-1
KWMAPIManager.h
iCemarose/Class/Api/KWMAPIManager.h
+9
-0
KWMAPIManager.m
iCemarose/Class/Api/KWMAPIManager.m
+33
-4
KWMOrderPaid.h
iCemarose/Class/Model/KWMOrderPaid.h
+16
-0
KWMOrderPaid.m
iCemarose/Class/Model/KWMOrderPaid.m
+13
-0
KWMNewVC.m
iCemarose/Class/UI/Product/KWMNewVC.m
+5
-2
KWMBeforePayVC.m
iCemarose/Class/UI/ShopCart/KWMBeforePayVC.m
+27
-10
KWMPaySuccessVC.m
iCemarose/Class/UI/ShopCart/KWMPaySuccessVC.m
+1
-1
KWMPayUtil.h
iCemarose/Class/Util/KWMPayUtil.h
+3
-0
KWMPayUtil.m
iCemarose/Class/Util/KWMPayUtil.m
+27
-4
Header-Prefix.h
iCemarose/Header-Prefix.h
+13
-14
No files found.
iCemarose.xcodeproj/project.pbxproj
View file @
e67a4058
...
...
@@ -316,6 +316,7 @@
C0F5869B1E25D05F001248E2
/* KWMProductDetailView.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
C0F5869A1E25D05F001248E2
/* KWMProductDetailView.m */
;
};
C0F5869D1E25D3B6001248E2
/* KWMProductDetailView.xib in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
C0F5869C1E25D3B6001248E2
/* KWMProductDetailView.xib */
;
};
C0F586AE1E279574001248E2
/* KWMBottomView.xib in Resources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
C0F586AD1E279574001248E2
/* KWMBottomView.xib */
;
};
C0FBD88E1F049D510009E375
/* KWMOrderPaid.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
C0FBD88D1F049D510009E375
/* KWMOrderPaid.m */
;
};
C0FC278E1D9B73B000C5CFFE
/* KWMGiftCardCell.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
C0FC278D1D9B73B000C5CFFE
/* KWMGiftCardCell.m */
;
};
/* End PBXBuildFile section */
...
...
@@ -880,6 +881,8 @@
C0F5869A1E25D05F001248E2
/* KWMProductDetailView.m */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
KWMProductDetailView.m
;
sourceTree
=
"<group>"
;
};
C0F5869C1E25D3B6001248E2
/* KWMProductDetailView.xib */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
file.xib
;
path
=
KWMProductDetailView.xib
;
sourceTree
=
"<group>"
;
};
C0F586AD1E279574001248E2
/* KWMBottomView.xib */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
file.xib
;
path
=
KWMBottomView.xib
;
sourceTree
=
"<group>"
;
};
C0FBD88C1F049D510009E375
/* KWMOrderPaid.h */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
KWMOrderPaid.h
;
sourceTree
=
"<group>"
;
};
C0FBD88D1F049D510009E375
/* KWMOrderPaid.m */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
KWMOrderPaid.m
;
sourceTree
=
"<group>"
;
};
C0FC278C1D9B73B000C5CFFE
/* KWMGiftCardCell.h */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
KWMGiftCardCell.h
;
sourceTree
=
"<group>"
;
};
C0FC278D1D9B73B000C5CFFE
/* KWMGiftCardCell.m */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
KWMGiftCardCell.m
;
sourceTree
=
"<group>"
;
};
/* End PBXFileReference section */
...
...
@@ -1242,11 +1245,13 @@
C034E6C21D6AECF9006EE129
/* Model */
=
{
isa
=
PBXGroup
;
children
=
(
C034E6CC1D6AEE20006EE129
/* DAO */
,
C0FBD88C1F049D510009E375
/* KWMOrderPaid.h */
,
C0FBD88D1F049D510009E375
/* KWMOrderPaid.m */
,
C03120A81EF2AC5A00E49EFA
/* KWMWechatPayData.h */
,
C03120A91EF2AC5A00E49EFA
/* KWMWechatPayData.m */
,
C091EE311DDB1FC500A382B9
/* KWMAppVersion.h */
,
C091EE321DDB1FC500A382B9
/* KWMAppVersion.m */
,
C034E6CC1D6AEE20006EE129
/* DAO */
,
C034E6C61D6AED1F006EE129
/* KWMUser.h */
,
C034E6C71D6AED1F006EE129
/* KWMUser.m */
,
807AF49E1DC984950000A326
/* KWMProducts.h */
,
...
...
@@ -2536,6 +2541,7 @@
C0F4AF481DF110F000BDA719
/* KWMProductResult.m in Sources */
,
C0E8AE0C1D7D503600C193DC
/* KWMPaySuccessVC.m in Sources */
,
C0392DBD1DCC786F0051AC8E
/* KWMShippingVC.m in Sources */
,
C0FBD88E1F049D510009E375
/* KWMOrderPaid.m in Sources */
,
807AF4A61DC984950000A326
/* KWMDataProduct.m in Sources */
,
80C8014F1D78134800002306
/* KWMTBVSectionHeardView.m in Sources */
,
C034E7C21D6B0B62006EE129
/* KWMMineVC.m in Sources */
,
...
...
iCemarose/Class/Api/KWMAPIManager.h
View file @
e67a4058
...
...
@@ -31,6 +31,7 @@
#import "KWMCartResult.h"
#import "KWMCheckoutPayResult.h"
#import "KWMWechatPayData.h"
#import "KWMOrderPaid.h"
...
...
@@ -264,4 +265,12 @@
success
:(
void
(
^
)(
NSURLSessionDataTask
*
task
,
KWMCheckoutPayResult
*
result
))
success
failure
:(
void
(
^
)(
NSURLSessionDataTask
*
task
,
NSError
*
error
))
failure
;
/**
* 通过checkout_token查询shopify订单API
* @return NSURLSessionDataTask
*/
-
(
NSURLSessionDataTask
*
)
appOrderQuery
:(
NSDictionary
*
)
parameters
success
:(
void
(
^
)(
NSURLSessionDataTask
*
task
,
KWMCheckoutPayResult
*
result
))
success
failure
:(
void
(
^
)(
NSURLSessionDataTask
*
task
,
NSError
*
error
))
failure
;
@end
iCemarose/Class/Api/KWMAPIManager.m
View file @
e67a4058
...
...
@@ -795,7 +795,7 @@ static NSString *const passwordTest = @"9e84aae218c57cdf0762763c4cf5a651";
-
(
NSURLSessionDataTask
*
)
wechatPayUnifiedOrder
:
(
NSDictionary
*
)
parameters
success
:
(
void
(
^
)(
NSURLSessionDataTask
*
task
,
KWMCheckoutPayResult
*
result
))
success
failure
:
(
void
(
^
)(
NSURLSessionDataTask
*
task
,
NSError
*
error
))
failure
{
NSString
*
apiPath
=
@"https://
peter
.tofnews.com/wechatpay/app/unified_order"
;
NSString
*
apiPath
=
@"https://
liang
.tofnews.com/wechatpay/app/unified_order"
;
return
[
self
startSessionTask
:
KWMHTTPMethodPOST
apiPath
:
apiPath
...
...
@@ -821,7 +821,7 @@ static NSString *const passwordTest = @"9e84aae218c57cdf0762763c4cf5a651";
-
(
NSURLSessionDataTask
*
)
aliPayUnifiedOrder
:
(
NSDictionary
*
)
parameters
success
:
(
void
(
^
)(
NSURLSessionDataTask
*
task
,
KWMCheckoutPayResult
*
result
))
success
failure
:
(
void
(
^
)(
NSURLSessionDataTask
*
task
,
NSError
*
error
))
failure
{
NSString
*
apiPath
=
@"https://
peter
.tofnews.com/alipay/app/unified_order"
;
NSString
*
apiPath
=
@"https://
liang
.tofnews.com/alipay/app/unified_order"
;
return
[
self
startSessionTask
:
KWMHTTPMethodPOST
apiPath
:
apiPath
...
...
@@ -835,7 +835,7 @@ static NSString *const passwordTest = @"9e84aae218c57cdf0762763c4cf5a651";
-
(
NSURLSessionDataTask
*
)
wechatPayOrderQuery
:
(
NSDictionary
*
)
parameters
success
:
(
void
(
^
)(
NSURLSessionDataTask
*
task
,
KWMCheckoutPayResult
*
result
))
success
failure
:
(
void
(
^
)(
NSURLSessionDataTask
*
task
,
NSError
*
error
))
failure
{
NSString
*
apiPath
=
@"https://
peter
.tofnews.com/wechatpay/order/query"
;
NSString
*
apiPath
=
@"https://
liang
.tofnews.com/wechatpay/order/query"
;
return
[
self
startSessionTask
:
KWMHTTPMethodPOST
apiPath
:
apiPath
...
...
@@ -849,7 +849,7 @@ static NSString *const passwordTest = @"9e84aae218c57cdf0762763c4cf5a651";
-
(
NSURLSessionDataTask
*
)
aliPayOrderQuery
:
(
NSDictionary
*
)
parameters
success
:
(
void
(
^
)(
NSURLSessionDataTask
*
task
,
KWMCheckoutPayResult
*
result
))
success
failure
:
(
void
(
^
)(
NSURLSessionDataTask
*
task
,
NSError
*
error
))
failure
{
NSString
*
apiPath
=
@"https://
peter
.tofnews.com/alipay/order/query"
;
NSString
*
apiPath
=
@"https://
liang
.tofnews.com/alipay/order/query"
;
return
[
self
startSessionTask
:
KWMHTTPMethodPOST
apiPath
:
apiPath
...
...
@@ -860,6 +860,35 @@ static NSString *const passwordTest = @"9e84aae218c57cdf0762763c4cf5a651";
failure
:
failure
];
}
/**
* 通过checkout_token查询shopify订单API
* checkout_token shopify订单token
* sign 签名验证
* 签名规则
* str_sign = checkout_token=5173547165345&key=bd3f58f5cd3d7a217ac8c8e655ab52f8";
* sign = md5(base64_encode($str_sign));
*
* @return NSURLSessionDataTask
*/
-
(
NSURLSessionDataTask
*
)
appOrderQuery
:
(
NSDictionary
*
)
parameters
success
:
(
void
(
^
)(
NSURLSessionDataTask
*
task
,
KWMCheckoutPayResult
*
result
))
success
failure
:
(
void
(
^
)(
NSURLSessionDataTask
*
task
,
NSError
*
error
))
failure
{
NSString
*
apiPath
=
@"https://liang.tofnews.com/app/order/query"
;
return
[
self
startSessionTask
:
KWMHTTPMethodPOST
apiPath
:
apiPath
parameters
:
parameters
result
:
[
KWMCheckoutPayResult
class
]
model
:
[
KWMOrderPaid
class
]
success
:
success
failure
:
failure
];
}
@end
iCemarose/Class/Model/KWMOrderPaid.h
0 → 100644
View file @
e67a4058
//
// KWMOrderPaid.h
// iCemarose
//
// Created by HouWeiBin on 2017/6/27.
// Copyright © 2017年 kollway. All rights reserved.
// 查询支付结果API返回的model
#import "KWMBaseModel.h"
@interface
KWMOrderPaid
:
KWMBaseModel
/**生成的订单ID*/
@property
(
nonatomic
)
NSNumber
*
_Nullable
orderId
;
@end
iCemarose/Class/Model/KWMOrderPaid.m
0 → 100644
View file @
e67a4058
//
// KWMOrderPaid.m
// iCemarose
//
// Created by HouWeiBin on 2017/6/27.
// Copyright © 2017年 kollway. All rights reserved.
//
#import "KWMOrderPaid.h"
@implementation
KWMOrderPaid
@end
iCemarose/Class/UI/Product/KWMNewVC.m
View file @
e67a4058
...
...
@@ -172,8 +172,11 @@ static NSString * idStr = @"KWMNewGoodsCell";
//点击婴儿
-
(
IBAction
)
onClickBabyBtn
:
(
id
)
sender
{
if
([
TestModel
isEqualToString
:
@"YES"
]){
KWMSelectedGoodsVC
*
selectedGoodsVC
=
(
KWMSelectedGoodsVC
*
)[
KWMBaseVC
findControllerBy
:[
KWMSelectedGoodsVC
kwmTag
]
fromStoryboard
:
@"New"
];
[
self
.
navigationController
pushViewController
:
selectedGoodsVC
animated
:
YES
];
// KWMSelectedGoodsVC * selectedGoodsVC = (KWMSelectedGoodsVC *)[KWMBaseVC findControllerBy:[KWMSelectedGoodsVC kwmTag] fromStoryboard:@"New"];
// [self.navigationController pushViewController:selectedGoodsVC animated:YES];
KWMProductDetailVC
*
vc
=
(
KWMProductDetailVC
*
)[
KWMBaseVC
findControllerBy
:[
KWMProductDetailVC
kwmTag
]
fromStoryboard
:
@"New"
];
vc
.
productId
=
@
(
11406082255
);
[
self
.
navigationController
pushViewController
:
vc
animated
:
YES
];
return
;
}
[
self
JumpToNewSelectedVCWith
:
self
.
btnBaby
.
titleLabel
.
text
type
:
0
];
...
...
iCemarose/Class/UI/ShopCart/KWMBeforePayVC.m
View file @
e67a4058
...
...
@@ -41,7 +41,6 @@
-
(
void
)
viewWillAppear
:
(
BOOL
)
animated
{
[
super
viewWillAppear
:
animated
];
[
self
validateOrderPayResult
];
[
self
initDefaultData
];
}
...
...
@@ -51,16 +50,21 @@
self
.
payType
=
[
self
.
userDao
.
currencyCode
isEqualToString
:
@"EUR"
]?
TypeWebpay
:
TypeNone
;
self
.
beforePayData
=
[
KWMBeforePayData
new
];
//支付成功回调广播接收者 ##通过广播接受appdelegate中的支付回调。
//app active回调广播接受者 ##判断订单支付状态.
NSNotificationCenter
*
notifi
=
[
NSNotificationCenter
defaultCenter
];
[
notifi
addObserver
:
self
selector
:
@selector
(
paySuccess
)
name
:
KWMPaySuccess
object
:
nil
];
[
notifi
addObserver
:
self
selector
:
@selector
(
requestOrderPayResult
)
name
:
UIApplicationDidBecomeActiveNotification
object
:
nil
];
}
-
(
void
)
dealloc
{
//注销
支付成功
广播接收者
//注销广播接收者
NSNotificationCenter
*
notificationCenter
=
[
NSNotificationCenter
defaultCenter
];
[
notificationCenter
removeObserver
:
self
name
:
KWMPaySuccess
object
:
nil
];
[
notificationCenter
removeObserver
:
self
name
:
UIApplicationDidBecomeActiveNotification
object
:
nil
];
}
-
(
void
)
setPayType
:
(
KWMPayType
)
payType
{
...
...
@@ -561,6 +565,8 @@
if
(
this
.
checkout
.
shippingAddress
&&
!
this
.
checkout
.
shippingRate
)
{
[
this
requestShippingData
];
}
//排除已被支付的checkout的可能性
[
this
requestOrderPayResult
];
}
failure
:^
(
NSURLSessionDataTask
*
_Nullable
task
,
NSError
*
_Nonnull
error
)
{
[
this
hideLoading
];
[
this
showError
:
error
];
...
...
@@ -610,18 +616,31 @@
}];
}
-
(
void
)
validate
OrderPayResult
{
-
(
void
)
request
OrderPayResult
{
//微信支付,用户支付后,当用户没有点击完成按钮,而是直接使用home键,或者点击状态栏左上角返回APP订单页面时,微信的回调不会调用,而很容易出现订单结果丢失的情况,所以需要再确认一次订单是否完成。
//支付宝暂时没有这种问题。
//checkout与order暂无法直接关联,现该api一直返回未支付。
if
(
self
.
beforePayData
&&
self
.
beforePayData
.
wechatPayData
){
//另外用到的情况:上次被支付的订单,因某些突发原因没从缓存清除。
//if(self.beforePayData && self.beforePayData.wechatPayData && self.checkout){
if
(
self
.
checkout
){
NSDictionary
*
parameters
=
[
KWMPayUtil
payResultParameters
:
self
.
checkout
];
self
.
beforePayData
.
wechatPayData
=
nil
;
__weak
KWMBeforePayVC
*
weakSelf
=
self
;
[
self
.
client
getCompletionStatusOfCheckoutWithToken
:
self
.
checkout
.
token
completion
:
^
(
BUYStatus
status
,
NSError
*
_Nullable
error
)
{
if
(
!
error
&&
status
)
{
void
(
^
failure
)(
NSURLSessionDataTask
*
,
NSError
*
)
=
^
(
NSURLSessionDataTask
*
task
,
NSError
*
error
){
//[weakSelf showError:error];
};
void
(
^
success
)(
NSURLSessionDataTask
*
,
KWMCheckoutPayResult
*
)
=
^
(
NSURLSessionDataTask
*
task
,
KWMCheckoutPayResult
*
result
){
if
(
!
result
){
return
;
}
if
(
!
result
.
code
||
result
.
code
.
integerValue
!=
1000
){
return
;
}
if
(
result
.
data
){
KWMOrderPaid
*
data
=
(
KWMOrderPaid
*
)
result
.
data
;
[
weakSelf
paySuccess
];
}
}];
};
// [self.api appOrderQuery:parameters success:success failure:failure];
}
}
...
...
@@ -688,8 +707,6 @@
-
(
void
)
goToWebPay
{
KWMCheckoutWebViewVC
*
checkoutVC
=
(
KWMCheckoutWebViewVC
*
)[
KWMBaseVC
findControllerBy
:[
KWMCheckoutWebViewVC
kwmTag
]
fromStoryboard
:
@"ShopCart"
];
checkoutVC
.
payURL
=
self
.
checkout
.
webCheckoutURL
;
// checkoutVC.payURL = [NSURL URLWithString:@"http://wxpay.wxutil.com/mch/pay/h5.v2.php"];
[
self
.
navigationController
pushViewController
:
checkoutVC
animated
:
YES
];
}
...
...
iCemarose/Class/UI/ShopCart/KWMPaySuccessVC.m
View file @
e67a4058
...
...
@@ -24,7 +24,7 @@
self
.
title
=
@"支付成功"
;
[[
KWMShopCartData
alloc
]
removeAllItems
];
[
self
.
userDao
deleteCheckoutCache
];
[
self
initButton
];
}
...
...
iCemarose/Class/Util/KWMPayUtil.h
View file @
e67a4058
...
...
@@ -25,6 +25,9 @@
//构建支付宝下单数据
+
(
NSDictionary
*
)
aliPayParameters
:(
BUYCheckout
*
)
checkout
;
//构建支付结果查询数据
+
(
NSDictionary
*
)
payResultParameters
:(
BUYCheckout
*
)
checkout
;
//调用微信SDK
+
(
void
)
weChatPay
:(
KWMWechatPayData
*
)
wechatData
;
...
...
iCemarose/Class/Util/KWMPayUtil.m
View file @
e67a4058
...
...
@@ -26,6 +26,8 @@
case
TypeAlipay
:
payTypeString
=
@"支付宝支付"
;
break
;
case
TypeWebpay
:
payTypeString
=
@"网页支付"
;
}
return
payTypeString
;
}
...
...
@@ -33,8 +35,8 @@
+
(
NSDictionary
*
)
wechatPayParameters
:(
BUYCheckout
*
)
checkout
{
//这是测试商店的单,先用来测试
#if DEBUG
NSString
*
checkout_token
=
@"bfa0423b2b51657098d581a93e78bc00"
;
NSString
*
total_price
=
@"127.00"
;
NSString
*
checkout_token
=
checkout
.
token
;
NSString
*
total_price
=
[
NSString
stringWithFormat
:
@"%.2f"
,
checkout
.
totalPrice
.
floatValue
]
;
//先写test,后面改成正式的订单描述
NSString
*
subject
=
@"test"
;
#else
...
...
@@ -62,8 +64,8 @@
+
(
NSDictionary
*
)
aliPayParameters
:(
BUYCheckout
*
)
checkout
{
//这是测试商店的单,先用来测试
#if DEBUG
NSString
*
checkout_token
=
@"bfa0423b2b51657098d581a93e78bc00"
;
NSString
*
total_price
=
@"127.00"
;
NSString
*
checkout_token
=
checkout
.
token
;
NSString
*
total_price
=
[
NSString
stringWithFormat
:
@"%.2f"
,
checkout
.
totalPrice
.
floatValue
]
;
NSString
*
subject
=
@"test"
;
#else
NSString
*
checkout_token
=
checkout
.
token
;
...
...
@@ -85,6 +87,27 @@
return
parameters
;
}
//现在在两个地方会用到这条api
//1,支付后切换回到APP
//2,beforepay创建/复用旧checkout时,判断该checkout是否被支付了,但是之前没清空。
+
(
NSDictionary
*
)
payResultParameters
:(
BUYCheckout
*
)
checkout
{
#if DEBUG
NSString
*
checkout_token
=
checkout
.
token
;
#else
NSString
*
checkout_token
=
checkout
.
token
;
#endif
NSString
*
before_sign
=
[
NSString
stringWithFormat
:
@"checkout_token=%@&key=%@"
,
checkout_token
,
User_Pay_KEY
];
NSString
*
base64String
=
[
KWMStringUtil
BASE64
:
before_sign
];
NSString
*
sign
=
[
KWMStringUtil
MD5
:
base64String
];
NSDictionary
*
parameters
=
@{
@"checkout_token"
:
checkout_token
,
@"sign"
:
sign
};
return
parameters
;
}
+
(
void
)
weChatPay
:(
KWMWechatPayData
*
)
wechatData
{
if
(
wechatData
){
PayReq
*
request
=
[[
PayReq
alloc
]
init
];
...
...
iCemarose/Header-Prefix.h
View file @
e67a4058
...
...
@@ -60,23 +60,22 @@
#define User_Pay_KEY @"bd3f58f5cd3d7a217ac8c8e655ab52f8"
////
////测试
//#define TestModel @"YES"
//
////Shopify对应的key(测试用)
//#define Shopify_SHOP_DOMAIN @"cemarose-dev.myshopify.com"
//#define Shopify_API_KEY @"85287d2c9762a425bacd31424928a4e6"
//#define Shopify_APP_ID @"8"
//正式
#define TestModel @"NO"
//测试
#define TestModel @"YES"
//Shopify对应的key(
正式
)
#define Shopify_SHOP_DOMAIN @"cemarose.myshopify.com"
#define Shopify_API_KEY @"
c2f6fae97741ea6db4cad7ae8f70fef3
"
//Shopify对应的key(
测试用
)
#define Shopify_SHOP_DOMAIN @"cemarose
-test
.myshopify.com"
#define Shopify_API_KEY @"
4f34b3c32f4297386fc4fdaee7ef2bce
"
#define Shopify_APP_ID @"8"
////正式
//#define TestModel @"NO"
//
////Shopify对应的key(正式)
//#define Shopify_SHOP_DOMAIN @"cemarose.myshopify.com"
//#define Shopify_API_KEY @"c2f6fae97741ea6db4cad7ae8f70fef3"
//#define Shopify_APP_ID @"8"
//软键盘输入限制
#define NUM @"0123456789"
#define ALPHA @"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
...
...
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