污污污污污污污的免费网站|蘑菇视频LOGO红色|进女厕所偷窥老师|昨晚原油为什么暴跌|YELLOW的免费视频播放|浴室的少女20天|综合人妻久久一区二区精品

刷卡機刷卡密碼錯誤受限,錯誤碼設計思考

瀏覽:70 發(fā)布日期:2023-04-12 00:00:00 投稿人:佚名投稿

網(wǎng)上關于刷卡機刷卡密碼錯誤受限,錯誤碼設計思考的刷卡知識比較多,也有關于刷卡機刷卡密碼錯誤受限的問題,今天第一pos網(wǎng)(www.jianshengsheng.cn)為大家整理刷卡常見知識,未來的我們終成一代卡神。

本文目錄一覽:

1、刷卡機刷卡密碼錯誤受限

2、POS機刷卡錯誤是怎么回事?

刷卡機刷卡密碼錯誤受限

在微服務化的今天,服務間的交互越來越復雜,統(tǒng)一異常處理規(guī)范作為框架的基礎,一旦上線后很難再更改,如果設計不好,會導致后期的維護成本越來越來大。 對于錯誤碼的設計,不同的開發(fā)團隊有不同的風格習慣。本文分享作者從實踐中總結(jié)的經(jīng)驗及對應的思考,期望對讀者有所啟發(fā)。

本文中涉及的源碼:https://github.com/sofn/app-engine/tree/master/common-error

什么是錯誤碼

引自阿里巴巴《Java 開發(fā)手冊》- 異常日志-錯誤碼

錯誤碼的制定原則:快速溯源、簡單易記、溝通標準化。

正例:錯誤碼回答的問題是誰的錯?錯在哪?
1)錯誤碼必須能夠快速知曉錯誤來源,可快速判斷是誰的問題。
2)錯誤碼易于記憶和比對(代碼中容易 equals)。
3)錯誤碼能夠脫離文檔和系統(tǒng)平臺達到線下輕量化地自由溝通的目的。

那么用Java異常能表示出來嗎?答案顯然是否定的

必須能夠快速知曉錯誤來源:異常類因為復用性不能很快的定位,異常類和代碼行數(shù)也不是一個穩(wěn)定的值必須易于記憶和對比:異常類不具有可比性,且不利于前后端交互能夠脫離代碼溝通:異常類只能存在于Java代碼中錯誤碼設計

錯誤碼的設計是比較簡單的,一般只需要定義一個數(shù)字和描述信息即可。不過想設計一套完善錯誤碼系統(tǒng)還有很多需要考慮的場景。

1、錯誤碼的分層

大部分項目錯誤碼設計分為3級能滿足業(yè)務場景,即項目、模塊、錯誤編碼。比如錯誤碼是6位,前兩位是項目碼、中間兩位是模塊碼,最后兩位是異常編號。以下是錯誤碼10203的對應說明:

2、錯誤的表示方法:枚舉or 類

推薦使用枚舉,因為枚舉具有不可變性,且所有值都在一個文件里描述。

3、多模塊錯誤碼定義及接口定義

最原始的錯誤定義方法是項目中所有的錯誤碼都定義在一個類里,但是這樣會隨著業(yè)務的發(fā)展錯誤碼越來越多,最終導致難以維護,推薦的做法是按照項目+模塊粒度定義成多個錯誤碼枚舉類。有兩個問題需要考慮:

(1)項目編碼、模塊編碼的維護:推薦另建一個枚舉類統(tǒng)一維護

(2)異常類的統(tǒng)一引用:定義接口,枚舉類實現(xiàn)接口

示例:

