Kerry 的筆記本
  • Table of contents
  • Kerry的Mac裝機必要
  • ASP.NET Core 教育訓練文件
    • .NET 9 OpenAPI 介紹與教學
    • 目錄
    • ASP.NET Core Authentication系列(一)理解Claim, ClaimsIdentity, ClaimsPrincipal
    • ASP.NET Core Authentication系列(三)Cookie選項
    • ASP.NET Core Authentication系列(二)實現認證、登錄和註銷
    • ASP.NET Core Authentication系列(四)基於Cookie實現多應用間單點登錄(SSO)
    • ASP.NET Core Consul 教學
    • ASP.NET Core Hangfire 排程管理
    • ASP.NET Core KeyCloak 實作
    • ASP.NET Core NLog-依照Environment使用Nlog.Config檔案
    • ASP.NET Core NLog-如何使用 NLog 將 log 寫到檔案
    • ASP.NET Core Nlog-發送訊息到ElasticSearch
    • 目錄
    • ASP.NET Core Quartz.NET 管理介面
    • ASP.NET Core RDLC 報表設計
    • ASP.NET Core SFTP (使用第三方套建 SSH.Net) - 類別庫為案例
    • ASP.NET Core 中使用 HttpReports 進行接口統計,分析, 可視化, 監控,追踪等
    • ASP.NET 使用 MassTransit 與 RabbitMQ,實現事件發佈、訂閱
    • Asp.Net Core 分散式Session – 使用 Redis
    • ASP.NET Core 前台會員修改個人資料
    • ASP.NET Core 前台會員忘記密碼與重設密碼
    • ASP.NET Core 前台會員登入
    • ASP.NET Core 前台會員註冊
    • ASP.NET Core 呼叫 API 發生 CORS 錯誤
    • ASP.NET Core 如何套網頁設計樣版
    • ASP.NET Core 客製化Model Validation 預設錯誤訊息
    • ASP.NET Core 後台查詢頁面教學
    • ASP.NET Core 網站生命週期
    • ASP.NET Feature Management 使用說明與教學
    • ASP.NET RulesEngine 介紹
    • ASP.NET WinForms APP 程式安裝檔
    • LinePay 支付完成後返回 LINE 應用而不跳出外部瀏覽器
    • EntityFramework
      • EF Core Migrations 完整教學手冊
      • EntityFramework Core DB Migrations
      • 使用 Entity Framework Core (EF Core) 的 Migrations 功能進行版本控制
    • NET 6
      • .NET 6 Autofac範例
      • .NET 6 Automapper範例
      • .NET 6 BenchmarkDotNet範例
      • .NET 6 Bogus範例
      • .NET 6 Dapper範例
      • .NET 6 Dapper語法說明
      • .NET 6 EFCore範例
      • .NET 6 EFCore語法說明
      • .NET 6 EPPlus圖表範例
      • .NET 6 EPPlus範例
      • .NET 6 Hangfire範例
      • .NET 6 HttpClient單元測試範例
      • .NET 6 MailKit前置作業
      • .NET 6 MailKit範例
      • .NET 6 Moq範例
      • .NET 6 NLog範例
      • .NET 6 NLog進階範例
      • .NET 6 Serilog範例
      • .NET 6 Serilog進階範例
      • .NET 6 Telegram.Bot前置作業
      • .NET 6 Telegram.Bot範例
      • .NET 6 Text.Json範例
      • .NET 6 swagger授權
      • .NET 6 swagger範例
      • .NET 6 xUnit範例
      • .NET 6 取得appsettings檔案內容
      • .NET 6 更改回傳Json時為大駝峰命名
      • .NET 6 解決System.Text.Json序列化後會將所有非ASCII轉為Unicode
    • WDMIS
      • CORS
      • FeatureManagement
      • Serilog
      • Spectre.Console
      • 資料模型實戰:從 MSSQL 設計到 .NET 8 WebAPI 實作(以刀具管理為例)
  • Azure
    • 如何在 ASP.NET CORE 5.0 WEB 應用程序中實現 AZURE AD 身份驗證
    • Azure App Configuration 使用教學
    • Azure Blob Storage
    • Azure DevOps 持續整合(CI) + Artifacts
  • CSharp
    • ASP.NET await 與 wait 的差異
    • AutoMapper —— 類別轉換超省力
    • C# 中的 HTTPClient — 入門指南
    • C# 正則表達式:從零到英雄指南
    • C# 集合, List<> 取交集、差集、聯集的方法
    • C#單元測試教學
    • CORS 介紹與設定方式
    • CSharp Coding Conventions
    • Using jQuery Unobtrusive AJAX in ASP.NET Core Razor Pages
    • 深入Dapper.NET源碼
    • 菜雞與物件導向
      • 菜雞與物件導向 (0): 前言
      • 菜雞與物件導向 (1): 類別、物件
      • 菜雞與物件導向 (10): 單一職責原則
      • 菜雞與物件導向 (11): 開放封閉原則
      • 菜雞與物件導向 (12): 里氏替換原則
      • 菜雞與物件導向 (13): 介面隔離原則
      • 菜雞與物件導向 (14): 依賴反轉原則
      • 菜雞與物件導向 (15): 最少知識原則
      • 菜雞與物件導向 (2): 建構式、多載
      • 菜雞與物件導向 (3): 封裝
      • 菜雞與物件導向 (4): 繼承
      • 菜雞與物件導向 (5): 多型
      • 菜雞與物件導向 (6): 抽象、覆寫
      • 菜雞與物件導向 (7): 介面
      • 菜雞與物件導向 (8): 內聚、耦合
      • 菜雞與物件導向 (9): SOLID
      • 菜雞與物件導向 (Ex1): 小結
  • DBeaver
    • 如何強制讓 DBeaver 在 Mac 上使用英文介面
  • DesignPattern
    • OAuth
    • Repository 模式 (Repository Pattern)
    • Single Sign On 實作方式介紹 (CAS)
    • 【SOP製作教學】新手適用,SOP範例、流程圖、製作流程全公開!
    • 【SOP製作教學】流程圖教學、重點範例、BPMN符號介紹!
    • 【SOP製作教學】流程圖符號整理、BPMN2.0進階符號教學!
    • 多奇數位 C# 程式碼撰寫規範 (C# Coding Guideline)
    • 軟體分層設計模式 (Software Layered Architecture Pattern)
    • 開源程式碼檢測平台 SonarQube
    • 菜雞新訓記
      • 菜雞新訓記 (0): 前言
      • 菜雞新訓記 (1): 使用 Git 來進行版本控制吧
      • 菜雞新訓記 (2): 認識 Api & 使用 .net Core 來建立簡單的 Web Api 服務吧
      • 菜雞新訓記 (3): 使用 Dapper 來連線到資料庫 CRUD 吧
      • 菜雞新訓記 (4): 使用 Swagger 來自動產生可互動的 API 文件吧
      • 菜雞新訓記 (5): 使用 三層式架構 來切分服務的關注點和職責吧
      • 菜雞新訓記 (6): 使用 依賴注入 (Dependency Injection) 來解除強耦合吧
      • 菜雞新訓記 (7): 使用 Fluent Validation 來驗證參數吧
  • DevOps
    • Repository 模式 (Repository Pattern)
    • pipeline工具研究
    • 單例模式 (Singleton Pattern)
    • 單元測試
    • 軟體分層設計模式 (Software Layered Architecture Pattern)
    • 雙重檢查鎖定模式 (Double-Checked Locking Pattern)
  • Docker
    • Docker 中部署 .NET 8 Web App 並支援 HTTPS
    • Docker指令大全
    • 第七章 安裝Nomad
    • Docker - 第三章 | 安裝 MSSQL
    • Docker - 第九章 | 安裝 datalust seq
    • 第二章 docker-compose 教學
    • Docker - 第五章 | 安裝 Redis
    • 第八章 安裝SonarQube
    • Docker - 第六章 | 安裝RabbitMQ
    • 第十一章 安裝 VtigerCRM
    • 第十二章 安裝KeyCloak
    • Docker - 第十章 | 安裝 Redmine
    • 第四章 安裝MySQL
    • Docker Desktop (含更改 Docker Image 路徑)
  • Git
    • Git Flow 指令大全(完整指令整理) 🚀
    • Git 安裝及配置SSH Key
    • Git 建立到上傳
    • 將現有專案的遠端儲存庫直接更改為新的儲存庫
    • Git 流程規劃
    • Git 語法大全
    • 30 天精通 Git 版本控管
      • 30 天精通 Git 版本控制
        • 第 01 天:认识 Git 版本控制
        • 第 02 天:在 Windows 平台必装的三套 Git 工具
        • 第 03 天:建立仓库
        • 第 04 天:常用的 Git 版本控制指令
        • 第 05 天:了解仓库、工作目录、物件与索引之间的关系
        • 第 06 天:解析 Git 资料结构 - 物件结构
        • 第 07 天:解析 Git 资料结构 - 索引结构
        • 第 08 天:关于分支的基本观念与使用方式
        • 第 09 天:比对文件与版本差异
        • 第 10 天:认识 Git 物件的绝对名称
        • 第 11 天:认识 Git 物件的一般参照与符号参照
        • 第 12 天:认识 Git 物件的相对名称
        • 第 13 天:暂存工作目录与索引的变更状态
        • 第 14 天: Git for Windows 选项设定
        • 第 15 天:标签 - 标记版本控制过程中的重要事件
        • 第 16 天:善用版本日志 git reflog 追踪变更轨迹
        • 第 17 天:关于合并的基本观念与使用方式
        • 第 18 天:修正 commit 过的版本历史记录 Part 1
        • 第 19 天:设定 .gitignore 忽略清单
        • 第 20 天:修正 commit 过的版本历史记录 Part 2
        • 第 21 天:修正 commit 过的版本历史记录 Part 3
        • 第 22 天:修正 commit 过的版本历史记录 Part 4 (Rebase)
        • 第 23 天:修正 commit 过的版本历史记录 Part 5
        • 第 24 天:使用 GitHub 远端仓库 - 入门篇
        • 第 25 天:使用 GitHub 远端仓库 - 观念篇
        • 第 26 天:多人在同一个远端仓库中进行版控
        • 第 27 天:通过分支在同一个远端仓库中进行版控
        • 第 28 天:了解 GitHub 的 fork 与 pull request 版控流程
        • 第 29 天:如何将 Subversion 项目汇入到 Git 仓库
        • 第 30 天:分享工作中几个好用的 Git 操作技巧
      • zh-tw
        • 第 01 天:認識 Git 版本控管
        • 第 02 天:在 Windows 平台必裝的三套 Git 工具
        • 第 03 天:建立儲存庫
        • 第 04 天:常用的 Git 版本控管指令
        • 第 05 天:了解儲存庫、工作目錄、物件與索引之間的關係
        • 第 06 天:解析 Git 資料結構 - 物件結構
        • 第 07 天:解析 Git 資料結構 - 索引結構
        • 第 08 天:關於分支的基本觀念與使用方式
        • 第 09 天:比對檔案與版本差異
        • 第 10 天:認識 Git 物件的絕對名稱
        • 第 11 天:認識 Git 物件的一般參照與符號參照
        • 第 12 天:認識 Git 物件的相對名稱
        • 第 13 天:暫存工作目錄與索引的變更狀態
        • 第 14 天: Git for Windows 選項設定
        • 第 15 天:標籤 - 標記版本控制過程中的重要事件
        • 第 16 天:善用版本日誌 git reflog 追蹤變更軌跡
        • 第 17 天:關於合併的基本觀念與使用方式
        • 第 18 天:修正 commit 過的版本歷史紀錄 Part 1
        • 第 19 天:設定 .gitignore 忽略清單
        • 第 20 天:修正 commit 過的版本歷史紀錄 Part 2
        • 第 21 天:修正 commit 過的版本歷史紀錄 Part 3
        • 第 22 天:修正 commit 過的版本歷史紀錄 Part 4 (Rebase)
        • 第 23 天:修正 commit 過的版本歷史紀錄 Part 5
        • 第 24 天:使用 GitHub 遠端儲存庫 - 入門篇
        • 第 25 天:使用 GitHub 遠端儲存庫 - 觀念篇
        • 第 26 天:多人在同一個遠端儲存庫中進行版控
        • 第 27 天:透過分支在同一個遠端儲存庫中進行版控
        • 第 28 天:了解 GitHub 的 fork 與 pull request 版控流程
        • 第 29 天:如何將 Subversion 專案匯入到 Git 儲存庫
        • 第 30 天:分享工作中幾個好用的 Git 操作技巧
  • Hands-On Labs - LineBotSDK 實作手札 (C#, .net core)
    • 00. 如何申請LINE Bot
    • CLI
      • 使用CLI來發送新的Channel Access Token(LINE Bot)
      • 使用CLI免費發送LINE Notify通知
    • basic
      • 如何發送LINE訊息(Push Message)
      • 如何發送LINE Template Messages
      • 如何發送ImageMap訊息
      • 如何發送Flex Message
      • 如何在訊息後面加上QuickReply快捷選項
    • liff
      • Lab 21: 建立第一個LIFF應用
    • webhook
      • 如何建立可Echo的基本LINE Bot
      • 如何在WebHook中取得用戶個人資訊(名稱、頭像、狀態)
      • 如何在WebHook中取得用戶上傳的圖片(Bytes)
  • Markdown
    • Markdown Cheatsheet 中文版
    • Markdown語法大全
    • 使用HackMD建立書本目錄
    • 使用HackMD建立簡報
  • SAP ABAP
    • ABAP開發環境和總體介紹
    • SAP MM模塊常用表總結
    • SAP QM數據庫表清單
    • SAP欄位與表的對應關係
  • SQL Server
    • [SQL SERVER] Like in
    • SQL Server 中,移除資料庫中所有的關聯限制
    • SQL Server 刪除資料庫中所有資料表
    • SQL Server View、Function 及 Stored Procedure 定義之快速備份
    • SSMS v18 清除登入畫面中,下拉選單歷史紀錄
    • [MS SQL]如何透過Database Mail進行郵件發送
    • [SQL SERVER]撰寫Stored Procedure小細節
    • 使用 Data Migration Assistant 移轉 SQL Server 資料庫與帳戶
    • 使用SSIS創建同步資料庫數據任務
  • Tools
    • 免費 FTP 伺服器 FileZilla Server 安裝教學 (新版設定)
  • VisualStudio
    • .NET CLI 指令碼介紹
    • Visual Studio 使用 Git 版本控制
    • 使用 Visual Studio 2022 可透過 .editorconfig 鎖定文字檔案的儲存編碼格式分享
  • Web API
    • ASP.NET Core 6 Web API 進行 JWT 令牌身份驗證
    • [ASP.NET Core]如何使用SwaggerAPI說明文件
    • ASP.NET Core Web Api實作JWT驗證筆記
    • ECFIT API 範例
    • JWT Token Authentication And Authorizations In .Net Core 6.0 Web API
    • 微服務架構 - 從狀態圖來驅動 API 的設計
  • Windows
    • [C#] 伺服器監控常用語法 (事件檢視器、CPU 硬碟使用率、程式執行狀況)
    • Configure IIS Web Server on Windows Server 2019
    • Log Paser Studio 分析 IIS W3C Log
    • Windows Server 2019 如何安裝 IIS 運行 ASP.NET 專案
    • 如何檢查安裝在 IIS 上的 .NET Core Hosting Bundle 版本
    • [IIS] 如何解決網站第一個請求 Request 特別慢 ?
    • IIS 不停機更版設置
    • SQL Server 2019 Standard 繁體中文標準版安裝
    • WINDOWS共用資料夾的網路認證密碼放在哪?如何清除?
    • 如何設定 ASP.NET CORE 網站應用程式持續執行在 IIS 上
  • 專案管理
    • SSDLC (Secure Software Development Life Cycle)
    • 系統開發原則
    • MIS及專案管理-使用Redmine
      • 第10章 - [日常管理]MIS部門週會工作進度追蹤
      • 第11章 - [日常管理]MIS部門主管月會報告管理
      • 第12章 - [日常管理]機房工作日誌
      • 第13章 - [日常管理]MIS部門耗用工時及工作進度檢討
      • 第14章 - [日常管理]MIS文件知識庫
      • 第15章 - [日常管理]整理及管理分享
      • 第16章 - [異常管理]使用者問題回報系統
      • 第17章 - [異常管理]資安事件及異常紀錄
      • 第18章 - [異常管理]整理及管理分享
      • 第19章 - [變革管理]MIS的專案及專案管理五大階段
      • 第1章 - [MIS及專案管理]中小企業MIS的鳥事
      • 第20章 - [變革管理]MIS的新專案管理:起始階段
      • 第21章 - [變革管理]MIS的新專案管理:規劃階段
      • 第22章 - [變革管理]MIS的新專案管理:執行階段
      • 第23章 - [變革管理]MIS的新專案管理:監控階段
      • 第24章 - [變革管理]MIS的新專案管理:結束階段
      • 第25章 - [變革管理]整理及管理分享
      • 第26章 - [ISMS管理]ISMS平台整體規劃
      • 第27章 - [ISMS管理]ISMS文管中心
      • 第28章 - [ISMS管理]ISMS表單紀錄的管理
      • 第29章 - [ISMS管理]整理及管理分享
      • 第2章 - [MIS及專案管理]專案管理的概念及MIS應用
      • 第30章 - 初心、來時路及感謝:系列文章總結回顧
      • 第3章 - [MIS及專案管理]管理工具的選擇
      • 第4章 - [Redmine]Redmine的安裝及設定
      • 第5章 - [Redmine]Redime系統邏輯說明
      • 第6章 - [Redmine]自行建立及維護表單
      • 第7章 - [Redmine]專案版面的規劃
      • 第8章 - [日常管理]AR管理
      • 第9章 - [日常管理]資訊服務申請
  • 微服務架構
    • DDD + CQRS + MediatR 專案架構
    • 微服務架構 #2, 按照架構,重構系統
    • 淺談微服務與網站架構的發展史
    • API First Workshop 設計概念與實做案例
      • API First #1 架構師觀點 - API First 的開發策略 - 觀念篇
      • API First #2 架構師觀點 - API First 的開發策略 - 設計實做篇
    • 基礎建設 - 建立微服務的執行環境
      • Part #1 微服務基礎建設 - Service Discovery
      • Part #2 微服務基礎建設 - 服務負載的控制
      • Part #3 微服務基礎建設 - 排隊機制設計
      • Part #4 可靠的微服務通訊 - Message Queue Based RPC
      • Part #5 非同步任務的處理機制 - Process Pool
    • 實做基礎技術 API & SDK Design
      • API & SDK Design #1, 資料分頁的處理方式
      • API & SDK Design #2, 設計專屬的 SDK
      • API & SDK Design #3, API 的向前相容機制
      • API & SDK Design #4, API 上線前的準備 - Swagger + Azure API Apps
      • API & SDK Design #5 如何強化微服務的安全性 API Token JWT 的應用
    • 建構微服務開發團隊
      • 架構面試題 #1, 線上交易的正確性
      • 架構面試題 #2, 連續資料的統計方式
      • 架構面試題 #3, RDBMS 處理樹狀結構的技巧
      • 架構面試題 #4 - 抽象化設計;折扣規則的設計機制
    • 架構師觀點 - 轉移到微服務架構的經驗分享
      • Part #1 改變架構的動機
      • Part #2 實際改變的架構案例
    • 案例實作 - IP 查詢服務的開發與設計
      • 容器化的微服務開發 #1 架構與開發範例
      • 容器化的微服務開發 #2 IIS or Self Host
  • 系統評估
    • RPA 與 WebAPI 評估
    • 數位轉型:從現有系統到數位化的未來
    • 數位轉型:從現有系統到數位化的未來
  • 面試
    • CV_黃子豪_2024
    • HR 問題集
    • .NET 工程師 面試問題集
    • 資深工程師 問題集
    • 資深開發人員 / 技術主管
    • 題目
Powered by GitBook
On this page
  • ECFIT
  • API 範例
  • Order
  • Order - 取得訂單內容
  • Header
  • Parameter
  • Success 200
  • Order - 取得訂單內容(post方法)
  • Header
  • Parameter
  • Success 200
  • Order - 取消訂單
  • Parameter
  • Success 200
  • Order - 開立訂單
  • Parameter
  • Success 200
  • Invoice
  • Invoice - 開立發票
  • Parameter
  • Success 200
  • Invoice - 作廢發票
  • Parameter
  • Success 200
  • Invoice - 取得發票內容
  • Parameter
  • Success 200
  • Invoice - 取得發票內容(依訂單編號)
  • Parameter
  • Success 200
  • Invoice - 取得發票內容(多筆)
  • Parameter
  • Success 200
  • Invoice - 開立發票 - 測試用
  • Parameter
  • Success 200
  • Allowance
  • Allowance - 折讓發票
  • Parameter
  • Success 200
  • Allowance - 折讓確認
  • Parameter
  • Success 200
  • Allowance - 折讓作廢
  • Parameter
  • Success 200
  • Stock
  • Stock - 庫存查詢
  • Header
  • Parameter
  • Success 200
  • Stock - 庫存查詢 (多筆)
  • Header
  • Parameter
  • Success 200
  1. Web API

ECFIT API 範例

ECFIT

API 範例

Order

Order - 取得訂單內容

利用提供的 訂單號碼 :order 取得訂單資訊,包含開立時的商品資料與折讓紀錄),此功能有訪問頻率限制 ( 每分鐘 30 次 ),若超過將會回傳 429: Too Many Attempts.,除 Response 外,API 在標頭也會回傳 X-RateLimit-Limit、X-RateLimit-Remaining、Retry-After ( 如果到達限制次數就只能得到 Retry-After )

GET

https://{company}.ecfit.cc/api/order/:order

Header

Field
Type
Description

X-RateLimit-Limit

Integer

指定時間內最大允許訪問次數

X-RateLimit-Remaining

Integer

指定時間內剩餘訪問次數

Retry-After

Integer

距離下次重新請求的等待時間

Parameter

Field
Type
Description

order

String

訂單號碼,ex : EC201601010001Size range: 16

Success 200

Field
Type
Description

status

String

開立結果 success : 成功,fail : 失敗

code

String

結果代號

00

String

查詢成功

01

String

訂單編號為空

11

String

訂單不存在

msg

String

回傳處理結果

content

Array[]

內容陣列

orderNo

String

原始訂單編號

ecfitNo

String

ECFIT訂單流水號

amount

Integer

訂單金額

invoiced

Integer

是否開立發票

ban

String

買家統編

AllPayLogisticsID

String

綠界物流交易編號

paidDate

Date

付款日期

NPO

String

捐贈碼

demand

String

是否有索取紙本發票

collection

Integer

代收金額

logisticsId

String

貨運公司

production

Array[]

購買商品陣列

pid

String

商品品號

barcode

String

商品條碼

name

String

名稱

quantity

Integer

數量

price

Integer

單價

deliveryRecord

Object[]

物流紀錄

key

String

物流 ID

value

Array[]

物流過程

customer

Object

消費者資料

name

String

名字

address

String

地址

phone

String

電話

buyer

Object

購買人資料

name

String

名字

address

String

地址

email

String

信箱

phone

String

電話

status

String

0 : 尚未檢查1 : 上傳完成2 : 等待開立發票 (只有有配合開立發票的訂單才會有此狀態)3 : 發票開立完成 (只有有配合開立發票的訂單才會有此狀態)5 : 發票開立完成等待撿貨( 無發票的訂單是 1 的時候就是上傳成功準備出貨,需要開立發票的訂單需要到5 才是可以出貨。以上狀態都可以按訂單結案。 )4 : 撿貨中( 代表此訂單正在理貨批次處理中,但是不代表此訂單今天可以出貨,有可能因為缺貨所以無法包貨成功。撿貨中不可以結案只能取消。 )--以下狀態代表此訂單生命週期結束--6 : 完成( 代表此訂單已經包貨完畢,會看得到物流編號。但是不一定代表已經被物流公司收走,因為物流公司收貨時間是固定。 )8 : 結案( 結案代表為您已經人工將此訂單點選為結案,此訂單已經不會再被處理 )10 : 取消( 代表此訂單您已經人工點選取消,此訂單已經不會再被處理 )99 : 訂單錯誤( 代表此訂單建立失敗,可於修正並刪除錯誤紀錄後重新建立 )

HTTP/1.1 200 OK
{
    "status"        : "success",
    "code"          : "00",
    "msg"           : "查詢成功",
    "content"       : [{
    "orderNo"       : "EC20160101001",
    "ecfitNo"       : "00000013332",
    "amount"        : 5040,
    "remain"        : 3360,
    "invoice"       : "AB00000001",
    "ban"           : "",
    "AllPayLogisticsID" : "2583129",
    "paidDate"      : "2016-01-01",
    "invoicingDate" : "2016-01-01 01:01:01",
    "NPO"           : "",
    "demand"        : "N",
    "collection"    : 0,
    "logisticsId"   : "黑貓宅急便",
    "production"    : [{
        "id"        : "0104030143",
        "name"      : "【Fitty】運動壓力褲/壓縮褲(女款・七分全黑)【M】",
        "quantity"  : 1,
        "price"     : 1680
    },
    {
        "id"        : "0204030255",
        "name"      : "【Fitty】運動壓力褲/壓縮褲(邊彩七分款)﹣舞蝶粉【舞蝶粉 M】",
        "quantity"  : 1,
        "price"     : 1680
    }],
    "deliveryRecord" : {
        "4718037235420" : [{
            "CheckID"               : "4718037235420",
            "Name"                  : "宜蘭營業本所",
            "Date"                  : "20161003163751",
            "RtnCode"               : "300",
            "AllPayLogisticsID"     : "2583129",
            "Description"           : "轉運中",
            "ClientID"              : "",
            "Transport"             : "黑貓",
            "Status"                : 1
        }, {
            "CheckID"               : "4718037235420",
            "Name"                  : "三重一營業本所",
            "Date"                  : "20161004072045",
            "RtnCode"               : "300",
            "AllPayLogisticsID"     : "2583129",
            "Description"           : "配送中",
            "ClientID"              : "",
            "Transport"             : "黑貓",
            "Status"                : 1
        }, {
            "CheckID"               : "4718037235420",
            "Name"                  : "三重一營業本所",
            "Date"                  : "20161004080753",
            "RtnCode"               : "300",
            "AllPayLogisticsID"     : "2583129",
            "Description"           : "轉交配送中",
            "ClientID"              : "",
            "Transport"             : "黑貓",
            "Status"                : 1
        }, {
            "CheckID"               : "4718037235420",
            "Name"                  : "三重一營業本所",
            "Date"                  : "20161004081513",
            "RtnCode"               : "310",
            "AllPayLogisticsID"     : "2583129",
            "Description"           : "配完",
            "ClientID"              : "",
            "Transport"             : "黑貓",
            "Status"                : 1
        }],
        "4718037236366" : [{
            "CheckID"               : "4718037236366",
            "Name"                  : "宜蘭營業本所",
            "Date"                  : "20161003163751",
            "RtnCode"               : "300",
            "AllPayLogisticsID"     : "2583129",
            "Description"           : "轉運中",
            "ClientID"              : "",
            "Transport"             : "黑貓",
            "Status"                : 1
        }, {
            "CheckID"               : "4718037236366",
            "Name"                  : "三重一營業本所",
            "Date"                  : "20161004072045",
            "RtnCode"               : "300",
            "AllPayLogisticsID"     : "2583129",
            "Description"           : "配送中",
            "ClientID"              : "",
            "Transport"             : "黑貓",
            "Status"                : 1
        }, {
            "CheckID"               : "4718037236366",
            "Name"                  : "三重一營業本所",
            "Date"                  : "20161004080753",
            "RtnCode"               : "300",
            "AllPayLogisticsID"     : "2583129",
            "Description"           : "轉交配送中",
            "ClientID"              : "",
            "Transport"             : "黑貓",
            "Status"                : 1
        }, {
            "CheckID"               : "4718037236366",
            "Name"                  : "三重一營業本所",
            "Date"                  : "20161004081513",
            "RtnCode"               : "310",
            "AllPayLogisticsID"     : "2583129",
            "Description"           : "配完",
            "ClientID"              : "",
            "Transport"             : "黑貓",
            "Status"                : 1
        }]
    },
    "customer"      : {
        "name"      : "林先生",
        "address"   : "台北市松山區",
        "phone"     : "0937000000"
    },
    "buyer"      : {
        "name"      : "陳小姐",
        "address"   : "台北市士林區",
        "email"     : "fgh@mail.com",
        "phone"     : "0912345678"
    },
    "status"       : "6"
    }]
 }
HTTP/1.1 200 OK
{
    "status" : "fail",
    "code"   : "01",
    "msg"    : "訂單編號為空"
}

Order - 取得訂單內容(post方法)

利用提供的 訂單號碼 取得訂單資訊,包含開立時的商品資料與折讓紀錄),此功能有訪問頻率限制 ( 每分鐘 30 次 ),若超過將會回傳 429: Too Many Attempts.,除 Response 外,API 在標頭也會回傳 X-RateLimit-Limit、X-RateLimit-Remaining、Retry-After ( 如果到達限制次數就只能得到 Retry-After )

