EasyPostApi 1.3.2

EasyPostApi 1.3.2

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最近发布2020年4月
SPM支持 SPM

William Welbes 维护。



EasyPostApi

Version License Platform

要求

  • iOS 9.0+ / Mac OS X 10.11+
  • Xcode 10.2+
  • Swift 5.0+

安装

EasyPostApi 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中

pod 'EasyPostApi',  '~> 1.2'

使用

此库使用 EasyPost JSON API。有关与 EasyPost API 交互的详细信息,请参阅 http://www.easypost.com/docs

设置凭据

在进行后续调用之前,在对API管理器的共享实例上调用set credentials方法。由于它维护调用间的凭据,您只需为共享实例调用此方法一次。

let apiToken = "YOUR-TOKEN"
EasyPostApi.sharedInstance.setCredentials(apiToken, baseUrl: "https://api.easypost.com/v2/")

发表地址

保存地址记录并获取ID

let address = EasyPostAddress()

address.name = "Johnny Appleseed"
address.company = "Apple"
address.street1 = "1 Infinite Loop"
address.street2 = "Suite 1"
address.city = "Cupertino"
address.state = "CA"

EasyPostApi.sharedInstance.postAddress(address) { (result) -> () in
    dispatch_async(dispatch_get_main_queue(), { () -> Void in
        switch(result) {
        case .Success(let value):
            
            print("Successfully posted address.")
            
        case .Failure(let error):
            print("Error posting address: \((error as NSError).localizedDescription)")
        }
    })
}

验证地址

在API中发布地址后,使用verify调用验证地址,地址ID由API返回。

let addressId = "address-id-from-posting-address"

EasyPostApi.sharedInstance.verifyAddress(addressId, completion: { (verifyResult) -> () in
    dispatch_async(dispatch_get_main_queue(), { () -> Void in
        switch(verifyResult) {
        case .Success(let easyPostAddress):
            print("Successfully verified address.")
        case .Failure(let error):
            print("Error verifying address: \((error as NSError).localizedDescription)")
        
        }
    })
})

发布货物

保存货物记录,包括目的地地址、出发地址和包裹。

let toAddress = EasyPostAddress()
toAddress.name = "Johnny Appleseed"
toAddress.company = "Apple"
toAddress.street1 = "1 Infinite Loop"
toAddress.street2 = "Suite 1"
toAddress.city = "Cupertino"
toAddress.state = "CA"

let fromAddress = EasyPostAddress()
fromAddress.name = "Johnny Appleseed"
fromAddress.company = "Apple"
fromAddress.street1 = "1 Infinite Loop"
fromAddress.street2 = "Suite 1"
fromAddress.city = "Cupertino"
fromAddress.state = "CA"

let parcel = EasyPostParcel()
parcel.length = NSNumber(value:10.0)	//inches
parcel.width = NSNumber(value:10.0)		//inches
parcel.height = NSNumber(value:10.0)	//inches
parcel.weight = NSNumber(value:10.0)	//ounces

EasyPostApi.sharedInstance.postShipment(toAddress, fromAddress: fromAddress, parcel: parcel) { (result) -> () in
    DispatchQueue.main.async {
        switch(result) {
        case .success(let shipment):
            
            print("Successfully posted shipment.")
            
            if let id = shipment.id {
                print("Shipment id: \(id)")
            }
            
        case .failure(let error):
            print("Error posting shipment: \((error as NSError).localizedDescription)")
        }
    }
}

购买货物

在创建货物记录后,费用记录会包含在货物对象内。您可以调用购买货物并获取带有购买信息的标签URL。

EasyPostApi.sharedInstance.buyShipment("shipment-id", rateId: "rate-id", completion: { (result) -> () in
	//Handle results
	DispatchQueue.main.async {
	    if(result.isSuccess) {
	        print("Successfully bought shipment.")
	        if let buyResponse = result.value {
	            if let postageLabel = buyResponse.postageLabel {
	                if let labelUrl = postageLabel.labelUrl {
	                    print("Label url: \(labelUrl)")
	                }
	            }
	        }
	    } else {
	        print("Error buying shipment: \((result.error! as NSError).localizedDescription)")
	    }
	}
})

作者

William Welbes

授权书

EasyPostApi在MIT授权下可用。更多信息请参阅LICENSE文件。

CocoaPods 主仓库

该仓库包含公共的 CocoaPods 规范。