---
# System prepended metadata

title: Custos Enterprise API - API-P01 合作店家交易資料串接
tags: [合作店家]

---

# 合作店家交易資料串接
Custos-Enterprise API-P01
V1.0
	
鼓勵企業會員之員工前往合作店家消費，並記錄消費細節。企業會員之員工於合作店家之購物平台 (Web/APP) 進行消費，確定交易完成後，由合作店家購物平台系統呼叫此 API，將交易細節如：交易日期、會員資訊、交易金額...等資料拋轉回來，寫入 Custos 資料庫。

[toc]
## 作業啟動

1. 傳入下列參數：
(1) 合作店家企業流水號代碼 (#corp_data_id)
(2) 購買/租賃/維修產品之編號：合作店家自行定義 (#vendor_item_id)
(3)	購買/租賃/維修產品之名稱：合作店家自行定義 (#item_name)
(4)	使用者手機號碼：合作店家經 [API-P02](https://hackmd.io/@custos-it/SJmaUjdD3) 驗證後，存於自身資料庫之 Custos 會員手機號碼 (#to_emp_phone)
(5)	交易行為代碼：購買 = 5、租賃 = 4、維修 = 2、退貨/取消交易 = 7 (#category_id)
(6)	交易金額 (#total_amt)
(7)	交易日期 (#create_date)
(8)	國別語系 (#language_setting)

2. 記錄 SystemLog：合作店家 #corp_data_id|交易資料串接|作業啟動

## API 作業啟動
1. 以傳入之 #員工手機號碼 (#to_emp_phone) 查詢
(1)	員工企業代碼 (#to_corp_id)
(2)	員工企業流水編號 (#to_corp_data_id)
(3)	員工編號 (#to_emp_id)
(4)	員工流水編號 (#to_emp_data_id)

2. 以傳入之 #合作店家企業流水號代碼 (#corp_data_id) 查詢
(1)	合作店家企業代碼 (#corp_id)
(2)	合作店家窗口員工編號 (#emp_id)
(3)	合作店家窗口員工流水編號 (#emp_data_id)
(4)	合作店家窗口手機號碼 (#emp_phone)
(5) 合作店家於 corp_fm_item 資料表上架之物品資料，並取得其 item_image；若有多張則取第一張 (#item_image)

3. 將上述資料寫入交易紀錄資料表 corp_fm_transaction
*insert into corp_fm_transaction (vendor_item_id, corp_id, corp_data_id, to_corp_id, to_corp_data_id, emp_id, emp_data_id, to_emp_id, to_emp_data_id, emp_phone, to_emp_phone, category_id, total_amt, item_name, item_image, modify_oper, language_setting) values (#vendor_item_id, #corp_id, #corp_data_id, #to_corp_id, #to_corp_data_id, #emp_id, #emp_data_id, #to_emp_id, #to_emp_data_id, #emp_phone, #to_emp_phone, #category_id, #total_amt, #item_name, #item_image, #corp_id, #language_setting)*

4. 若上述 1 或 2 查詢無資料，則記錄 SystemLog：合作店家 #corp_data_id|交易資料串接，查無XXX資料|作業執行

5. 回傳 result = 'N'，message 同上訊息。

## 作業結束
記錄 SystemLog：合作店家 #corp_data_id|交易資料串接|作業結束

## 例外處理
若執行中有發生異常，將攔截到的 exception 訊息記錄 ErrorLog：[YYYYMMDDHHMMSS] Enterprise-API-P01 發生異常：【#攔截到的 exception 訊息】

## 規格及範例
|API No.|Enterprise-API-P01|
|-|-|
|API Name|setTransactionRecords|
|URL|${url}/APP/setData/setTransactionRecords|
|Purpose|合作店家交易資料串接|
|Description|透過 API 將合作店家交易資料串接寫回 Custos 資料庫|
|Content-Type|application/json|

**Request**
|參數|型態|必填|長度|說明|
|-|-|:-:|:-:|-|
|corp_data_id|INT|Y||合作店家企業流水號代碼|
|vendor_item_id|String|Y|45|購買/租賃/維修產品之編號|
|item_name|String|Y|256|購買/租賃/維修產品之名稱|
|to_emp_phone|String|Y|16|使用者手機號碼|
|category_id|INT|Y||交易行為，對應 corp_fm_item_category 定義|
|total_amt|Float|Y||交易金額|
|create_date|DateTime|Y||交易日期|
|language_setting|String|Y|10|國別語系設定|

**Response**
|參數|型態|必回|說明|
|-|-|:-:|-|
|result|String|Y|API 執行結果，Y:成功, N:失敗|
|message|String|N|API 執行失敗的訊息說明|

**Request Sample**
```javascript
var input = {
  "corp_data_id": 12,
  "vendor_item_id": "c-002135",
  "item_name": "1公升環保杯",
  "to_emp_phone": "0912345678",
  "category_id": 3,
  "total_amt": "200",
  "create_date": "2023-06-01 10:03:28",
  "language_setting": "zh-TW"
}
```

**Response Sample**
```javascript
{	
  "result": "Y",	//API 結果
  "message": "..."	//API 訊息 例如："執行失敗, 原因：XXXXXXXXX"
}	
```