POST

https://{company}.ecfit.cc/api/orderContent

Header

Field
Type
Description

X-RateLimit-Limit

Integer

指定時間內最大允許訪問次數

X-RateLimit-Remaining

Integer

指定時間內剩餘訪問次數

Retry-After

Integer

距離下次重新請求的等待時間

Parameter

Field
Type
Description

orderNo

String

訂單號碼,ex : EC201601010001Size range: 16

Success 200

Field
Type
Description

status

String

開立結果 success : 成功,fail : 失敗

code

String

結果代號

00

String

查詢成功

01

String

訂單編號為空

11

String

訂單不存在

msg

String

回傳處理結果

content

Array[]

內容陣列

orderNo

String

原始訂單編號

ecfitNo

String

ECFIT訂單流水號

amount

Integer

訂單金額

invoiced

Integer

是否開立發票

invoiceNo

Integer

發票號碼

collection

Integer

代收金額

logisticsId

String

貨運公司

ban

String

買家統編

paidDate

Date

付款日期

NPO

String

捐贈碼

demand

String

是否有索取紙本發票

creditNo

String

信用卡後4碼

carrierType

String

載具類型

carrierId

String

載具號碼

AllPayLogisticsID

String

綠界物流交易編號

status

String

0 : 尚未檢查1 : 上傳完成2 : 等待開立發票 (只有有配合開立發票的訂單才會有此狀態)3 : 發票開立完成 (只有有配合開立發票的訂單才會有此狀態)5 : 發票開立完成等待撿貨( 無發票的訂單是 1 的時候就是上傳成功準備出貨,需要開立發票的訂單需要到5 才是可以出貨。以上狀態都可以按訂單結案。 )4 : 撿貨中( 代表此訂單正在理貨批次處理中,但是不代表此訂單今天可以出貨,有可能因為缺貨所以無法包貨成功。撿貨中不可以結案只能取消。 )--以下狀態代表此訂單生命週期結束--6 : 完成( 代表此訂單已經包貨完畢,會看得到物流編號。但是不一定代表已經被物流公司收走,因為物流公司收貨時間是固定。 )8 : 結案( 結案代表為您已經人工將此訂單點選為結案,此訂單已經不會再被處理 )10 : 取消( 代表此訂單您已經人工點選取消,此訂單已經不會再被處理 )99 : 訂單錯誤( 代表此訂單建立失敗,可於修正並刪除錯誤紀錄後重新建立 )

