一本大道香久在线播放_无码专区久久中文字幕_av中文字幕网免费观看_Av免费无码一区二区……

簡電云 | OCPP 1.6 充電樁平臺(tái)基于擴(kuò)展協(xié)議實(shí)現(xiàn) POS 機(jī)本地對(duì)接-97超頻國產(chǎn)在線公開視頻|寶貝把腿張開我讓你爽メイリン モデルコレクション メイ

報(bào)價(jià)
請(qǐng)來電詢價(jià)
產(chǎn)品咨詢熱線
15920323068
微信號(hào)
15920323068
軟件開發(fā)
小程序+公眾號(hào)+APP定制開發(fā)

一、為什么要做本地 POS 對(duì)接

傳統(tǒng) OCPP 充電流程通常是“掃碼進(jìn)入App—?jiǎng)?chuàng)建訂單—遠(yuǎn)程啟動(dòng)”。在園區(qū)、車隊(duì)、酒店和海外站點(diǎn),用戶更習(xí)慣直接在設(shè)備旁刷信用卡。POS本地對(duì)接的關(guān)鍵是:支付動(dòng)作發(fā)生在樁旁,OCPP 仍然負(fù)責(zé)樁的連接和充電控制,平臺(tái)負(fù)責(zé)訂單、風(fēng)控和Zui終結(jié)算。

兩套協(xié)議的職責(zé)應(yīng)明確分開:

層次

協(xié)議

主要職責(zé)

充電控制

OCPP 1.6(WebSocket)

BootNotification、心跳、狀態(tài)、RemoteStartTransaction、RemoteStopTransaction、計(jì)量值和交易事件

支付交互

信用卡充電擴(kuò)展協(xié)議 V1.8(樁內(nèi)網(wǎng)/串口或 TCP)

插卡/揮卡、預(yù)授權(quán)、扣款、撤銷、終端結(jié)果和離線流水

平臺(tái)內(nèi)部

POS Adapter 統(tǒng)一模型

把 V1.8報(bào)文轉(zhuǎn)換為訂單和支付狀態(tài),提供冪等、重試和審計(jì)

不要讓 POS 直接調(diào)用 OCPP 數(shù)據(jù)庫,也不要讓樁端自行計(jì)算Zui終應(yīng)收金額。樁端只上送計(jì)量和交易事件,金額由平臺(tái)根據(jù)費(fèi)率和結(jié)算規(guī)則計(jì)算,POS只負(fù)責(zé)持卡人認(rèn)證和支付結(jié)果。

二、推薦架構(gòu)

展開

代碼語言:JavaScript

自動(dòng)換行

AI代碼解釋

信用卡/手機(jī)
   |POS 終端 --(V1.8)--> 充電樁控制器 --(OCPP1.6/WebSocket)--> OCPP 網(wǎng)關(guān)
                                   |                        |
                                   +-------------------------+
                                             訂單服務(wù)
                                                |
                                  支付適配器 / 收單機(jī)構(gòu) / 對(duì)賬服務(wù)

POS Adapter 建議部署在 OCPP 網(wǎng)關(guān)或站點(diǎn)邊緣服務(wù)中,向南提供V1.8 的同步/異步報(bào)文接口,向北調(diào)用訂單服務(wù)和支付渠道。平臺(tái)至少保存四類標(biāo)識(shí):stationId、connectorId、transactionId、paymentId。任何重試都使用原始交易號(hào)和支付號(hào),不能重新生成訂單。

三、把 V1.8 映射為統(tǒng)一支付模型

不同版本的協(xié)議表可能使用不同的命令碼和字段名,接入時(shí)先建立一張“協(xié)議字段—平臺(tái)字段”映射表。建議統(tǒng)一為以下模型:

平臺(tái)字段

含義

來源/生成時(shí)機(jī)

re

請(qǐng)求流水,保證報(bào)文冪等

平臺(tái)生成,原樣回傳

terminalId

POS 終端號(hào)

V1.8 終端信息

