AllPay Mobile SDK 訂單幕前、幕後產生 請配合使用 AllPay 廠商手機金流介接技術文件 或 歐付寶物流進退貨規範手冊
#####金流
- web view 產生訂單
- api 產生訂單
- otp 簡訊驗證
#####物流
- 電子地圖
- 建立物流訂單
- 取消物流訂單
1.1 1.0
相依套件
AFNetworking (https://github.com/AFNetworking/AFNetworking)
如何在你的專案使用 AllPay Mobile SDK
- 下載 AllPayMobileSDK
- 下載相依套件
- 將下載的檔案引用到你Xcode 專案內
####金流 取得預要傳送資料
NSMutableDictionary *attributes = [@{
@"MerchantID" : MerchantID, //廠商編號
@"AppCode" : AppCode, //App代碼
@"MerchantTradeNo" : [self getRadomTradeNo], //廠商交易編號
@"MerchantTradeDate" : [self getDataString], //廠商交易時間
@"TotalAmount" : @100, //交易金額
@"TradeDesc" : @"Allpay商城購物", //交易描述
@"ItemName" : @"手機20元X2#隨身碟60元X1" ,//商品名稱
@"ChoosePayment" : @"ALL", //預設付款方式
} mutableCopy];
ClientOrder 產生訂單
[APClientOrder getWebViewWithAttributes:attributes];
ServerOrder 產生訂單
[APServerOrder create:attributes
action:^(id responseObject, NSError *error){
if(error){
//失敗
NSLog(@"Error: %@", error);
}else{
//成功
NSLog(@"%@" ,responseObject);
}
}];
ServerOrder OTP 驗證
[APServerOrder otp:attributes
action:^(id responseObject, NSError *error){
if(error){
NSLog(@"Error: %@", error);
}else{
NSLog(@"%@" ,responseObject);
[self showResult:responseObject];
NSInteger RtnCode = (NSInteger)[[responseObject objectForKey:@"RtnCode"] integerValue];
if (!(RtnCode == 1 || RtnCode ==2 || RtnCode==3)) {
//Error
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error"
message:[NSString stringWithFormat:@"(%ld) %@" , (long)RtnCode ,responseObject[@"RtnMsg"] ]
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles: nil];
[alert show]; // 把alert這個物件秀出來
getData = NO;
return ;
}
//Do you want to do
}
}];
####物流
電子地圖
NSDictionary *attributes = @{
@"MerchantID" : MerchantID, //廠商編號
@"MerchantTradeNo" : [self getRadomTradeNo], //廠商交易編號(只允許英文字母數字)
@"LogisticsType" : @"CVS", //物流類型
@"LogisticsSubType" : typeLabel.text, //物流子類型
@"IsCollection" :@"N", //是否代收貨款 Y N
@"ExtraData": @"msg" , //額外資訊 (可為空)
};
[APExpressMap getWebViewWithDelegate:self attributes:attributes];
建立物流訂單 - 宅配
NSMutableDictionary *attributes = [@{
@"MerchantID" : MerchantID, //廠商編號
@"AppCode" : AppCode, //App代碼
@"MerchantTradeNo" : [self getRadomTradeNo], //廠商交易編號
@"MerchantTradeDate" : [self getDataString], //廠商交易時間
@"LogisticsType" : @"Home", //物流類型
@"LogisticsSubType" : @"TCAT", //物流子類型
@"GoodsAmount" : @500, //商品金額
@"IsCollection" :@"N", //是否代收貨款(可為空) (目前宅配不支援代收貨款,所以LogisticsType為Home時,請勿帶Y)
@"GoodsName" :@"八寶粥一箱", //(可為空)
@"SenderName" :@"李小寶", //寄件人姓名
@"SenderPhone" :@"0988123456", //寄件人電話
@"SenderCellPhone" :@"", //寄件人手機 (可為空)
@"ReceiverName" :@"李小妹", //收件人姓名
@"ReceiverPhone" :@"", //收件人電話 (可為空)
@"ReceiverEmail" :@"lab@allpay.com.tw", //收件人Mail
@"ReceiverCellPhone" :@"0988123456", //收件人手機
@"TradeDesc" :@"", //交易描述
@"Remark" :@"", //備註
} mutableCopy];
//寄件人郵遞區號
attributes[@"SenderZipCode"] = @"12300";
//寄件人地址
attributes[@"SenderAddress"] = @"台北市南港區";
//收件人郵遞區號
attributes[@"ReceiverZipCode"] = @"12300";
//收件人地址
attributes[@"ReceiverAddress"] = @"台北市信義區";
//溫層 0001:常溫 (預設值) 0002:冷藏 0003:冷凍
attributes[@"Temperature"] = @"0001";
//距離 00:同縣市 (預設值) 01:外縣市 02:離島
attributes[@"Distance"] = @"00";
//規格 0001: 60cm (預設值) 0002: 90cm 0003: 120cm 0004: 150cm
attributes[@"Specification"] = @"0001";
//預定取件時段 1: 9~12 2: 12~17 3: 17~20 4: 不限時(固定4不限時)
attributes[@"ScheduledPickupTime"] = @"2";
//預定送達時段(可為空) 1: 9~12 2: 12~17 3: 17~20 4:不限時 5:20~21(需限定區域)
attributes[@"ScheduledDeliveryTime"] = @"4";
[APLogisticsOrder create:attributes
action:^(id responseObject, NSError *error){
//do something
}];
建立物流訂單 - 超商取貨
NSMutableDictionary *attributes = [@{
@"MerchantID" : MerchantID, //廠商編號
@"AppCode" : AppCode, //App代碼
@"MerchantTradeNo" : [self getRadomTradeNo], //廠商交易編號
@"MerchantTradeDate" : [self getDataString], //廠商交易時間
@"LogisticsType" : @"CVS", //物流類型
@"LogisticsSubType" : @"UNIMARTC2C", //物流子類型
@"GoodsAmount" : @500, //商品金額
@"IsCollection" :@"N", //是否代收貨款(可為空) (目前宅配不支援代收貨款,所以LogisticsType為Home時,請勿帶Y)
@"GoodsName" :@"八寶粥一箱", //(可為空)
@"SenderName" :@"李小寶", //寄件人姓名
@"SenderPhone" :@"0988123456", //寄件人電話
@"SenderCellPhone" :@"", //寄件人手機 (可為空)
@"ReceiverName" :@"李小妹", //收件人姓名
@"ReceiverPhone" :@"", //收件人電話 (可為空)
@"ReceiverEmail" :@"lab@allpay.com.tw", //收件人Mail
@"ReceiverCellPhone" :@"0988123456", //收件人手機
@"TradeDesc" :@"", //交易描述
@"Remark" :@"", //備註
} mutableCopy];
attributes[@"ReceiverStoreID"] = storeID; //(ID 取得方式請參考電子地圖 APExpressMap
// attributes[@"ReturnStoreID"] = storeID; //退貨門市代號(可為空)
[APLogisticsOrder create:attributes
action:^(id responseObject, NSError *error){
//do something
}];
取消物流訂單
NSMutableDictionary *attributes = [@{
@"MerchantID" : MerchantID, //廠商編號
@"AllPayLogisticsID" : @"AllPay的物流交易編號" ,
@"SenderName" : @"小強", //退貨人姓名
@"SenderPhone" : @"0912345678", //退貨人電話
@"LogisticsType" : @"Home", //物流類型
} mutableCopy];
[APLogisticsOrder cancel:attributes
action:^(id responseObject, NSError *error){
//do something
}];
1.1 歐付寶物流 1.0 歐付寶金流
MIT