production

Array[]

購買商品陣列

pid

String

商品品號

barcode

String

商品條碼

name

String

名稱

quantity

Integer

數量

price

Integer

單價

serial

Integer

流水編號

deliveryRecord

Object[]

物流紀錄

key

String

物流 ID

value

Array[]

物流過程

customer

Object

消費者資料

name

String

名字

address

String

地址

phone

String

電話

buyer

Object

購買人資料

name

String

名字

address

String

地址

email

String

信箱

phone

String

電話

HTTP/1.1 200 OK
{
	"status"        : "success",
	"code"          : "00",
	"msg"           : "查詢成功",
	"content"       : [{
		"orderNo"       : "EC20160101001",
		"ecfitNo"       : "00000013332",
		"amount"        : 5040,
		"remain"        : 3360,
		"invoiced"      : "Y",
		"invoiceNo"     : "AB00000001",
		"collection"    : 0,
		"logisticsId"   : "黑貓宅急便",
		"ban"           : "",
		"paidDate"      : "2016-01-01",
		"NPO"           : "",
		"demand"        : "N",
		"creditNo"      : "1234",
		"carrierType"   : "",
		"carrierId"     : "",
            "AllPayLogisticsID" : "2583129",
		"status"        : "8",
		"production"    : [{
			"id"        : "0104030143",
			"name"      : "【Fitty】運動壓力褲/壓縮褲(女款・七分全黑)【M】",
			"quantity"  : 1,
			"price"     : 1680
		},
		{
			"id"        : "0204030255",
			"name"      : "【Fitty】運動壓力褲/壓縮褲(邊彩七分款)﹣舞蝶粉【舞蝶粉 M】",
			"quantity"  : 1,
			"price"     : 1680
		}],
		"deliveryRecord" : {
			"4718037235420" : [{
				"CheckID"     : "4718037235420",
				"Name"        : "宜蘭營業本所",
				"Date"        : "20161003163751",
				"Description" : "轉運中",
				"ClientID"    : "",
				"Transport"   : "黑貓",
				"Status"      : 1
			}, {
				"CheckID"     : "4718037235420",
				"Name"        : "三重一營業本所",
				"Date"        : "20161004072045",
				"Description" : "配送中",
				"ClientID"    : "",
				"Transport"   : "黑貓",
				"Status"      : 1
			}, {
				"CheckID"     : "4718037235420",
				"Name"        : "三重一營業本所",
				"Date"        : "20161004080753",
				"Description" : "轉交配送中",
				"ClientID"    : "",
				"Transport"   : "黑貓",
				"Status"      : 1
			}, {
				"CheckID"     : "4718037235420",
				"Name"        : "三重一營業本所",
				"Date"        : "20161004081513",
				"Description" : "配完",
				"ClientID"    : "",
				"Transport"   : "黑貓",
				"Status"      : 1
			}],
			"4718037236366" : [{
				"CheckID"     : "4718037236366",
				"Name"        : "宜蘭營業本所",
				"Date"        : "20161003163751",
				"Description" : "轉運中",
				"ClientID"    : "",
				"Transport"   : "黑貓",
				"Status"      : 1
			}, {
				"CheckID"     : "4718037236366",
				"Name"        : "三重一營業本所",
				"Date"        : "20161004072045",
				"Description" : "配送中",
				"ClientID"    : "",
				"Transport"   : "黑貓",
				"Status"      : 1
			}, {
				"CheckID"     : "4718037236366",
				"Name"        : "三重一營業本所",
				"Date"        : "20161004080753",
				"Description" : "轉交配送中",
				"ClientID"    : "",
				"Transport"   : "黑貓",
				"Status"      : 1
			}, {
				"CheckID"     : "4718037236366",
				"Name"        : "三重一營業本所",
				"Date"        : "20161004081513",
				"Description" : "配完",
				"ClientID"    : "",
				"Transport"   : "黑貓",
				"Status"      : 1
			}]
		},
		"customer"      : {
			"name"      : "林先生",
			"address"   : "台北市松山區",
			"phone"     : "0937000000"
		},
		"buyer"      : {
			"name"      : "陳小姐",
			"address"   : "台北市士林區",
			"email"     : "fgh@mail.com",
			"phone"     : "0912345678"
		}
	}]
}
HTTP/1.1 200 OK
{
    "status" : "fail",
    "code"   : "01",
    "msg"    : "訂單編號為空"
}

