取消交易
Cancels an open trade (one that has not yet been accepted or cancelled). Note that only the player who created the trade can cancel it via this API call, to prevent griefing of the trade system (cancelling trades in order to prevent other players from accepting them, for trades that can be claimed by more than one player).
Error codes
This operation may return the following PlayFab errors:
| Error | Code |
|---|---|
| ProductDisabledForTitle | 1609 |
| TradeAlreadyFilled | 1163 |
| TradeCancelled | 1162 |
| TradeDoesNotExist | 1161 |
| TradeStatusNotValidForCancelling | 1159 |
| TradeWaitForStatusTimeout | 1164 |
POST
/
Client
/
CancelTrade
Cancel Trade
curl --request POST \
--url https://{titleId}.playfabapi.com/Client/CancelTrade \
--header 'Content-Type: application/json' \
--header 'X-Authorization: <api-key>' \
--data '
{
"TradeId": "D819CEC225EA9948C351"
}
'import requests
url = "https://{titleId}.playfabapi.com/Client/CancelTrade"
payload = { "TradeId": "D819CEC225EA9948C351" }
headers = {
"X-Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Authorization': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({TradeId: 'D819CEC225EA9948C351'})
};
fetch('https://{titleId}.playfabapi.com/Client/CancelTrade', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{titleId}.playfabapi.com/Client/CancelTrade",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'TradeId' => 'D819CEC225EA9948C351'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{titleId}.playfabapi.com/Client/CancelTrade"
payload := strings.NewReader("{\n \"TradeId\": \"D819CEC225EA9948C351\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{titleId}.playfabapi.com/Client/CancelTrade")
.header("X-Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"TradeId\": \"D819CEC225EA9948C351\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{titleId}.playfabapi.com/Client/CancelTrade")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"TradeId\": \"D819CEC225EA9948C351\"\n}"
response = http.request(request)
puts response.read_body{
"code": 200,
"status": "OK",
"data": {
"Trade": {
"Status": "Cancelled",
"TradeId": "D819CEC225EA9948C351",
"OfferingPlayerId": "CD803BF233CE76CC",
"OfferedInventoryInstanceIds": [
"1359447",
"635691"
],
"RequestedCatalogItemIds": [
"rare_hat_7"
],
"OpenedAt": "2015-04-07T09:04:28+00:00",
"CancelledAt": "2015-04-07T09:18:24+00:00"
}
}
}{
"code": 123,
"errorCode": 123,
"status": "<string>",
"error": "<string>",
"errorMessage": "<string>",
"errorDetails": {}
}授權
This API requires a client session ticket, available from any Client Login function.
主體
application/json
Trade identifier.
回應
The Http status code. If X-ReportErrorAsSuccess header is set to true, this will report the actual http error code.
The Http status code as a string.
Show child attributes
Show child attributes
範例:
{
"Trade": {
"Status": "Cancelled",
"TradeId": "D819CEC225EA9948C351",
"OfferingPlayerId": "CD803BF233CE76CC",
"OfferedInventoryInstanceIds": ["1359447", "635691"],
"RequestedCatalogItemIds": ["rare_hat_7"],
"OpenedAt": "2015-04-07T09:04:28+00:00",
"CancelledAt": "2015-04-07T09:18:24+00:00"
}
}
最後修改於 2026年10月6日
這個頁面有幫助嗎?
⌘I
Cancel Trade
curl --request POST \
--url https://{titleId}.playfabapi.com/Client/CancelTrade \
--header 'Content-Type: application/json' \
--header 'X-Authorization: <api-key>' \
--data '
{
"TradeId": "D819CEC225EA9948C351"
}
'import requests
url = "https://{titleId}.playfabapi.com/Client/CancelTrade"
payload = { "TradeId": "D819CEC225EA9948C351" }
headers = {
"X-Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Authorization': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({TradeId: 'D819CEC225EA9948C351'})
};
fetch('https://{titleId}.playfabapi.com/Client/CancelTrade', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{titleId}.playfabapi.com/Client/CancelTrade",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'TradeId' => 'D819CEC225EA9948C351'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{titleId}.playfabapi.com/Client/CancelTrade"
payload := strings.NewReader("{\n \"TradeId\": \"D819CEC225EA9948C351\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{titleId}.playfabapi.com/Client/CancelTrade")
.header("X-Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"TradeId\": \"D819CEC225EA9948C351\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{titleId}.playfabapi.com/Client/CancelTrade")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"TradeId\": \"D819CEC225EA9948C351\"\n}"
response = http.request(request)
puts response.read_body{
"code": 200,
"status": "OK",
"data": {
"Trade": {
"Status": "Cancelled",
"TradeId": "D819CEC225EA9948C351",
"OfferingPlayerId": "CD803BF233CE76CC",
"OfferedInventoryInstanceIds": [
"1359447",
"635691"
],
"RequestedCatalogItemIds": [
"rare_hat_7"
],
"OpenedAt": "2015-04-07T09:04:28+00:00",
"CancelledAt": "2015-04-07T09:18:24+00:00"
}
}
}{
"code": 123,
"errorCode": 123,
"status": "<string>",
"error": "<string>",
"errorMessage": "<string>",
"errorDetails": {}
}