> For the complete documentation index, see [llms.txt](https://apidoc.tokenpay.me/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://apidoc.tokenpay.me/zh-hk/ding-dan/guan-bi-ding-dan.md).

# 關閉訂單

{% hint style="info" %}
提示 (TIP)

供用戶手動取消訂單或商戶取消訂單使用。
{% endhint %}

#### 介面地址 (Interface address) <a href="#interface-address" id="interface-address"></a>

```
POST https://api.tokenpay.me/v1/transaction/close
```

#### 介面參數 (Interface parameters)

| 參數名稱            | 位置     | 類型     | 必填 | 描述                                             |
| --------------- | ------ | ------ | -- | ---------------------------------------------- |
| app\_id         | header | string | 是  | 應用程式 ID，示例值：`8e4b8c2e7cxxxxxxxx1a1cbd3d59e0bd` |
| mch\_id         | body   | string | 是  | 商戶 ID，示例值：`12345678`                           |
| transaction\_id | body   | string | 否  | 平台訂單號，示例值：`2a1cfa6568xxxxxxxx3050957024c559`   |

**參數示例 (Parameters example)**

```json
{
  "app_id": "8e4b8c2e7cxxxxxxxx1a1cbd3d59e0bd",
  "mch_id": "12345678",
  "transaction_id": "2a1cfa6568xxxxxxxx3050957024c559"
}
```

#### 介面返回 (Interface return)

| 參數名稱        | 類型      | 描述                                       | 說明 |
| ----------- | ------- | ---------------------------------------- | -- |
| code        | integer | [狀態碼](/zh-hk/cuo-wu-ma/zhuang-tai-ma.md) | 無  |
| msg         | string  | 狀態描述                                     | 無  |
| request\_id | string  | 請求 ID                                    | 無  |

#### 返回示例 (Return example)

<pre class="language-json"><code class="lang-json"><strong>{
</strong>  "code": 0,
  "msg": "success",
  "request_id": "f23ade4a-e5ca-48f4-a4bb-59114ac360ba",
}
</code></pre>

#### 示例代碼 (Example code)

{% tabs %}
{% tab title="Shell" %}

```sh
curl --location --request POST 'https://api.tokenpay.me/v1/transaction/close' \
--header 'Authorization: <Authorization>' \
--header 'User-Agent: tokenpay API (https://tokenpay.me)' \
--header 'Content-Type: application/json' \
--data-raw '<body data here>'
```

{% endtab %}

{% tab title="Go" %}

```go
package main

import (
   "fmt"
   "strings"
   "net/http"
   "io/ioutil"
)

func main() {

   url := "https://api.tokenpay.me/v1/transaction/close"
   method := "POST"

   payload := strings.NewReader(`<body data here>`)

   client := &http.Client {
   }
   req, err := http.NewRequest(method, url, payload)

   if err != nil {
      fmt.Println(err)
      return
   }
   req.Header.Add("Authorization", "<Authorization>")
   req.Header.Add("User-Agent", "tokenpay API (https://tokenpay.me)")
   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))
}
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
   CURLOPT_URL => 'https://api.tokenpay.me/v1/transaction/close',
   CURLOPT_RETURNTRANSFER => true,
   CURLOPT_ENCODING => '',
   CURLOPT_MAXREDIRS => 10,
   CURLOPT_TIMEOUT => 0,
   CURLOPT_FOLLOWLOCATION => true,
   CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
   CURLOPT_CUSTOMREQUEST => 'POST',
   CURLOPT_POSTFIELDS =>'<body data here>',
   CURLOPT_HTTPHEADER => array(
      'Authorization: <Authorization>',
      'User-Agent: tokenpay API (https://tokenpay.me)',
      'Content-Type: application/json'
   ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
```

{% endtab %}

{% tab title="Python" %}

```python
import http.client
import json

conn = http.client.HTTPSConnection("https://api.tokenpay.me")
payload = "<body data here>"
headers = {
   'Authorization': '<Authorization>',
   'User-Agent': 'tokenpay API (https://tokenpay.me)',
   'Content-Type': 'application/json'
}
conn.request("POST", "/v1/transaction/close", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
```

{% endtab %}

{% tab title="Java" %}

```java
OkHttpClient client = new OkHttpClient().newBuilder()
   .build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "<body data here>");
Request request = new Request.Builder()
   .url("https://api.tokenpay.me/v1/transaction/close")
   .method("POST", body)
   .addHeader("Authorization", "<Authorization>")
   .addHeader("User-Agent", "tokenpay API (https://tokenpay.me)")
   .addHeader("Content-Type", "application/json")
   .build();
Response response = client.newCall(request).execute();
```

{% endtab %}
{% endtabs %}