stationId / connectorId

站點(diǎn)和槍口

OCPP 連接上下文

transactionId

OCPP 充電交易號(hào)

StartTransaction.conf

paymentId

支付渠道流水

預(yù)授權(quán)或扣款成功后生成

amount

金額,Zui小貨幣單位

平臺(tái)費(fèi)率計(jì)算

meterStart / meterStop

起止表底

OCPP 計(jì)量值

resultCode

POS/渠道結(jié)果碼

V1.8 響應(yīng)

mac/sign

報(bào)文完整性校驗(yàn)

V1.8 安全字段

金額、時(shí)間和枚舉值必須按 V1.8的長度、編碼、補(bǔ)零和字節(jié)序?qū)崿F(xiàn)。適配器不要直接把協(xié)議字符串傳入訂單庫,而應(yīng)先做長度校驗(yàn)、字符集轉(zhuǎn)換、枚舉白名單校驗(yàn),再落庫。

四、完整業(yè)務(wù)流程

1. 終端上線

POS 啟動(dòng)后發(fā)送 V1.8登錄/簽到報(bào)文,平臺(tái)校驗(yàn)終端號(hào)、站點(diǎn)綁定和協(xié)議版本,返回成功響應(yīng)。OCPP 側(cè)樁完成 BootNotification 并進(jìn)入 Available。平臺(tái)只有在兩側(cè)都在線時(shí)才允許開始支付。

2. 預(yù)授權(quán)與創(chuàng)建訂單

用戶在 POS 上選擇槍口或輸入充電金額,POS發(fā)起預(yù)授權(quán)請(qǐng)求。平臺(tái)先檢查槍口狀態(tài)、費(fèi)率、黑名單和并發(fā)訂單,再調(diào)用收單渠道。預(yù)授權(quán)成功后創(chuàng)建訂單,狀態(tài)置為AUTHORIZED,并通過 OCPP RemoteStartTransaction 啟動(dòng)充電。

建議采用“平臺(tái)生成啟動(dòng)令牌”的方式關(guān)聯(lián)兩條鏈路:idTag= POS-{re}。收到 StartTransaction.conf 后,將 OCPP 返回的 transactionId 寫回訂單;如果啟動(dòng)被拒絕,立即撤銷預(yù)授權(quán)。

3. 充電中

平臺(tái)監(jiān)聽 MeterValues、StatusNotification和心跳,按固定周期刷新已用電量和預(yù)估金額。POS 可通過 V1.8查詢報(bào)文顯示“充電中、已充電量、預(yù)估金額”,但展示數(shù)據(jù)不是Zui終結(jié)算依據(jù)。

4. 停止、結(jié)算與簽購單

用戶在 POS按停止、拔槍,或平臺(tái)根據(jù)預(yù)授權(quán)上限停止交易。平臺(tái)發(fā)送 RemoteStopTransaction,并等待樁上送 St;平臺(tái)取該請(qǐng)求中的 meterStop 和停止原因計(jì)算Zui終金額,回復(fù) StopTransaction.conf 后再調(diào)用渠道完成扣款或部分撤銷。

扣款成功后,訂單變?yōu)?COMPLETED,平臺(tái)通過 V1.8返回支付結(jié)果、金額、授權(quán)碼和憑證信息;扣款失敗時(shí)訂單進(jìn)入 PAYMENT_RETRY,不能把充電訂單直接標(biāo)記為成功。重復(fù)的停止通知、支付回調(diào)和 POS查詢都必須返回同一Zui終結(jié)果。

五、狀態(tài)機(jī)和冪等設(shè)計(jì)

推薦的訂單狀態(tài)如下:

展開

代碼語言:JavaScript

自動(dòng)換行

AI代碼解釋

CREATED -> AUTHORIZING -> AUTHORIZED -> CHARGING
                                   |       |
                                STOPPING<-+
                                   |
                            SETTLING ->COMPLETED
                                |         |
                           PAYMENT_RETRY REFUNDING

