> 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/ja-jp/zhu-wen/krubakku.md).

# コールバック通知

{% hint style="info" %}
ヒント (TIP)

支払いが完了した後、決済センターは関連する支払い結果と関連情報を加盟店に送信し、加盟店は処理を受信して応答を返す必要があります。バックグラウンド通知とのやり取りの際、決済センターが加盟店からの応答が成功しなかったり、タイムアウトしたりした場合、決済センターは通知が失敗したと見なします。通知は、通知の成功率を最大化するために一定のポリシーに従って定期的に再開されますが、通知が成功するという保証はありません。（通知の頻度は 0秒/15秒/30秒/3分/10分/20分/30分/60分/3時間/6時間 です）
{% endhint %}

{% hint style="warning" %}
警告 (WARNING)

注：同じ通知が加盟店システムに複数回送信される場合があります。加盟店システムは同じ通知を正しく処理できる必要があります。推奨される方法は次のとおりです。通知を処理する際、まず対応するビジネスデータのステータスを確認して、通知が処理されたかどうかを判断します。処理されていない場合は、再度処理します。処理されている場合は、直接成功結果を返します。状態の確認とビジネスデータの処理の前に、関数の再入によるデータの一貫性喪失を避けるため、データロックを使用して並行性制御を実行します。
{% endhint %}

{% hint style="danger" %}
危険 (DANGER)

注意：加盟店システムは、注文コールバックの内容に対して署名検証を行い、返された注文金額が注文金額と一致するかどうかを検証する必要があります。これを行う理由は、資金の損失につながる「虚偽の通知」を引き起こすデータ漏洩を防ぐためです。
{% endhint %}

#### インターフェースアドレス (Interface address)

```
POST 統合注文インターフェースによって送信された notify_url パラメータが設定されています。リンクにアクセスできない場合、サービスシステムは決済センターからの通知を受信できません。
```

#### リクエストボディ (Request Body)

| 名前               | タイプ    | 説明                                                                                                                                                 | 説明 |
| ---------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------- | -- |
| app\_id          | string | アプリケーション                                                                                                                                           |    |
| mch\_id          | string | 加盟店                                                                                                                                                |    |
| create\_time     | time   | 通知時間                                                                                                                                               |    |
| resource\_type   | string | 通知のリソースデータタイプ。支払い成功通知は encrypt-resource です。                                                                                                        |    |
| event\_type      | string | 通知タイプ。支払い成功通知のタイプは SUCCESS です。                                                                                                                     |    |
| resource         | object | 通知リソースデータ                                                                                                                                          |    |
| » original\_type | string | 元のコールバックタイプは transaction です。                                                                                                                       |    |
| » algorithm      | string | 結果データを暗号化する暗号化アルゴリズムは、現在 AES-256-ECB のみがサポートされています。                                                                                                |    |
| » ciphertext     | string | Base64 エンコードされたオン/オフ結果データ暗号文。有効な場合、暗号化されたコンテンツが返されます。復号化後、それは [TransactionNotifyDetail](/ja-jp/yue-ming/dta.md#tong-zhi-xiang-xi) の JSON 文字列になります。 |    |
| » nonce          | string | ランダムな文字列を使用して暗号化する                                                                                                                                 |    |

#### リクエスト例 (Request example)

```json
{
	"app_id": "xxxxx",
	"mch_id": "zzzzzz",
	"create_time": "2023-06-26T17:21:17.754429+08:00",
	"resource_type": "encrypt-resource",
	"event_type": "TRANSACTION.SUCCESS",
	"resource": {
		"original_type": "transaction",
		"algorithm": "AEAD_AES_256_GCM",
		"ciphertext": "I/psKgdkVwxbkEIWtwRxfxLzViuRS+gJTQSdLf+lmK7awoqUcIJisTAJx0Qbv4K6wV8WgyMRFYHD5CCLKmFNU2OnmEm2f2vGhaoS2h28A9BEGx1CWEUw3tfldf/+VWlBAnIBylFjHzbSo7fgn7S3fFEAZHTxoy+9jNIoynqHZbn4Y6eucj1YCw0ZmuKHPpPPrvclbhHmaZHfau+SKyag3C0/cj7zu4mBkRZ39zuk9B7DAADzaRENOZ/ZyibU+zs3gibnCbI2NWEnQWIiCi7vK0jq/FCBWytHihQM364zlVrPPCBDbv2MSqk4fyAM7IDeT6h/z/2kmDOQ6aFPYlLojIkgCCOIevQITS9E+BS1rgmmH+DRKsJNiD257aLhX2/F53VEnjfqqKdDs2lqfX0dCMLqselGUT981fFKceXg+r6hQqcUzLlF28XL5NrfVPreRDo6jI2K0tCy9cOx+cxH3yoDzOFBzM0RlxWqvUhRsMv9ZGfpgCZ0o9HxNObqLjVCQzE5SWPXvmkw+QpWk0oNUvpCEDhj9Vfq6XCV8j3tT3tZTYCa5UQy9VCdmval/2vb50QaAgDYXU6PH/9Xv7AXg6kg29iK+Ec0euxZxosRoVczzRg+0Arl/zvBcphWNIUTdx5IcA12WtP+krk9NNGtj7igk21DhcseJrKBpG7ll9O/Wmq1L8BwW+ypuJS+kHV61jRNYMFJY48Pt11Zoukgqu94kzrhz+KET8q463zlyu/Kp2z5yWI8xwvOtuyjosszfm6/YFQTFdhcmHY3X1yz44NaVG9FPev1QPoPmI7K3Jqa0Q8Q5kQTbe/KrB0eyRpXtyAaShOEeiS2ypmFAC81/m4mjuTd24yAjBcTIfBYzjxwjPbKfv+OYKahDwJP1b7EhsM+Sgu48wQ+pp6wc8TYCOkiRR1pKeb3kaxpQGzlq7VNbWHFPw9TDiyCIEnr8T5eiJtzJJ0U0iIfqN5WHk7iHiNK4Y4TvmdF4f6UyeMTHvaprvzUZI8il5wvoCgIiRUY7qvv5V/KL4ZWHN6Y3EEvQmP4WDo3Wx5IFW8C1gkyFv8lQ1COSNYMPog6RLAI0rNvKZjvc4baWwcHmk/fM92X19F2Y0DArqLFFUTJVE5bUQXQexiUO1e8IL07wqY=",
		"nonce": "d8816e8d6dca4409b790a4bcaa25c621"
	}
}
```

#### 戻り値の例 (Return example)

```
success
```

コールバックリクエストを正常に受信した後、通知サーバーに通知するには `success` を返してください。通知サーバーが `success` を受信すると、通知は停止します。それ以外の場合、通知は 0秒/15秒/30秒/3分/10分/20分/30分/60分/3時間/6時間 の頻度で10回送信されます。