Order - 取消訂單

POST

https://{company}.ecfit.cc/api/orderCancel/:orderNo

Parameter

Field
Type
Description

orderNo

String

訂單編號,ex : EC201601010001Size range: 16

Success 200

Field
Type
Description

status

String

開立結果 success : 成功,fail : 失敗

code

String

結果代號

00

String

成功

01

String

訂單不存在

02

String

訂單已為 取消 或 結案

03

String

訂單狀態為 錯誤 不可執行取消

msg

String

回傳處理結果

orderNo

String

訂單編號

orderstatusS

String

訂單處理前狀態

orderstatusE

String

訂單處理後狀態

HTTP/1.1 200 OK
{
    "status"         : "success",
    "code"           : "00",
    "msg"            : "訂單已取消出貨",
    "orderNo"        : "EC201601010001",
    "orderstatusS"   : "撿貨中",
    "orderstatusE"   : "訂單取消"
}

Order - 開立訂單

POST

https://{company}.ecfit.cc/api/order

Parameter

Field
Type
Description

orderNo

String

訂單編號Size range: 16

amount

Integer

訂單金額

paidDate

String

付款日期 ex: 2016-01-01Size range: 10

creditNo

Integer

信用卡末 4 碼(使用非信用卡消費時可以留空)Size range: 4