//異常接口定義public interface ErrorCode {}//模塊定義public enum UserProjectCodes { LOGIN(1, 1, "登錄模塊"), USER(1, 2, "用戶模塊")}//登錄模塊異常碼定義public enum LoginErrorCodes implements ErrorCode { USER_NOT_EXIST(0, "用戶名不存在"), //錯誤碼: 10100 PASSWORD_ERROR(1, "密碼錯誤"); //錯誤碼: 10101 private final int nodeNum; private final String msg; UserLoginErrorCodes(int nodeNum, String msg) { this.nodeNum = nodeNum; this.msg = msg; ErrorManager.register(UserProjectCodes.LOGIN, this); }}4、防重設計

錯誤碼本質(zhì)上就是一個數(shù)字,且每一個都需要由RD編碼定義,在錯誤碼多的項目很容易重復。最佳實踐是在枚舉的構(gòu)造方法里調(diào)用Helper類,Helper類統(tǒng)一維護所有的異常碼,如有重復則枚舉初始化失敗。

5、錯誤擴展信息

只有錯誤碼是不夠的,還需要反饋給調(diào)用方詳細的錯誤信息以方便修正。固定的錯誤信息字符串在某些場景寫也是不夠的,這里推薦使用slf4j打日志時使用的動態(tài)參數(shù),這種方式相比于String.format格式的好處是不需要關心參數(shù)的類型以及記憶%s、%d等的區(qū)別,且打印日志時經(jīng)常使用,降低了團隊成員的學習成本。

示例:

//錯誤碼定義PARAM_ERROR(17, "參數(shù)非法,期望得到:{},實際得到:{}")//錯誤碼使用ErrorCodes.PARAM_ERROR.format(arg1, arg2);

實現(xiàn)方式:

org.slf4j.helpers.MessageFormatter.arrayFormat(this.message, args).getMessage() 錯誤碼和異常

在日常業(yè)務開發(fā)中,對于異常使用最多的還是拋出Java異常(Exception),異常又分為受檢查異常(Exception)和不受檢查異常(RuntimeException):

受檢查的異常:這種在編譯時被強制檢查的異常稱為"受檢查的異常"。即在方法的聲明中聲明的異常。不受檢查的異常:在方法的聲明中沒有聲明,但在方法的運行過程中發(fā)生的各種異常被稱為"不被檢查的異常"。這種異常是錯誤,會被自動捕獲。1、異常綁定錯誤碼

定義兩個父類,分別用于首檢查異常和非受檢查異常。可支持傳入錯誤碼,同時需要支持原始的異常傳參,這種場景會賦予一個默認的錯誤碼,比如:500服務器內(nèi)部異常

//父類定義public abstract class BaseException extends Exception { protected BaseException(String message) {...} protected BaseException(String message, Throwable cause) {...} protected BaseException(Throwable cause) {...} protected BaseException(ErrorInfo errorInfo) {...} protected BaseException(ErrorCode errorCode) {...} protected BaseException(ErrorCode errorCode, Object... args) {...}}2、部分異常

使用異常能適用于大部分場景,不過對于多條目的場景不是很適合,比如需要批量保存10條記錄,某些成功、某些失敗,這種場景就不適合直接拋出異常。

在Node.js和Go語言中異常處理采用多返回值方式處理,第一個值是異常,如果為null則表示無異常。在Java里建議采用vavr庫中的Either來實現(xiàn),通常使用左值表示異常,而右值表示正常調(diào)用后的返回結(jié)果,即: Either<ErrorCode, T>

注意不推薦Pair、Tuple來實現(xiàn),因為Either只能設置一個左值或右值,而Pair、Tuple無此限制。

錯誤碼和統(tǒng)一返回值

在前后端的交互中,后端一般使用JSON方式返回結(jié)果,整合前面說的錯誤碼,可定義以下格式:

{ "code": number, "msg": string, "data": object}

在SpringMVC中實現(xiàn)方式是自定義ResponseBodyAdvice和異常攔截,具體實現(xiàn)方式直接查看:源碼

實現(xiàn)了以上步驟之后就可以在SpringMVC框架中愉快的使用了,會自動處理異常及封裝成統(tǒng)一返回格式

