<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                # 概述 ## 目的 本文檔定義了如下接口:商戶網站與 ptpay 支付平臺間的支付接口、商戶網站與 ptpay 支付平臺間 的支付結果通知接口(包括:服務器后臺異步通知接口)、商戶網站與 ptpay 支付平臺間的單筆交易查 詢接口。 ## 術語與縮略語 appId : 商戶在商戶平臺創建應用的唯一標識 appKey : 商戶在商戶平臺創建應用時自動生成的密鑰 BTC:數字貨幣比特幣 ETH:數字貨幣以太幣 LTC:數字貨幣萊特幣 BCH:數字貨幣比特幣現金 USDT:數字貨幣泰達幣 EOS:數字貨幣 EOS TATO:數字貨幣 TATO POC:數字貨幣POC * 目前 appId 以及 appKey 由商戶申請,由商戶平臺生成并分發至商戶。 ## 適用范圍 本文檔適用的支付幣種包括:BTC、EOS、ETH、LTC、BCH、USDT、TATO、POC ## 接口清單 | 序號 | 接口名稱 | 接口描述 | | --- | --- | --- | | 1 | 支付接口 | 定義商戶網站與 ptpay 支付平臺間支付交易接口。 | | 2 | 支付結果通知接口 | 定義商戶網站與 ptpay 支付平臺間的支付結果通知接口,包括:服務器后臺異步通知接口. | | 3 | 交易查詢接口 | 定義商戶網站與 ptpay 支付平臺間的單筆交易查詢接口。 | ## 報文格式 為保證安全,使用 https 協議傳輸,使用 post 提交數據,content-type 必須為 application/json,請求參數以 json 格式放置于 body 內傳輸。接口返回統一為 json: { code : int , //錯誤碼(0 為成功,其他為失敗) message : string , //錯誤原因 data : object //請求成功的結果 } ## 簽名方式 ### 簽名按如下步驟生成 1. 設所有發送的數據為集合 M , 將集合 M 內非空參數值的參數按照參數名 ASCII 碼從小到大排序 (字典序 , 使用 URL 鍵值對的格式(即 key1=value1&key2=value2…)拼接成字符串 stringA . 注意以下重要規則 : * 參數名 ASCII 碼從小到大排序(字典序). * 如果參數的值為空不參與簽名 . * 參數名區分大小寫 . * 驗證調用返回或主動通知簽名時 , 傳送的 sign 參數不參與簽名 , 將生成的簽名與該 sign 值作校驗 . * 接口可能增加字段 , 驗證簽名時必須支持增加的擴展字段 . 2. 在 stringA 賦值得到 stringSignTemp 字符串 , 并對 stringSignTemp 進行 HMAC\_SHA256 算法運算,再將得到的字符串所有字符轉換為小寫,得到 sign 值 signValue. 示例: 假設傳送的參數如下 : { "appId":"pt2d485db1ee8a4beeab761c883faa73c2", "title":" Texas Hold'em Diamond Purchase ", "mchOrderId":"73649d7a8e4811e8a879001a7dda7111", "currency":"BTC", "amount":"0.00001", "deviceIp":"10.10.10.10", "notifyUrl": "[http://hello](http://hello/)", "nonce": "73649d7b8e4811e89c11001a7dda7111", "timestamp": 1562499372 } 第一步 、對參數按照 key=value 的格式 , 并按照參數名 ASCII 字典序排序如下 : stringA = `"amount=0.00001&appId=pt2d485db1ee8a4beeab761c883faa73c2&currency=BTC&deviceIp=10.10.10.10&mchOrderId=73649d7a8e4811e8a879001a7dda7111&nonce=73649d7b8e4811e89c11001a7dda7111&notifyUrl=http://hello&timestamp=1532330245&title=Texas Hold'em Diamond Purchase "` 第二步、使用 HMAC\_SHA256 算法簽名 : stringSignTemp=stringA sign=HMAC\_SHA256(stringSignTemp, key) //HMAC\_SHA256 算法簽名,key 為商戶應用密鑰 最終得到最終發送的數據 : { "appId": "pt2d485db1ee8a4beeab761c883faa73c2", "title": " Texas Hold'em Diamond Purchase ", "mchOrderId": "73649d7a8e4811e8a879001a7dda7111", "currency":"BTC", "amount":"0.00001", "deviceIp":"10.10.10.10", "notifyUrl": "[http://hello](http://hello/)", "nonce": "73649d7b8e4811e89c11001a7dda7111", "timestamp": 1562499372, "sign": "6e1b8019e0c132bb6b215c1c250b49a0a6f3fb6b17b0285b4ce385f0835a529b" } ## 接口定義 ### 支付交易接口 #### 描述 定義商戶網站與 ptpay 支付平臺間的支付交易接口 , 商戶網站按照接口規范定義將交易訂單數據提交到 ptpay api 支付網關 , 以 HTTPS POST 方式提交數據. #### 接口參數定義 * 交易請求地址: https://waltapi.ptwlt.me/ptpay/order 請求參數中的參數編碼僅限于UTF-8 . 請求參數: | 參數 | 參數名稱 | 類型(長度) | 必填 | 說明 | | --- | --- | --- | --- | --- | | appId | 商戶應用 ID | string(34) | 是 | 商戶在商戶后臺創建應用的 appId . 例 : 1ce78f96ed4748eebd63d6cc97a74839 | | nonce | 隨機字符串 | string(32) | 是 | 防止重復隨機字符串 . 例 :73649d7b8e4811e89c11001a7dda7111 | | timestamp | 時間戳 | int(64) | 是 | 服務器當前時間戳(單位秒) . 例:1532330245 | | title | 商品描述 | string(64) | 是 | 用于 ptpay 支付界面顯示商品名稱 . 例 : 德州撲克鉆石購買 | | mchOrderId | 商戶訂單 ID | string(32) | 是 | 要求 32 個字符內 , 只能是數字 、 大小寫字母且在同一個商戶號下唯一 . 例 :73649d7a8e4811e8a879001a7dda7111 | | openId | 授權ID | string(32) | 否 | 用戶授權成功后返回的openId . 例 :SEC7syJ6TuG90Iawd9ea2A== | | currency | 幣種 | string(8) | 是 | 渠道所支持的幣種 . 例 :BTC | | amount | 訂單金額 | string(32) | 是 | 訂單金額 , 數字貨幣個數為單位 . 例 :0.0001 | | deviceType | 設備類型 | string(32) | 否 | 用戶設備終端類型 . 例:IOS | | deviceId | 設備 ID | string(32) | 否 | 用戶設備 ID . 例:device-01 | | deviceIp | 設備 IP | string(64) | 是 | 用戶設備 IP , 例:10.10.10.10 | | notifyUrl | 通知地址 | string(255) | 是 | 支付異步通知回調地址 , 通知地址必須為直接可訪問的地址 , 不能攜帶參數 . 例 :[http://hello.notify.com](http://hello.notify.com/) | | redirectUrl | 支付成功后跳轉地址 | string(255) | 否 | 客戶支付成功后 , 頁面跳轉商戶地址 . 例(APP 端): yyyyyy://paid yyyyy :商戶自定義短域名然后會根據商戶提供進行拼接 , 返回三方APP yyyyyy://paid?order=xxxxxx&errno=norder 為訂單 ID , 從商戶下單接口返回參數中獲取 errno 為本次支付狀態 , 0 成功/1 用戶取消/2 其他錯誤 | | sign | 簽名 | string(64) | 是 | 參數簽名 , 詳見章節 6 簽名算法 .例: 6e1b8019e0c132bb6b215c1c250b49a0a6f3fb6b17b0285b4ce385f0835a529b . | 響應參數: | 參數 | 參數名稱 | 類型 | 必填 | 說明 | | --- | --- | --- | --- | --- | | code | 返回狀態碼 | int | 是 | 返回狀態碼 :0 為成功,其他非成功狀態 , 具體異常參見狀態碼說明 . | | message | 返回信息描述 | string | 否 | 返回信息描述 , 非成功狀態不為空 . | | data | 返回結果 | json | 否 | 返回結果 , 成功狀態不為空 . | 當交易處理成功時 , 返回 data 數據格式如下 : | 參數 | 參數名稱 | 類型 | 必填 | 說明 | | --- | --- | --- | --- | --- | | url | 支付地址 | string | 是 | 商戶跳轉至 ptpay 的支付地址 . 例 :pt://pay?order=xxxxxx [BS:如果是小程序,請按照《小程序開發說明》拉起支付的方法](https://developer.potato.im/#/docs/applet#payment) | | orderId | ptpay 訂單號 | string | 是 | ptpay 訂單號 | ### 商戶支付通知 #### 描述 支付完成后 , ptpay 會把相關支付結果和用戶信息發送給商戶 , 商戶需要接收處理 , 并返回應答.對后臺通知交互時 , 如果 ptpay 收到商戶的應答不是成功或超時 , ptpay 認為通知失敗 , ptpay 會通過一定的策略定期重新發起通知 , 盡可能提高通知的成功率 , 但 ptpay 不保證通知最終能成功 . * 注意 :同樣的通知可能會多次發送給商戶系統 . 商戶系統必須能夠正確處理重復的通知 . 推薦的做法是 , 當收到通知進行處理時 , 首先檢查對應業務數據的狀態 , 判斷該通知是否已經處理過 , 如果沒有處理過再進行處理 , 如果處理過直接返回結果成功 . 在對業務數據進參數簽名行狀態檢查和處理之前 , 要采用數據鎖進行并發控制 , 以避免函數重入造成的數據混亂 . 特別提醒 :商戶系統對于支付結果通知的內容一定要做簽名驗證 , 并校驗返回的訂單金額是否與商戶側的訂單金額一致 , 防止數據泄漏導致出現 " 假通知 " , 造成資金損失 . 請求地址 :該鏈接是通過下單接口中提交的參數 notifyUrl 設置 , 如果鏈接無法訪問 , 商戶將無法接收到通知. #### 接口參數定義 通知參數 : | 參數 | 參數名稱 | 類型(長度) | 必填 | 說明 | | --- | --- | --- | --- | --- | | appId | 商戶應用 ID | string(34) | 是 | 商戶在商戶后臺創建應用的 appId .例: 1ce78f96ed4748eebd63d6cc97a74839 | | mchOrderId | 商戶訂單號 | string(32) | 是 | 要求 32 個字符內 , 只能是數字、大小寫字母且在同一個商戶號下唯一 . 例 :73649d7a8e4811e8a879001a7dda7111 | | currency | 幣種 | string(8) | 是 | 渠道所支持的幣種 . 例:BTC | | amount | 訂單金額 | string(32) | 是 | 訂單金額 , 數字貨幣個數字符串 . 例:0.00001 | | nonce | 隨機字符串 | string(32) | 是 | 防止重復隨機字符串 . 例 :73649d7b8e4811e89c11001a7dda7111 | | timestamp | 時間戳 | int(64) | 是 | 服務器當前時間戳(單位秒) . 例:1532330245 | | orderId | ptpay 訂單號 | string(32) | Yes | ptpay 支付頁面顯示的訂單號 . 例 :2019062910737174223 | | time | 下單時間 | int(32) | 是 | 商戶下單時間(時間戳秒). 例:1532330245 | | finishTime | 支付完成時間 | int(32) | 是 | 支付完成時間 ( 時間戳秒 ) . 例:1562553723 | | status | 訂單狀態 | int(8) | 是 | 訂單支付狀態 . 例:1 | | sign | 簽名 | string(64) | Yes | 參數簽名,詳見章節 6 簽名算法 . 例 :6e1b8019e0c132bb6b215c1c250b49a0a6f3fb6b17b0285b4ce385f0835a529b | * 響應參數: 商戶成功處理后必須返回字符串 " success " , 否則 ptpay 認為通知失敗,根據重試的策略重新發送通知 . ## 商戶查單接口 ### 描述 定義商戶網站與 ptpay 支付平臺間的單筆交易查詢接口 . 注意:該接口用于商戶的異常訂單對賬,有訪問頻次限制,請不要用于用戶交易時的訂單狀態輪詢 . ### 接口參數定義 * 交易請求地址 :https://waltapi.ptwlt.me/ptpay/order/query 請求參數中的參數編碼僅限于 UTF-8 . 請求參數: | 參數 | 參數名稱 | 類型(長度) | 必填 | 說明 | | --- | --- | --- | --- | --- | | appId | 商戶應用 ID | string(34) | 是 | 商戶在商戶后臺創建應用的 appId . 例 : 1ce78f96ed4748eebd63d6cc97a74839 | | nonce | 隨機字符串 | string(32) | 是 | 防止重復隨機字符串 . 例 :73649d7b8e4811e89c11001a7dda7111 | | timestamp | 時間戳 | int(64) | 是 | 服務器當前時間戳 ( 單位秒 ) . 例 : 1532330245 | | mchOrderId | 商戶訂單號 | string(32) | 是 | 要求 32 個字符內 , 只能是數字、大小寫字母且在同一個商戶號下唯一 . 例 :73649d7a8e4811e8a879001a7dda7111 | | sign | 簽名 | string(64) | 是 | 參數簽名 , 詳見章節 6 簽名算法 . 例: 6e1b8019e0c132bb6b215c11c250b49a0a6f3fb6b17b0285b4ce385f0835a529b | 響應參數 : | 參數 | 參數名稱 | 類型(長度) | 必填 | 說明 | | --- | --- | --- | --- | --- | | code | 返回狀態碼 | int(32) | 是 | 返回狀態碼 :0 為成功 , 其他非成功狀態 , 具體異常參見狀態碼說明 | | message | 返回信息描述 | string | 否 | Return message , unsuccessful status is not empty. | | data | 返回結果 | json | 否 | 返回結果 , 成功狀態不為空 . | 當交易處理成功時 , 返回 data 數據格式如下: | 參數 | 參數名稱 | 類型(長度) | 必填 | 說明 | | --- | --- | --- | --- | --- | | appId | 商戶應用 ID | string(34) | 是 | 商戶在商戶后臺創建應用的 appId . 例: 1ce78f96ed4748eebd63d6cc97a74839 | | mchOrderId | 商戶訂單號 | string(32) | 是 | 要求 32 個字符內 , 只能是數字、大小寫字母且在同一個商戶號下唯一 . 例 :73649d7a8e4811e8a879001a7dda7111 | | orderId | ptpay 訂單號 | string(32) | 是 | ptpay 支付頁面顯示的訂單號 . 例 :2019062910737174223 | | currency | 幣種 | string(8) | 是 | 渠道所支持的幣種 . 例:BTC | | amount | 訂單金額 | string(32) | 是 | 訂單金額 , 數字貨幣個數字符串 . 例:0.00001 | | time | 下單時間 | int(64) | 是 | 商戶下單時間(時間戳秒). 例:1532330245 | | finishTime | 支付完成時間 | int(64) | 否 | 支付完成時間(時間戳秒). 例:1562553723 | | status | 訂單狀態 | int(8) | 是 | 訂單狀態 ( 0 : 待支付 、1 :已支付、2:支付取消) 例:1 | ## 附錄 響應碼說明 | code | 含義 | | --- | --- | | 0 | 調用成功 | | 1 | 未知錯誤 | | 2 | 參數非法 | | 3 | 服務器錯誤 | | 4 | 請求頻繁 | | 7 | 無效的 APPID | | 8 | 支付功能未開通 | | 9 | 無效的openId | | 32 | 商戶該幣種暫不支持 | | 33 | 簽名錯誤 | | 34 | 商戶訂單已存在 | | 35 | 商戶訂單不存在 |
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看