NPO

String

捐贈給社福單位的愛心碼 (不捐贈可以留空)

ban

String

買方統編 (沒有時可以留空)Size range: 8

taxType

String

課稅類別 1 : 應稅, 2 : 零稅率, 3 : 免稅, 9 : 混稅(限收銀機發票無法分辨時使用) 預設為 1 : 應稅Allowed values: 1, 2, 3, 9

clearanceMark

String

通關方式 1 : 非經海關出口, 2 : 經海關出口 (若課稅類別不為零稅率者,此欄無須填寫)Allowed values: 1, 2

invoiced

String

是否開立發票Size range: 1Allowed values: N, Y

demand

String

是否索取發票Size range: 1Allowed values: N, Y

carrierType

String

使用載具 cellphone : 手機載具, citizen : 自然人憑證 (若不使用載具此欄可以不填)Allowed values: cellphone, citizen

carrierId

String

載具號碼

collection

Integer

代收款項

arrive

String

預計出貨日 ex: 2016-01-01Size range: 10

arriveType

String

配送時段代號,預設為 4(不指定) [09:0012:00 上午到貨為1/12:0017:00 下午到貨為2/不指定為4]

logisticsId

String

貨運公司[黑貓宅急便/通盈/全家/綠界/海外/自訂1]

code

String

商店代碼(貨運為全家/綠界時必填,非全家/綠界可以不傳或是傳空值)

note

Text

備註

production

Array[]

購買商品陣列

barcode

String

商品條碼

name

String

名稱

quantity

Integer

數量

price

Integer

單價

taxType

Integer

商品課稅類別, 1 : 應稅, 2 : 零稅率, 3 : 免稅,預設為 1 : 應稅API 開立發票以「taxType」為開立依據;若課稅類別為「混稅」之發票,須另外填寫個別商品之稅率及稅別,預設為 應稅Allowed values: 1, 2, 3

taxRate

Integer

商品稅率,填寫正整數,預設為 5(%)API 開立發票以「taxType」為開立依據;若課稅類別為「混稅」之發票,須另外填寫商品之個別稅率及稅別,預設為 應稅

customer

Object

消費者資料 (姓名、地址、郵遞區號、電話 為必填)

name

String

姓名

address

String

地址

postal

String

郵遞區號

phone

String

電話

buyer

Object

購買人資料 (欲開立發票者須填寫 姓名、地址、郵遞區號、信箱、電話,用以發票與折讓單的開立及寄送,其餘狀況則不須填寫)

name

String

姓名

address

String

地址

postal

String

郵遞區號

email

String

信箱

phone

String

電話

{
    "orderNo": "EC2016010100001",
    "amount": "1680",
    "paidDate": "2016-09-01",
    "creditNo": "1234",
    "invoiced": "Y",
    "ban": "",
    "taxType": "1",
    "clearanceMark": "1",
    "NPO": "919",
    "demand": "N",
    "collection": 0,
    "arrive": "2016-11-4",
    "arriveType": "4",
    "note": "Test",
    "logisticsId": "黑貓宅急便",
    "production": [
        {
            "barcode": "0206030028",
            "name": "【Fitty】運動壓力褲(秋冬九分・女款﹣經典全黑)2015 版 ",
            "quantity": "1",
            "price": "1480",
            "taxType": "1",
            "taxRate": "5"
        },
        {
            "barcode": "shipment",
            "name": "運費",
            "quantity": "1",
            "price": "200"
        }
    ],
    "customer": {
        "name": "林先生",
        "address": "台北市松山區",
        "postal": "204",
        "phone": "0937000000"
    },
    "buyer": {
        "name": "陳小姐",
        "address": "台北市中山區",
        "email": "fghe@mail.com",
        "postal": "104",
        "phone": "0912345678"
    }
}

Success 200

Field
Type
Description

status

String

開立結果 success : 成功,fail : 失敗

code

String

結果代號

00

String

成功

01

String

訂單編號為空

02

String

是否開立發票欄位為空值

03

String

買方統一編號錯誤

04

String

捐贈碼錯誤

05

String

捐贈發票不得開立買方統一編號

06

String

捐贈發票不得索取

07

String

消費者資訊有缺

08

String

品項空白 或 產品數量為 0

09

String

金額錯誤 (與產品價格對不起來)

10

String

不明原因問題

msg

String

回傳處理結果

orderNo

String

訂單編號

HTTP/1.1 200 OK
{
    "status"         : "success",
    "code"           : "00",
    "msg"            : "成功",
    "orderNo"        : "EC20160101001"
}
HTTP/1.1 200 OK
{
    "status"         : "fail",
    "code"           : "01",
    "msg"            : "訂單編號為空"
}

Invoice

Invoice - 開立發票

POST

https://{company}.ecfit.cc/api/invoice

Parameter

Field
Type
Description

orderNo

String

訂單編號Size range: 16

amount

Integer

訂單金額

paidDate

String

付款日期 ex: 2016-01-01Size range: 10

creditNo

Integer

信用卡末 4 碼(使用非信用卡消費時可以留空)Size range: 4

note

String

備註Size range: 200

NPO

String

捐贈給社福單位的愛心碼 (不捐贈可以留空)

buyerBan

String

買方統編 (沒有時可以留空)Size range: 8

demand

Number

是否索取發票Allowed values: 0, 1

carrierType

String

使用載具 cellphone : 手機載具, citizen : 自然人憑證 (若不使用載具此欄可以不填)Allowed values: cellphone, citizen

carrierId

String

載具號碼

files

string

是否夾帶檔案,0:否、1:是Allowed values: 0, 1

taxType

String

課稅類別 1 : 應稅, 2 : 零稅率, 3 : 免稅, 9 : 混稅(限收銀機發票無法分辨時使用) 預設為 1 : 應稅Allowed values: 1, 2, 3, 9

clearanceMark

String

通關方式 1 : 非經海關出口, 2 : 經海關出口 (若課稅類別不為零稅率者,此欄無須填寫)Allowed values: 1, 2

production

Array[]

購買商品陣列

barcode

String

商品條碼

name

String

名稱

quantity

Integer

數量

price

Integer

單價

taxType

Integer

商品課稅類別, 1 : 應稅, 2 : 零稅率, 3 : 免稅,預設為 1 : 應稅API 開立發票以「taxType」為開立依據;若課稅類別為「混稅」之發票,須另外填寫個別商品之稅率及稅別,預設為 應稅Allowed values: 1, 2, 3

taxRate

Integer

商品稅率,填寫正整數,預設為 5(%)API 開立發票以「taxType」為開立依據;若課稅類別為「混稅」之發票,須另外填寫商品之個別稅率及稅別,預設為 應稅

customer

Object

消費者資料 (姓名、地址、信箱為必填,用以發票與折讓單的寄送及開立)

name

String