@GetMapping("/order") public Order getOrder(Long orderId) { return service.findById(orderId); }總結(jié)

本文總結(jié)了設計錯誤碼需要考慮的各種因素,并給出了參考示例,基本能滿足一般中大型項目。規(guī)范有了最重要的還是落地,讓團隊成員遵守規(guī)范才能讓項目健康的迭代。

源碼地址:https://github.com/sofn/app-engine/tree/master/common-error

本文來自https://www.cnblogs.com/lesofn/p/16051008.html

POS機刷卡錯誤是怎么回事?

pos機刷卡錯誤代碼速查表: 00 ——pos機交易成功 承兌或交易成功 01 ——pos機交易失敗,請聯(lián)系發(fā)卡行 查發(fā)卡行或檢查卡內(nèi)余額 02 ——同上 03—— 商戶未登記,無權(quán)使用銀聯(lián)pos機終端 聯(lián)系銀行卡服務中心處理 04—— 沒收卡,請聯(lián)系收單行 操作員沒收卡(這種情況為高風險卡片,有黑卡或仿卡的嫌疑)

05 ——交易失敗,請聯(lián)系發(fā)卡行 發(fā)卡不予承兌,與發(fā)銀行聯(lián)系查詢 06 ——交易失敗,請聯(lián)系發(fā)卡行 發(fā)卡行故障,稍等重新刷卡 07 ——沒收卡,請聯(lián)系收單行 特殊條件下沒收卡,這種情況為高風險卡片,有黑卡或仿卡的嫌疑 09 ——交易失敗,請重試 重做該交易,稍等重新刷卡 12—— 交易失敗,請重試 發(fā)卡行不支持的交易,這種情況為部分銀行卡不識別銀聯(lián)pos機上的刷卡器或未和銀聯(lián)簽訂支付清算協(xié)議。

13—— 交易金額超限,請重試交易金額無效,采用小金額交易或與發(fā)卡行聯(lián)系,可向銀行申請暫時提升信譽額度,或小額刷卡。

14 ——無效卡號,請聯(lián)系發(fā)卡行無效卡號,與銀行卡服務中心或發(fā)卡行聯(lián)系,長時間未使用或未交年費管理費情況造成,或者注銷卡。

15 ——此卡不能受理 與銀行卡服務中心聯(lián)系處理,未接入銀聯(lián)網(wǎng)絡,銀聯(lián)不予以清算和結(jié)賬。

19 ——交易失敗,請聯(lián)系發(fā)卡行 刷卡讀取數(shù)據(jù)有誤,重新刷卡 20 ——交易失敗,請聯(lián)系發(fā)卡行 與銀行卡服務中心或發(fā)卡行聯(lián)系 21 ——交易失敗,請聯(lián)系發(fā)卡行 與銀行卡服務中心或發(fā)卡行聯(lián)系 22 ——操作有誤,請重試 POS狀態(tài)與中心不符,重新簽到,確定操作員號碼和密碼正確,重新刷卡。

23 ——交易失敗,請聯(lián)系發(fā)卡行 不可接受的交易費,這筆交易資金存在風險或者未簽訂銀聯(lián)協(xié)議。

25—— 交易失敗,請聯(lián)系發(fā)卡行發(fā)卡行未能找到有關記錄,核對有關資料重做該交易或與發(fā)卡行聯(lián)系 30 ——交易失敗,請重試 檢查卡磁條是否完好或反方向刷卡或者銀聯(lián)pos機的磁條沒有問題,以及其他接口正常。

31—— 此卡不能受理 此發(fā)卡方未與中心開通業(yè)務,檢查此卡是否是簽訂銀聯(lián)協(xié)議的銀行卡。 33—— 過期卡,請聯(lián)系發(fā)卡行 過期的卡或與發(fā)卡行聯(lián)系,暫時凍結(jié)結(jié)算功能 34 ——沒收卡,請聯(lián)系收單行 有作弊嫌疑的卡,操作員可以沒收(黑卡仿卡,高風險卡)

