# TrirdPartyNotify 規格 v2 <br> --- <br> ## 權限 <br> 需要 __`THIRD_PARTY_ADMIN`__ Role 權限 <br> 取得授權與GASH Gamefi System 溝通驗證之Access Token URL 測試環境:https://staging-api.gashpoint.io/oauth/token 正式環境:https://api.gashpoint.io/oauth/token __HTTP POST__ header 帶固定的 authorization ```json {"authorization": "Basic dGhpcmRQYXJ0eTpmd3A4RTJOVkR5dVdTNlczTWZTeWV1ZkZBWHJaU2s1Qg==" ``` ```json { "username": string, // Gash申請所提供OAuth帳號 "password": string, // Gash申請所提供OAuth帳號 "grant_type": string // 固定用 ‘password’ } ``` __回應__ ```json { "access_token": string, // 所核發Token "token_type": string, // token類型 "refresh_token": string, // 刷新token使用 "expires_in": string, // token使用期限 "scope": string, // 授權類型 "jti": string // JWT ID } ``` <br> <br> __call Notify API 時,Header 帶入 token 即可(要加 Bearer)__: ```json { "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsiIl0sInVzZXJfbmFtZSI6InBhcGlkYWtvcyIsInNjb3BlIjpbInJlYWQiLCJ3cml0ZSJdLCJleHAiOjE0ODcyMjIxNDMsImF1dGhvcml0aWVzIjpbIlJPTEVfVVNFUiJdLCJqdGkiOiIzMWUzYzdiNi0zY2U4LTQ1YWMtOGU1Mi1lNzU0M2JhZTljMzUiLCJjbGllbnRfaWQiOiJjbGllbnRhcHAifQ.tUCo7NUhMCZDz_CMyr9fsVSqwFoHEvkSOfZHAeMEmn8" } ``` <br> --- <br> ## API <br> Method: __POST__ __dev__: `https://dev-api.gashpoint.io/gamefi/api/payment/v1/thirdPartyChainNotify` __stage__: `https://staging-api.gashpoint.io/gamefi/api/payment/v1/thirdPartyChainNotify` __prod__: `https://api.gashpoint.io/gamefi/api/payment/v1/thirdPartyChainNotify` <br> --- <br> ## 請求參數 <br> * erC20TransferLogList: List<ERC20TransferLog> <br> * ERC20TransferLog: Object * contractAddress: String (合約位置) * chainId: Integer (鍊ID) * currency: String (交易幣別) * from: String (發送方) * to: String (接收方) * amount: String (交易金額) * fees: String (手續費) * decimal: Integer (位數) * feesDecimal: Integer (手續費位數) * transactionHash: String (txHash) * tIndex: Integer (its block 的 index) * voutIndex: Integer (vout 的 index) * memo: String (memo) * createTime: String (交易時間:yyyy-MM-dd HH:mm:ss) * additionalInfo: String (Json 字串,附加訊息另說明) * status: String ("S" 成功,"F" 失敗) <br> <br> __additionalInfo 附加訊息說明__: * 若交易失敗,可以把交易失敗原因訊息放到裡面 (ex: "errorMsg": "交易失敗原因") * 若有 contract_abi 可以放在裡面 (ex: "contractAbi": "test123") <br> <br> ### DEMO POST <br> ```json { "erC20TransferLogList": [ { "contractAddress": "0xae13d989daC2f0dEbFf460aC112a837C89BAa7cd", "chainId": 1, "currency": "BNB", "from": "0xd86aF8e0c15D58F3bEaBE3BbaDA18a09B92650F5", "to": "0x0952CA46762c3C9B1d8d3ac36AAcCf4854ea905e", "amount": "20000000000000000", "fees": "517820000000000", "decimal": 18, "feesDecimal": 16, "transactionHash": "0xc1a231aaca8f7480cc05d309293fd9bcacc75d935af07a3599526fa12eedfb9c", "voutIndex": 1, "tIndex": 1, "memo": "memo", "createTime": "2022-11-11 11:11:11", "additionalInfo": "{'feesDecimal': 16}", "status": "S" }, { "contractAddress": "0xae13d989daC2f0dEbFf460aC112a837C89BAa7cd", "chainId": 1, "currency": "BNB", "from": "0xd86aF8e0c15D58F3bEaBE3BbaDA18a09B92650F5", "to": "0x0952CA46762c3C9B1d8d3ac36AAcCf4854ea905e", "amount": "20000000000000000", "fees": "517820000000000", "decimal": 18, "feesDecimal": 16, "transactionHash": "0xc1a231aaca8f7480cc05d309293fd9bcacc75d935af07a3599526fa12eedfb9c", "voutIndex": 1, "tIndex": 1, "memo": "memo", "createTime": "2022-11-11 11:11:11", "additionalInfo": "{'errorMsg': '失敗原因'}", "status": "F" } ], } ``` <br> --- <br> ## 回應 <br> __200 成功__ <br> ```json { "MsgLevel": "SUCCESS", // 訊息等級 "MsgCode": "000000", // 回應代碼 "Msg": "OK", // 回應訊息 "Data": true } ``` <br> __4xx or 5xx 失敗__ <br> ```json { "MsgLevel": "SYSTEM_ERROR", // 訊息等級 "MsgCode": "999999", // 回應代碼 "Msg": "system exception error", // 回應訊息 "Data": "失敗具體原因" // 回應額外訊息 } ``` <br>