名字

postal

String

郵遞區號

address

String

地址

email

String

信箱

phone

String

電話

{
    "orderNo": "EC20160101001",
    "amount": 5040,
    "paidDate": "2016-01-01",
    "creditNo": "1234",
    "note": "TEST",
    "buyerBan": "12345678",
    "NPO": 876,
    "demand": 1,
    "carrierType": "cellphone",
    "carrierId": "/425WP5Q",
    "taxType": "1",
    "clearanceMark": "1",
    "production": [
        {
            "barcode": "0104030143",
            "name": "【Fitty】運動壓力褲/壓縮褲(女款・七分全黑)【M】",
            "quantity": 1,
            "price": 1680,
            "taxType": "1",
            "taxRate": "5"
        },
        {
            "barcode": "0204030255",
            "name": "【Fitty】運動壓力褲/壓縮褲(邊彩七分款)﹣舞蝶粉【舞蝶粉 M】",
            "quantity": 2,
            "price": 1680,
            "taxType": "1",
            "taxRate": "5"
        }
    ],
    "customer": {
        "name": "林先生",
        "postal": "105",
        "address": "台北市松山區",
        "email": "abcde@mail.com",
        "phone": "0937000000"
    }
}

Success 200

Field
Type
Description

status

String

開立結果 success : 成功,fail : 失敗

code

String

結果代號

00

String

開立成功

01

String

訂單編號為空

02

String

無法產生開立時間

03

String

買方統一編號錯誤

04

String

捐贈碼錯誤

05

String

捐贈發票不得開立買方統一編號

06

String

捐贈發票不得索取

07

String

金額錯誤 (與產品價格對不起來)

08

String

消費者資訊有缺

09

String

品項空白 或 產品數量為 0

10

String

不明原因問題

msg

String

回傳處理結果

orderNo

String

訂單編號

invoice

String

發票號碼

invoicingDate

DateTime

開立時間

HTTP/1.1 200 OK
{
    "status"         : "success",
    "code"           : "00",
    "msg"            : "開立成功",
    "orderNo"        : "EC20160101001",
    "invoice"        : "AB00000001",
    "invoicingDate"  : "2016-01-01 01:01:01"
}
HTTP/1.1 200 OK
{
    "status"         : "fail",
    "code"           : "01",
    "msg"            : "訂單金額有誤"
}

Invoice - 作廢發票

POST

https://{company}.ecfit.cc/api/invoiceCancel/:invoice

Parameter

Field
Type
Description

invoice

String

發票號碼,ex : AB00000001Size range: 10

Success 200

Field
Type
Description

status

String

開立結果 success : 成功,fail : 失敗

code

String

結果代號

00

String

作廢成功

01

String

發票不存在

02

String

發票尚未開立完成

03

String

此發票已被作廢

04

String

已過允許作廢期間

msg

String

回傳處理結果

invoice

String

發票號碼

cancelDate

DateTime

作廢時間

HTTP/1.1 200 OK
{
    "status"         : "success",
    "code"           : "00",
    "msg"            : "作廢成功",
    "invoice"        : "AB00000001",
    "cancelDate"     : "2016-01-01 01:01:01"
}
HTTP/1.1 200 OK
{
    "status"         : "fail",
    "code"           : "01",
    "msg"            : "發票不存在"
}

Invoice - 取得發票內容

利用提供的 發票號碼 :invoice 取得發票資訊,包含開立時的商品資料與折讓紀錄

GET

https://{company}.ecfit.cc/api/invoice/:invoice

Parameter

Field
Type
Description

invoice

String

發票號碼,ex : AB00000001Size range: 10

Success 200

Field
Type
Description

status

String

發票開立結果:0. 檢查發票內容中1. 等待確認上傳中2. 加值中心正上傳至財政部3. 等待財政部回應開立資訊4. 發票開立成功5. 開立錯誤7. 發票已註銷8. 發票已作廢9. 加值中心處理中

code

String

結果代號

00

String

查詢成功

01

String

發票號碼為空

02

String

發票不存在

msg

String

回傳處理結果

orderNo

String

訂單編號

amount

String

訂單金額

remain

String

有效金額

invoice

String

發票號碼

randomNum

String

隨機碼

buyerBan

String

買家統編

paidDate

Date

付款日期

creditNo

Integer

信用卡末 4 碼(使用非信用卡消費時可以留空)

invoicingDate

DateTime

開立時間

cancel

String

是否作廢? (1 : 已作廢)

cancelDate

DateTime

作廢日期 (若無作廢沒有值)

NPO

String

捐贈碼

demand

Integer

是否有索取紙本發票

carrierType

String

使用載具 cellphone : 手機載具, citizen : 自然人憑證 (若不使用載具此欄為空)Allowed values: cellphone, citizen

carrierId

String

載具號碼

url

String

發票明細連結

production

Array[]

購買商品陣列

pid

String

商品品號

barcode

String

商品條碼

name

String

名稱

quantity

Integer

數量

price

Integer

單價

customer

Object

消費者資料

name

String

名字

postal

String

郵遞區號

address

String

地址

email

String

信箱

phone

String

電話

allowacne

Array[]

折讓紀錄 (若沒有折讓則為空)

allowacneNo

String

折讓單號

allowanceDate

DateTime

折讓日期

cancel

String

是否作廢? (1 : 已作廢)

cancelDate

DateTime

折讓作廢日期 (若無作廢沒有值)

reason

String

折讓作廢原因 (若無作廢沒有值)

amount

String

折讓金額

production

Array[]

折讓商品陣列

id

String

商品 ID

name

String

名稱

quantity

Integer

數量

price

Integer

單價

HTTP/1.1 200 OK
{
    "status"        : "發票開立成功",
    "code"          : "00",
    "msg"           : "查詢成功",
    "orderNo"       : "EC20160101001",
    "amount"        : 5040,
    "remain"        : 3360,
    "invoice"       : "AB00000001",
    "randomNum"     : "0000",
    "buyerBan"      : "",
    "paidDate"      : "2016-01-01",
    "creditNo"      : "1234",
    "invoicingDate" : "2016-01-01 01:01:01",
    "NPO"           : "",
    "demand"        : 0,
    "carrierType"   : "cellphone",
    "carrierId"     : "/425WP5Q",
    "production"    : [{
        "pid"       : "0104030143",
        "barcode"   : "0104030143",
        "name"      : "【Fitty】運動壓力褲/壓縮褲(女款・七分全黑)【M】",
        "quantity"  : 1,
        "price"     : 1680
    },
    {
        "pid"       : "0204030255",
        "barcode"   : "0204030255",
        "name"      : "【Fitty】運動壓力褲/壓縮褲(邊彩七分款)﹣舞蝶粉【舞蝶粉 M】",
        "quantity"  : 1,
        "price"     : 1680
    }],
    "customer"      : {
        "name"      : "林先生",
        "postal"    : "105",
        "address"   : "台北市松山區",
        "email"     : "abcde@mail.com",
        "phone"     : "0937000000"
    },
    "allowacne"        : [{
        "allowacneNo"  : "AW0000000000001",
        "allowanceDate": "2016-01-02 01:01:01",
        "cancel"       : 0,
        "cancelDate"   : "0000-00-00 00:00:00",
        "reason"       : "",
        "amount"       : 1680,
        "production"   : [{
            "id"       : "0104030143",
            "name"     : "【Fitty】運動壓力褲/壓縮褲(女款・七分全黑)【M】",
            "quantity" : 1,
            "price"    : 1680
        }]
    }]
}
HTTP/1.1 200 OK
{
    "status" : "fail",
    "code"   : "01",
    "msg"    : "發票號碼為空"
}

Invoice - 取得發票內容(依訂單編號)

利用提供的 訂單編號 :order 取得所有發票資訊,包含開立時的商品資料與折讓紀錄

GET

https://{company}.ecfit.cc/api/invoiceByOrder/:order

Parameter

Field
Type
Description

order

String

訂單編號,ex : AB00000001Size range: 10

Success 200

Field
Type
Description

status

String

開立結果 success : 成功,fail : 失敗

code

String

結果代號

00

String

查詢成功

02

String

發票不存在

03

String

訂單編號為空

msg

String

回傳處理結果

invoiceArr

Array[]

所有發票資料

orderNo

String

訂單編號

status

String

開立結果:0. 檢查發票內容中1. 等待確認上傳中2. 加值中心正上傳至財政部3. 等待財政部回應開立資訊4. 發票開立成功5. 開立錯誤7. 發票已註銷8. 發票已作廢9. 加值中心處理中

amount

String

訂單金額

remain

String

有效金額

invoice

String

發票號碼

randomNum

String

隨機碼

buyerBan

String

買家統編

paidDate

Date

付款日期

creditNo

Integer

信用卡末 4 碼(使用非信用卡消費時可以留空)

invoicingDate

DateTime

開立時間

cancel

String

是否作廢? (1 : 已作廢)