35 ——沒收卡,請聯(lián)系收單行 有作弊嫌疑的卡,操作員可以沒收(黑卡仿卡,高風險卡)

36 ——此卡有誤,請換卡重試 有作弊嫌疑的卡,操作員可以沒收(黑卡仿卡,高風險卡)

37 ——沒收卡,請聯(lián)系收單行 有作弊嫌疑的卡,操作員可以沒收(黑卡仿卡,高風險卡)

38 ——密碼錯誤次數(shù)超限 密碼輸錯的次數(shù)超限,一般pos機結(jié)算刷卡為保護持卡人利益,連續(xù)輸入3次未能輸入正確,發(fā)卡行系統(tǒng)自動凍結(jié)此卡,24小時后自動解凍。

39 ——交易失敗,請聯(lián)系發(fā)卡行 可能刷卡操作有誤,請重新刷卡 40 ——交易失敗,請聯(lián)系發(fā)卡行 發(fā)卡行不支持的交易類型,查看卡內(nèi)余額以及操作流程得當,重新刷卡。

41 ——沒收卡,請聯(lián)系收單行 掛失的卡,與發(fā)卡行聯(lián)系處理,此卡已經(jīng)掛失,一般為盜卡,高風險卡。

42 ——交易失敗,請聯(lián)系發(fā)卡方 發(fā)卡行找不到此帳戶,此卡為黑卡,防范風險。

43 ——沒收卡,請聯(lián)系收單行 被竊卡, 操作員可以沒收,黑卡、盜卡防范風險 44 ——交易失敗,請聯(lián)系發(fā)卡行 可能刷卡操作有誤,重新刷卡,確定刷卡流程和步驟正確。 51 ——余額不足,請查詢 帳戶內(nèi)余額不足,小額刷卡。