每個(gè)外部請(qǐng)求建立冪等鍵:terminalId+ re + operation。數(shù)據(jù)庫對(duì)該組合建立唯一索引,并保存原始請(qǐng)求、響應(yīng)、協(xié)議版本和時(shí)間戳。處理重試時(shí)先查冪等表,已成功則直接返回歷史響應(yīng),處理中則返回“處理中”,避免重復(fù)扣款。

狀態(tài)遷移必須使用條件更新,例如只有 AUTHORIZED 才能進(jìn)入 CHARGING,只有 STOPPING 才能進(jìn)入 SETTLING。這樣即使 OCPP消息亂序,也不會(huì)把已完成訂單回退到充電中。

六、斷網(wǎng)、超時(shí)和異常處理

  1. POS到平臺(tái)斷網(wǎng):樁端緩存 V1.8流水和計(jì)量摘要,使用遞增序號(hào);網(wǎng)絡(luò)恢復(fù)后按序補(bǔ)傳。補(bǔ)傳接口仍使用原 re,平臺(tái)按冪等規(guī)則處理。

  2. OCPP斷線:平臺(tái)將訂單置為 CHARGING_UNKNOWN。OCPP 1.6沒有標(biāo)準(zhǔn)的交易狀態(tài)查詢命令,樁重連后應(yīng)結(jié)合補(bǔ)傳的 StopTransaction、StatusNotification、后續(xù) MeterValues,或雙方約定的 DataTransfer 查詢擴(kuò)展核對(duì)狀態(tài);不能僅憑 WebSocket斷開就結(jié)算。

  3. 預(yù)授權(quán)成功但啟動(dòng)失?。簣?zhí)行撤銷;撤銷也要有獨(dú)立冪等號(hào),并進(jìn)入對(duì)賬隊(duì)列等待渠道確認(rèn)。

  4. 停止成功但扣款超時(shí):保留訂單和計(jì)量數(shù)據(jù),進(jìn)入PAYMENT_RETRY,按指數(shù)退避重試,超過閾值轉(zhuǎn)人工/風(fēng)控隊(duì)列。

  5. 重復(fù)扣款風(fēng)險(xiǎn):支付請(qǐng)求必須攜帶原支付號(hào)和商戶訂單號(hào),渠道超時(shí)后先查詢?cè)僦卦嚕姑つ恐匦掳l(fā)起扣款。

七、實(shí)現(xiàn)要點(diǎn)

協(xié)議適配器

適配器分為編解碼、校驗(yàn)、業(yè)務(wù)路由三層。編解碼只處理V1.8 的定長/變長字段和校驗(yàn)碼;校驗(yàn)層負(fù)責(zé)版本、長度、終端綁定、時(shí)間窗和簽名;業(yè)務(wù)路由把命令轉(zhuǎn)換成AuthorizePayment、StartCharge、StopCharge、SettlePayment等內(nèi)部命令。這樣未來升級(jí)協(xié)議時(shí),不需要改訂單狀態(tài)機(jī)。

OCPP 關(guān)聯(lián)

保存 connectorId 和 transactionId 的雙向索引。RemoteStart發(fā)出后設(shè)置超時(shí)定時(shí)器;在超時(shí)窗口內(nèi)收到 StartTransaction.conf 才確認(rèn)啟動(dòng)。停止時(shí)先記錄“停止意圖”,再發(fā)送RemoteStop,Zui后以 St 的Zui終表底為準(zhǔn)。

安全

全鏈路使用 TLS(或站點(diǎn)專用安全隧道),V1.8 的MAC/簽名密鑰按終端獨(dú)立管理,密鑰不得寫入日志。日志中對(duì) PAN、磁道數(shù)據(jù)、有效期和 CVV做脫敏;平臺(tái)只保存支付渠道返回的令牌、授權(quán)碼和末四位。生產(chǎn)環(huán)境啟用重放保護(hù):校驗(yàn)時(shí)間戳、流水號(hào)和nonce,并拒絕過期報(bào)文。