cancelDate

DateTime

作廢日期 (若無作廢沒有值)

NPO

String

捐贈碼

demand

Integer

是否有索取紙本發票

carrierType

String

使用載具 cellphone : 手機載具, citizen : 自然人憑證 (若不使用載具此欄為空)Allowed values: cellphone, citizen

carrierId

String

載具號碼

url

String

發票明細連結

production

Array[]

購買商品陣列

pid

String

商品品號

barcode

String

商品條碼

name

String

名稱

quantity

Integer

數量

price

Integer

單價

customer

Object

消費者資料

name

String

名字

postal

String

郵遞區號

address

String

地址

email

String

信箱

phone

String

電話

allowacne

Array[]

折讓紀錄 (若沒有折讓則為空)

allowacneNo

String

折讓單號

allowanceDate

DateTime

折讓日期

cancel

String

是否作廢? (1 : 已作廢)

cancelDate

DateTime

折讓作廢日期 (若無作廢沒有值)

reason

String

折讓作廢原因 (若無作廢沒有值)

amount

String

折讓金額

production

Array[]

折讓商品陣列

id

String

商品 ID

name

String

名稱

quantity

Integer

數量

price

Integer

單價

HTTP/1.1 200 OK
{
    "status"            : "success",
    "code"              : "00",
    "msg"               : "查詢成功",
    "invoiceArr"        : [{
        "orderNo"       : "EC20160101001",
        "status"        : "發票開立成功",
        "amount"        : 5040,
        "remain"        : 3360,
        "invoice"       : "AB00000001",
        "randomNum"     : "0000",
        "buyerBan"      : "",
        "paidDate"      : "2016-01-01",
        "invoicingDate" : "2016-01-01 01:01:01",
        "NPO"           : "",
        "demand"        : "0",
        "creditNo"      : "",
        "carrierType"   : "cellphone",
        "carrierId"     : "/425WP5Q",
        "production"    : [{
            "pid"       : "0104030143",
            "barcode"   : "0104030143",
            "name"      : "【Fitty】運動壓力褲/壓縮褲(女款・七分全黑)【M】",
            "quantity"  : 1,
            "price"     : 1680
        }],
        "customer"      : {
            "name"      : "林先生",
            "postal"    : "105",
            "address"   : "台北市松山區",
            "email"     : "abcde@mail.com",
            "phone"     : "0937000000"
        },
        "allowacne"        : [{
            "allowacneNo"  : "AW0000000000001",
            "allowanceDate": "2016-01-02 01:01:01",
            "cancel"       : 0,
            "cancelDate"   : "0000-00-00 00:00:00",
            "reason"       : "",
            "amount"       : 1680,
            "production"   : [{
                "id"       : "0104030143",
                "name"     : "【Fitty】運動壓力褲/壓縮褲(女款・七分全黑)【M】",
                "quantity" : 1,
                "price"    : 1680
            }]
        }]
    }]
}
HTTP/1.1 200 OK
{
    "status" : "fail",
    "code"   : "03",
    "msg"    : "訂單編號為空"
}

Invoice - 取得發票內容(多筆)

提供 多筆訂單編號 或 多筆發票號碼 查詢發票資訊

POST

https://{company}.ecfit.cc/api/postInvoice

Parameter

Field
Type
Description

orderNo[]

Array

訂單編號

invoiceNo[]

Array

發票號碼

{
    "orderNo":[
    "EC2008010100001",
    "EC2009010100001",
    "EC2010010100001"
 ],
    "invoiceNo":[
   "AB00000002",
   "AB00000003",
   "AB00000005"
  ]
}

Success 200

Field
Type
Description

status

String

開立結果 success : 成功,fail : 失敗

code

String

結果代號

00

String

查詢成功

01

String

發票不存在

msg

String

回傳處理結果

orderNo

Array[]

依訂單編號查詢結果

orderNo

String

訂單編號

invoice

String

發票號碼

invoicingDate

Date

發票開立日期

status

String

發票開立結果:0. 檢查發票內容中1. 等待確認上傳中2. 加值中心正上傳至財政部3. 等待財政部回應開立資訊4. 發票開立成功5. 開立錯誤7. 發票已註銷8. 發票已作廢9. 加值中心處理中

amount

Integer

發票開立金額

remain

Integer

發票有效金額

invoiceNo

Array[]

依發票號碼查詢結果

orderNo

String

訂單編號

invoice

String

發票號碼

invoicingDate

Date

發票開立日期

status

String

發票開立結果

amount

Integer

發票開立金額

remain

Integer

發票有效金額

HTTP/1.1 200 OK
{
    "orderNo": {
        "EC20080101001": [
            {
                "orderNo": "EC20080101001",
                "invoice": "",
                "invoicingDate": null,
                "status": "開立錯誤",
                "amount": "1680",
                "remain": "1680"
            }
        ],
        "EC20090101001": [
            {
                "orderNo": "EC20090101001",
                "invoice": "AB00000001",
                "invoicingDate": "2016-01-01 01:01:01",
                "status": "發票開立成功",
                "amount": "1680",
                "remain": "1680"
            }
        ],
        "EC20100101001": [
            {
                "orderNo": "EC20100101001",
                "invoice": "BC00000002",
                "invoicingDate": "2016-01-01 01:01:01",
                "status": "發票開立成功",
                "amount": "1680",
                "remain": "1680"
            }
        ]
    },
    "invoiceNo": {
       "AB00000002": [
            {
                "orderNo": "EC20100101002",
                "invoice": "AB00000002",
                "invoicingDate": "2017-06-20 15:26:55",
                "status": "發票開立成功",
                "amount": "1026",
                "remain": "1026"
            }
        ],
        "AB00000003": [
            {
                "orderNo": "EC20100101003",
                "invoice": "AB00000003",
                "invoicingDate": "2017-06-16 11:21:24",
                "status": "發票開立成功",
                "amount": "1026",
                "remain": "1026"
            }
        ],
        "AB00000005": [
            {
                "orderNo": "EC20100101006",
                "invoice": "AB00000005",
                "invoicingDate": "2017-06-16 11:21:22",
                "status": "發票開立成功",
                "amount": "1680",
                "remain": "1680"
            }
        ]
    },
    "status": "success",
    "code": "00",
    "msg": "查詢成功"
}
HTTP/1.1 200 OK
{
    "status": "fail",
    "code": "01",
    "msg": "發票號碼為空"
}

Invoice - 開立發票 - 測試用

與開立發票傳遞的參數完全相同,但並不會真正開立發票,只有做傳遞參數的格式以及內容檢查,並固定回傳假的發票號嗎 (TE00000000)

POST

https://{company}.ecfit.cc/api/invoice/test

Parameter

Field
Type
Description

orderNo

String

訂單編號Size range: 16

amount

Integer

訂單金額

paidDate

String

付款日期 ex: 2016-01-01Size range: 10

NPO

String

捐贈給社福單位的愛心碼 (不捐贈可以留空)

buyerBan

String

買方統編 (沒有時可以留空)Size range: 8

demand

Number

是否索取發票Allowed values: 0, 1

carrierType

String

使用載具 cellphone : 手機載具, citizen : 自然人憑證 (若不使用載具此欄可以不填)Allowed values: cellphone, citizen

carrierId

String

載具號碼

files

string

是否夾帶檔案,0:否、1:是Allowed values: 0, 1

production

Array[]

購買商品陣列

barcode

String

商品條碼

name

String

名稱

quantity

Integer

數量

price

Integer

單價

customer

Object

消費者資料 (姓名、地址、信箱為必填,用以發票與折讓單的寄送及開立)

name

String

名字

address

String

地址

email

String

信箱

phone

String

電話

{
    "orderNo": "EC20160101001",
    "amount": 5040,
    "paidDate": "2016-01-01",
    "buyerBan": "12345678",
    "NPO": 876,
    "demand": 1,
    "carrierType": "cellphone",
    "carrierId": "/425WP5Q",
    "production": [
        {
            "barcode": "0104030143",
            "name": "【Fitty】運動壓力褲/壓縮褲(女款・七分全黑)【M】",
            "quantity": 1,
            "price": 1680
        },
        {
            "barcode": "0204030255",
            "name": "【Fitty】運動壓力褲/壓縮褲(邊彩七分款)﹣舞蝶粉【舞蝶粉 M】",
            "quantity": 2,
            "price": 1680
        }
    ],
    "customer": {
        "name": "林先生",
        "address": "台北市松山區",
        "email": "abcde@mail.com",
        "phone": "0937000000"
    }
}

Success 200

Field
Type
Description

status

String

開立結果 success : 成功,fail : 失敗

code

String

結果代號

00

String

開立成功

01

String

訂單編號為空

02

String

無法產生開立時間

03

String

買方統一編號錯誤

04

String

捐贈碼錯誤

05

String

捐贈發票不得開立買方統一編號

06

String

捐贈發票不得索取

07

String