52 ——交易失敗,請聯(lián)系發(fā)卡行 無此支票賬戶,信用卡信息不全或者不準確,核實后補充資料 53—— 交易失敗,請聯(lián)系發(fā)卡行 無此儲蓄卡賬戶,沒有登記的卡,過期卡、實效卡、仿卡 54 ——過期卡,請聯(lián)系發(fā)卡行 過期的卡,像銀行提出申請重新補辦或開通 55 ——密碼錯,請重試 密碼輸錯,可重新輸入,注意只可以聯(lián)系刷如3次要是還沒有輸入正確此卡將被暫時凍結(jié)。 56 ——交易失敗,請聯(lián)系發(fā)卡行 發(fā)卡行找不到此帳戶,與發(fā)卡行聯(lián)系,黑卡、盜卡、仿卡注意防范風險 57 ——交易失敗,請聯(lián)系發(fā)卡行不允許持卡人進行的交易,與發(fā)卡行聯(lián)系,持卡人之前交易有套現(xiàn)嫌疑,屬于銀行的風險持卡人,銀行對此持卡人已提升監(jiān)控。 58 ——終端無效,請聯(lián)系收單行或銀聯(lián)重新簽到再試或與銀行卡服務中心聯(lián)系 59 ——交易失敗,請聯(lián)系發(fā)卡行,是否開通結(jié)算功能,或者超出額度 60 ——交易失敗,請聯(lián)系發(fā)卡行 查詢卡內(nèi)余額或者詢問此卡是否簽訂銀聯(lián)協(xié)議 61 ——金額太大 超出去款金額限制,可向銀行提出暫時額度,根據(jù)持卡人消費核定暫時額度的金額 62 ——交易失敗,請聯(lián)系發(fā)卡行 受限制的卡,此持卡人為銀行的風險持卡人,已被銀行監(jiān)控,注意防范風險 63 ——交易失敗,請聯(lián)系發(fā)卡行 違反安全保密規(guī)定,存在惡意透支或者沒有按時還款 64 ——交易失敗,請聯(lián)系發(fā)卡行原始金額不正確,核對原始資料或與發(fā)卡行聯(lián)系,持卡人資料有問題,請核實持卡人身份資料,及卡片資料。 65 ——超出取款次數(shù)限制 超出取款次數(shù)限制,銀行系統(tǒng)風險控制,聯(lián)系銀行解決 66 ——交易失敗,請聯(lián)系收單行或銀聯(lián) 銀聯(lián)磁條不識別或者卡片消磁 67 ——沒收卡 黑卡、盜卡、仿卡高風險卡片,注意防范風險 68 ——交易超時,請重試發(fā)卡行規(guī)定時間內(nèi)沒有應答,與銀行卡服務中心或發(fā)卡行聯(lián)系,重新簽到或操作刷卡。 75 ——密碼錯誤次數(shù)超限允許的輸入PIN次數(shù)超限,該卡要重置密碼方能使用,撥打銀行客戶服務電話解決 77—— 請向網(wǎng)絡中心簽到 重做簽到,輸入密碼和操作員號碼 79 ——POS終端重傳脫機數(shù)據(jù) POS終端上傳的脫機數(shù)據(jù)對帳不平,檢查接口是否鏈接好 90 ——交易失敗,請稍后重試日期切換正在處理,與銀行卡服務中心或發(fā)卡行聯(lián)系 91 ——交易失敗,請稍后重試 電話查詢發(fā)卡方或銀聯(lián),可重作,重新輸入操作員號碼和密碼 92 ——交易失敗,請稍后重試銀行通訊故障,電話查詢發(fā)卡方或網(wǎng)絡中心 93 ——交易失敗,請聯(lián)系發(fā)卡行 交易違法、不能完成。有套現(xiàn)或惡意透支嫌疑可重新簽到后再試 94 ——交易失敗,請稍后重試重新簽到后再交易或與銀行卡服務中心聯(lián)系 95 ——交易失敗,請稍后重試 發(fā)卡行調(diào)節(jié)控制錯,與發(fā)卡行聯(lián)系,銀行系統(tǒng)風險控制 96 ——交易失敗,請稍后重試 與發(fā)卡行或銀行卡服務中心聯(lián)系銀行或銀聯(lián)風險系統(tǒng)自動報警 97 ——終端未登記,請聯(lián)系收單行或銀聯(lián) 與銀行卡服務中心聯(lián)系,及時遞交資料解決 98 ——交易超時,請重試銀聯(lián)收不到發(fā)卡行應答,與銀行卡服務中心或發(fā)卡行聯(lián)系 99 ——校驗錯,請重新簽到 重新簽到再作交易 A0—— 校驗錯,請重新簽到 重新簽到作交易

以上就是關于刷卡機刷卡密碼錯誤受限,錯誤碼設計思考的知識,后面我們會繼續(xù)為大家整理關于刷卡機刷卡密碼錯誤受限的知識,希望能夠幫助到大家!

轉(zhuǎn)載請帶上網(wǎng)址:http://www.jianshengsheng.cn/shuaka/41799.html

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關法律責任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 babsan@163.com 舉報,一經(jīng)查實,本站將立刻刪除。
聯(lián)系我們
訂購聯(lián)系:小莉
微信聯(lián)系方式
地址:深圳市寶安區(qū)固戍聯(lián)誠發(fā)產(chǎn)業(yè)園木星大廈

公司地址:深圳市寶安區(qū)固戍聯(lián)誠發(fā)產(chǎn)業(yè)園木星大廈

舉報投訴 免責申明 版權(quán)申明 廣告服務 投稿須知 技術(shù)支持:第一POS網(wǎng) Copyright@2008-2030 深圳市慧聯(lián)實業(yè)有限公司 備案號:粵ICP備18141915號