八、測(cè)試清單

  • 正常刷卡、預(yù)授權(quán)、啟動(dòng)、充電、停止、扣款全流程。

  • POS 重發(fā)同一請(qǐng)求、平臺(tái)重復(fù)回調(diào)、OCPP消息亂序。

  • 預(yù)授權(quán)成功但樁拒絕啟動(dòng)、拔槍停止、急停和樁離線。

  • 扣款超時(shí)、撤銷失敗、部分退款和對(duì)賬補(bǔ)單。

  • 斷網(wǎng)緩存、恢復(fù)補(bǔ)傳、重啟恢復(fù)和跨時(shí)區(qū)時(shí)間處理。

  • 非法長度、錯(cuò)誤簽名、過期流水、未知命令碼和不支持的協(xié)議版本。

  • 上線前建議用沙箱渠道跑完至少一輪“成功、失敗、超時(shí)、重試、沖正”五類交易,并把POS 原始報(bào)文、OCPP 原始報(bào)文、訂單事件和渠道流水放在同一條可檢索鏈路中。

    九、結(jié)語

    OCPP 1.6負(fù)責(zé)“樁能否充電”,信用卡擴(kuò)展協(xié)議負(fù)責(zé)“持卡人能否完成支付”。通過 POS Adapter做協(xié)議隔離,以統(tǒng)一訂單狀態(tài)機(jī)串聯(lián)預(yù)授權(quán)、充電和結(jié)算,再配合冪等、斷網(wǎng)補(bǔ)償和對(duì)賬機(jī)制,就能在不修改 OCPP核心實(shí)現(xiàn)的情況下,為現(xiàn)有充電樁平臺(tái)增加本地刷卡能力。

    實(shí)際落地時(shí),請(qǐng)以《信用卡充電擴(kuò)展協(xié)議V1.8》中的命令碼、字段長度、編碼方式、校驗(yàn)算法和錯(cuò)誤碼表替換本文示例模型,并由收單機(jī)構(gòu)確認(rèn) PCIDSS、預(yù)授權(quán)有效期及撤銷規(guī)則。



    更新時(shí)間
    皇冠會(huì)員
    第1年
    統(tǒng)一社會(huì)信用代碼
    91440101MA59N5E7XT
    成立日期
    2017年05月22日
    法定代表人
    鄧南輝
    注冊(cè)資本
    100

    主營產(chǎn)品

    共享充電樁軟件開發(fā),充電樁共享軟件開發(fā),智能充電樁系統(tǒng)開發(fā),充電樁軟件開發(fā)公司,充電樁app的開發(fā),共享充電樁app開發(fā),充電樁平臺(tái)開發(fā),充電樁app開發(fā)

    公司簡介

    公司介紹廣州優(yōu)匠科技有限公司成立于2017年,于2018年開始深耕充電樁運(yùn)營平臺(tái),是國內(nèi)海外的共享充電運(yùn)營平臺(tái)整體解決方案服務(wù)商,致力于推動(dòng)共享充電領(lǐng)域的標(biāo)準(zhǔn)化、產(chǎn)品化,為用戶提供簡單便捷的充電體驗(yàn)、充電安全及幫助合作伙伴提供穩(wěn)定、高效的運(yùn)營平臺(tái)。公司為全球運(yùn)營商、充電樁廠家提供電動(dòng)自行車、新能源汽車運(yùn)營平臺(tái)的Saas租賃服務(wù)、私有化部署、個(gè)性定制化開發(fā)服務(wù)。同時(shí)我們將為全球所有國家、地區(qū)等運(yùn)營商提供運(yùn)營平臺(tái)的Saas租賃服務(wù)、幫助中小...

    查看公司詳情
    產(chǎn)品咨詢熱線15920323068撥打郵箱[email protected]郵件
    產(chǎn)產(chǎn)品經(jīng)理鄧工
    地址廣州市番禺區(qū)大龍街東興路317號(hào)402
    我們其他產(chǎn)品
    我們的新聞