金額錯誤 (與產品價格對不起來)

08

String

消費者資訊有缺

09

String

品項空白 或 產品數量為 0

10

String

不明原因問題

msg

String

回傳處理結果

orderNo

String

訂單編號

invoice

String

發票號碼

invoicingDate

DateTime

開立時間

HTTP/1.1 200 OK
{
    "status"         : "success",
    "code"           : "00",
    "msg"            : "開立成功",
    "orderNo"        : "EC20160101001",
    "invoice"        : "TE00000000",
    "invoicingDate"  : "2016-01-01 01:01:01"
}
HTTP/1.1 200 OK
{
    "status"         : "fail",
    "code"           : "01",
    "msg"            : "訂單金額有誤"
}

Allowance

Allowance - 折讓發票

POST

https://{company}.ecfit.cc/api/allowance

Parameter

Field
Type
Description

invoice

String

發票號碼,ex : AB00000001Size range: 10

production

Array[]

退貨項目

name

String

開立的商品名稱

quantity

Integer

數量 (需小於等於剩餘數量)

price

Integer

單價 (不一定要跟原本相同)

{
    "invoice": "AB00000001",
    "production": [
        {
            "name": "【Fitty】運動壓力褲/壓縮褲(女款・七分全黑)【M】",
            "quantity": 1,
            "price": 1680
        }
    ]
}

Success 200

Field
Type
Description

status

String

開立結果 success : 成功,fail : 失敗

code

String

結果代號

00

String

等待折讓單確認

01

String

發票號碼為空

02

String

發票不存在

03

String

沒有退貨商品

04

String

退貨超過購買數量

05

String

退貨商品中包含無購買的商品

06

String

退貨金額超過發票剩餘金額

07

String

不明原因問題

msg

String

回傳處理結果

allowanceSeq

String(16)

折讓序號

HTTP/1.1 200 OK
{
    "status"         : "success",
    "code"           : "00",
    "msg"            : "開立折讓成功",
    "allowanceSeq"   : "AB0000000100001001"
}
HTTP/1.1 200 OK
{
    "status" : "fail",
    "code"   : "01",
    "msg"    : "沒有發票號碼"
}

Allowance - 折讓確認

POST

https://{company}.ecfit.cc/api/allowanceConfirm

Parameter

Field
Type
Description

allowanceSeq

String

折讓序號Size range: 18

{
    "allowanceSeq": "AB0000000100001001"
}

Success 200

Field
Type
Description

status

String

開立結果 success : 成功,fail : 失敗

code

String

結果代號

00

String

折讓單已確認

01

String

折讓序號為空

02

String

折讓序號不存在

03

String

該折讓序號未在等待確認的狀態

04

String

不明原因問題

msg

String

回傳處理結果

allowance

String

折讓單號

allowanceDate

DateTime

折讓確認時間

HTTP/1.1 200 OK
{
    "status"     : "success",
    "code"       : "00",
    "msg"        : "折讓單已確認",
    "allowance"  : "AW0000000000001",
    "allowanceDate" : "2016-01-01 01:01:01"
}
HTTP/1.1 200 OK
{
    "status" : "fail",
    "code"   : "01",
    "msg"    : "折讓序號為空"
}

Allowance - 折讓作廢

POST

https://{company}.ecfit.cc/api/allowanceCancel

Parameter

Field
Type
Description

allowance

String

折讓單號Size range: 16

reason

Text

取消原因

{
    "allowance": "AW0000000000001",
    "reason": "消費者取消折讓"
}

Success 200

Field
Type
Description

status

String

開立結果 success : 成功,fail : 失敗

code

String

結果代號

00

String

折讓作廢成功

01

String

折讓單號為空

02

String

折讓單號不存在

03

String

取消原因為空

04

String

該折讓單已作廢

05

String

不明原因問題

msg

String

回傳處理結果

allowance

String

折讓單號

cancelDate

DateTime

折讓作廢時間

HTTP/1.1 200 OK
{
    "status"     : "success",
    "code"       : "00",
    "msg"        : "作廢成功",
    "allowance"  : "AW0000000000001",
    "cancelDate" : "2016-01-01 01:01:01"
}
HTTP/1.1 200 OK
{
    "status" : "fail",
    "code"   : "01",
    "msg"    : "折讓單號為空或不存在"
}

Stock

Stock - 庫存查詢

此功能有訪問頻率限制 ( 每分鐘 5 次 ),若超過將會回傳 429: Too Many Attempts.,除 Response 外,API 在標頭也會回傳 X-RateLimit-Limit、X-RateLimit-Remaining、Retry-After ( 如果到達限制次數就只能得到 Retry-After )

GET

https://{company}.ecfit.cc/api/stock/:barcode

Header

Field
Type
Description

X-RateLimit-Limit

Integer

指定時間內最大允許訪問次數

X-RateLimit-Remaining

Integer

指定時間內剩餘訪問次數

Retry-After

Integer

距離下次重新請求的等待時間

Parameter

Field
Type
Description

barcode

String

產品條碼

Success 200

Field
Type
Description

status

String

開立結果 success : 成功,fail : 失敗

code

String

結果代號

00

String

查詢成功

01

String

該條碼不存在

msg

String

回傳處理結果

barcode

String

條碼

name

String

名稱

spec

String

規格

quantity

Integer

系統庫存

availQuantity

Integer

可用庫存

HTTP/1.1 200 OK
{
    "status"          : "success",
    "code"            : "00",
    "msg"             : "查詢成功",
    "barcode" 	      : "0206030028",
    "name"            : "【Fitty】運動壓力褲(秋冬九分・女款﹣經典全黑)2015 版",
    "spec"            : "M",
    "quantity"        : 500
    "availQuantity"   : 400
}
HTTP/1.1 200 OK
{
    "status" : "fail",
    "code"   : "01",
    "msg"    : "該條碼不存在"
}

Stock - 庫存查詢 (多筆)

此功能有訪問頻率限制 ( 每分鐘 5 次 ),若超過將會回傳 429: Too Many Attempts.,除 Response 外,API 在標頭也會回傳 X-RateLimit-Limit、X-RateLimit-Remaining、Retry-After ( 如果到達限制次數就只能得到 Retry-After )

POST

https://{company}.ecfit.cc/api/stock

Header

Field
Type
Description

X-RateLimit-Limit

Integer

指定時間內最大允許訪問次數

X-RateLimit-Remaining

Integer

指定時間內剩餘訪問次數

Retry-After

Integer

距離下次重新請求的等待時間

Parameter

Field
Type
Description

barcode[]

Array

產品條碼

["barcodeNotExist", "4718037231164", "4718037231163", ...]

Success 200

Field
Type
Description

status

String

開立結果 success : 成功,fail : 失敗

code

String

結果代號

00

String

查詢成功

02

String

超過單次能查詢的數量上限 (100 筆)

msg

String

回傳處理結果

stock

Object

庫存物件

barcode

String

條碼

name

String

名稱

spec

String

規格

quantity

Integer

系統庫存

availQuantity

Integer

可用庫存

HTTP/1.1 200 OK
{
    "status"     : "success",
    "code"       : "00",
    "msg"        : "查詢成功",
    "stock"      : {
        "barcodeNotExist" : {
            "status"    : false,
            "msg"       : "該條碼不存在",
            "barcode"   : "barcodeNotExist"
        },
        "4718037231164" : {
            "status"         : true,
            "barcode"        : "4718037231164",
            "name"           : "【Fitty】超顯瘦 PS 機能運動褲",
            "spec"           : "XL",
            "quantity"       : 100
            "availQuantity"  : 50
        },
        "4718037231163" : {
            "status"         : true,
            "barcode"        : "4718037231163",
            "name"           : "【Fitty】飄花微透感修身短袖運動上衣(輕柔粉)",
            "spec"           : "S",
            "quantity"       : 100
            "availQuantity"  : 100
        }
    }
}
HTTP/1.1 200 OK
{
    "status" : "fail",
    "code"   : "02",
    "msg"    : 超過單次能查詢的數量上限 (100 筆)
}
PreviousASP.NET Core Web Api實作JWT驗證筆記NextJWT Token Authentication And Authorizations In .Net Core 6.0 Web API

Last updated 1 year ago

成功回傳:
失敗回傳:
成功回傳:
失敗回傳:
成功回傳:
失敗回傳:
Request-Example:
成功回傳:
失敗回傳:
Request-Example:
成功回傳:
失敗回傳:
成功回傳:
失敗回傳:
成功回傳:
失敗回傳:
成功回傳:
失敗回傳:
Request-Example:
成功回傳:
失敗回傳:
Request-Example:
成功回傳:
失敗回傳:
Request-Example:
成功回傳:
失敗回傳:
Request-Example:
成功回傳:
失敗回傳:
Request-Example:
成功回傳:
失敗回傳:
成功回傳:
失敗回傳:
Request-Example:
成功回傳:
失敗回傳: