- 通过authCode获取refreshtoken
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.amazon.cn/auth/O2/token"
method := "POST"
payload := strings.NewReader("grant_type=authorization_code&code=%3C%3CSPDS%20AuthCode%20Received%20from%20Shipper%20Consent%3E%3E&client_id=%3C%3CYour%20SPDS%20Application%20client%20id%20under%20LWA%20Credentials%20in%20Seller%20Central%3E%3E&client_secret=%3C%3CYour%20SPDS%20Application%20client%20secret%20under%20LWA%20Credentials%20in%20Seller%20Central%3E%3E&redirect_uri=%3C%3CRedirect%20URI%20defined%20in%20your%20SPDS%20application%3E%3E")
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
- 通过refreshtoken获取accesstoken
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.amazon.cn/auth/O2/token"
method := "POST"
payload := strings.NewReader("grant_type=refresh_token&refresh_token=%3C%3CRefresh%20token%20obtained%20from%20Authcode%20after%20consent%20flow.%20Usually%20starts%20with%20%22Atzr%7C%22%3E%3E&client_id=%3C%3CYour%20SPDS%20Application%20client%20id%20under%20LWA%20Credentials%20in%20Seller%20Central%3E%3E&client_secret=%3C%3CYour%20SPDS%20Application%20client%20secret%20under%20LWA%20Credentials%20in%20Seller%20Central%3E%3E&redirect_uri=%3C%3CRedirect%20URI%20defined%20in%20your%20SPDS%20application%3E%3E")
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
- 获取跟踪号和面单
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://sandbox.shippingapi.amazon.cn/shipping/v2/shipments/directPurchase"
method := "POST"
payload := strings.NewReader(`{
"shipTo": {
"name": "Alice",
"addressLine1": "444, St 20, Pete Avenue",
"stateOrRegion": "Texas",
"city": "North Park",
"countryCode": "GB",
"postalCode": "78799",
"phoneNumber": "3456789012"
},
"shipFrom": {
"name": "Bob",
"addressLine1": "123, Block 7, Winfield Apartments",
"districtOrCounty": "Nanshan District",
"stateOrRegion": "Guangdong Province",
"city": "Shenzhen",
"countryCode": "CN",
"postalCode": "518054",
"phoneNumber": "1234567890"
},
"packages": [
{
"dimensions": {
"length": 1,
"width": 2,
"height": 2,
"unit": "INCH"
},
"weight": {
"unit": "GRAM",
"value": 250
},
"insuredValue": {
"value": 44,
"unit": "USD"
},
"charges": [
{
"amount": {
"value": 5,
"unit": "USD"
},
"chargeType": "TAX"
}
],
"isHazmat": true,
"sellerDisplayName": "Seller label display name",
"packageClientReferenceId": "PPEI-4326495734098",
"items": [
{
"itemValue": {
"value": 24,
"unit": "USD"
},
"description": "Description of the item1.",
"itemIdentifier": "ITEM-26495734098",
"quantity": 1,
"weight": {
"unit": "GRAM",
"value": 150
},
"isHazmat": true,
"productType": "Health Care"
}
]
}
],
"additionalInputs": {
"shipment": {
"NON_DELIVERABLE_INSTRUCTIONS": "RETURN_TO_SELLER",
"SENDER_ADDRESS_TRANSLATED": {
"name": "鲍勃",
"line1": "温菲尔德公寓7座123号",
"districtOrCounty": "Nanshan District",
"city": "深圳",
"stateOrRegion": "广东省",
"countryCode": "CN",
"postalCode": "518054",
"phoneNumber": "1234567890"
}
},
"items": {
"ITEM-26495734098": {
"ITEM_DESCRIPTION_TRANSLATED": "项目说明1。",
"COUNTRY_OF_ORIGIN": "CN"
}
}
},
"channelDetails": {
"channelType": "EXTERNAL"
}
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("x-amz-access-token", "Atza|IwEBIFtbTkgI9xasG0_r-ss-YwUskdN7dq7pv5ITfebpHSSBye7zpdOFi-2nhgmJJjBFsk52nox1tLkMDVxbvP2H9uECAP3EQHaIvasjSOzx7LHPKtHkj3JirPWyFmn4awqktQvL8CNVWxpAD3Abo1gW1fDtj2rafF-dPM-a4k7mkvjkwxRVdiI67bdIE2gP2TcBpCRYfxMp9JXyT_yLP_4QJ2ZIbm_cKXy25bu9WmpTLKAz95H-VagHF17fPhLJj6Of-r7Qb2Pm7Ojmh_klMRCYBBkVTm3HRc1rkN_XGQHIGG26aeyAi7H0lr3NP3DfPS9SFUGRYNtCqrX0f9uTM3ab4iG3AXKMjNjkGL0HFyr6rITUT8Zpdn-m11JY35vltFH3cHrfu_JgHZybHfQAtNLNUoH-")
req.Header.Add("X-Amz-Content-Sha256", "beaead3198f7da1e70d03ab969765e0821b24fc913697e929e726aeaebf0eba3")
req.Header.Add("X-Amz-Date", "20221020T141123Z")
req.Header.Add("Authorization", "AWS4-HMAC-SHA256 Credential=AKIAXIPF3O3WUZZZHFRG/20221020/cn-north-1/execute-api/aws4_request, SignedHeaders=host;x-amz-access-token;x-amz-content-sha256;x-amz-date, Signature=f260372dcd5408cba3741d2fe7dcc18a0fa032ccb42eb8df0aef045bee97aecf")
req.Header.Add("Content-Type", "application/json")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}