Day 0x15 - 代码建立 (Part 1: 回覆讯息代码)

0x1 前言

错误码不管是在开发或是正式环境中不可或缺的一环,能为开发或维护带来不少的方便性,有个方向来协助处理遇到的问题,所以今天就是来搬讯息代码到程序里,有时间再看有哪边需要再修正的。

0x2 回覆讯息代码

建立回覆讯息代码

// app/Http/Controllers/Sinopac.php
static function code_message($code): string
{
    $code_map = [
        'E0000' => "E0000 – 安全签章错误",
        'E0001' => "E0001 – 请求格式错误",
        'E0100' => "E0100 – 商店编号错误",
        'E0101' => "E0101 – 商店编号不存在",
        'E0102' => "E0102 – 商店状态错误",
        'E0300' => "E0300 – 订单编号错误",
        'E0301' => "E0301 – 订单编号长度错误",
        'E0302' => "E0302 – 订单编号重覆",
        'E0303' => "E0303 – 订单编号不可包含特殊字元",
        'E0400' => "E0400 – 订单金额格式错误",
        'E0401' => "E0401 – 订单金额後 2 位数必须为 00",
        'E0402' => "E0402 – 订单金额低於手续费金额",
        'E0403' => "E0403 – ATM 转帐最高金额:30,000 元",
        'E0404' => "E0404 – 金额不一致",
        'E0405' => "E0405 – 订单金额错误",
        'E0406' => "E0406 – 订单日期错误",
        'E0407' => "E0407 – 订单金额不得超过代收金额上限",
        'E0500' => "E0500 – 币别错误",
        'E0600' => "E0600 – 收款方式错误",
        'E0601' => "E0601 – 收款方式格式错误",
        'E0602' => "E0602 – 收款方式未启用",
        'E0700' => "E0700 – 收款名称错误",
        'E0701' => "E0701 – 收款名称长度错误",
        'E0702' => "E0702 – 收款名称不可包含特殊字元",
        'E0800' => "E0800 – 付款截止日期错误",
        'E0801' => "E0801 – 付款截止日期格式错误",
        'E0802' => "E0802 – 付款截止日期设定范围错误",
        'E0900' => "E0900 – 自动请款错误",
        'E0901' => "E0901 – 自动请款格式错误",
        'E1000' => "E1000 – 自动请款天数格式错误",
        'E1001' => "E1001 – 自动请款天数设定范围错误",
        'E1100' => "E1100 – 订单有效时间格式错误",
        'E1101' => "E1101 – 订单有效时间设定范围错误",
        'E1200' => "E1200 – 付款完成转入 URL 错误",
        'E1201' => "E1201 – 付款完成转入 URL 长度错误",
        'E1202' => "E1202 – 付款完成转入 URL 不可包含特殊字元",
        'E1301' => "E1301 – 付款完成背端通知 URL 长度错误",
        'E1302' => "E1302 – 付款完成背端通知 URL 不可包含特殊字元",
        'E1400' => "E1400 – 备注错误",
        'E1401' => "E1401 – 备注长度错误",
        'E1402' => "E1402 – 备注不可包含特殊字元",
        'E1501' => "E1501 – 自订参数一长度错误",
        'E1502' => "E1502 – 自订参数一不可包含特殊字元",
        'E1601' => "E1601 – 自订参数二长度错误",
        'E1602' => "E1602 – 自订参数二不可包含特殊字元",
        'E1701' => "E1701 – 自订参数三长度错误",
        'E1702' => "E1702 – 自订参数三不可包含特殊字元",
        'E1800' => "E1800 – 发送要求错误",
        'E1801' => "E1801 – 发送要求格式错误",
        'E1802' => "E1802 – 发送要求订单不可执行",
        'E1803' => "E1803 – 发送要求执行失败",
        'E1901' => "E1901 – 交易开始日期格式错误",
        'E1902' => "E1902 – 交易结束日期格式错误",
        'E1903' => "E1903 – 交易开始日期与交易结束日期必须同时有值",
        'E1904' => "E1904 – 交易开始日期不可大於交易结束日期",
        'E2001' => "E2001 – 订单状态格式错误",
        'E2002' => "E2002 – 订单状态不为待付款",
        'E2003' => "E2003 – 订单状态不正确",
        'E2004' => "E2004 – 订单状态已逾期",
        'E2005' => "E2005 – 订单付款时间已被更新",
        'E2006' => "E2006 – 订单重复入帐",
        'E2007' => "E2007 – 订单是否重复入帐检查失败",
        'E2101' => "E2101 – 订单查询条件不足",
        'E2199' => "E2199 – 订单查询失败",
        'E2200' => "E2200 – 使用者 IP 错误",
        'E2201' => "E2201 – 使用者 IP 格式错误",
        'E2301' => "E2301 – 使用者 UserAgent 错误",
        'E2401' => "E2401 – Token 不正确",
        'E2501' => "E2501 – 付款查询 Token 错误",
        'E2601' => "E2601 – 资料不存在",
        'E2700' => "E2700 – 交易失败",
        'E2709' => "E2709 – 取得银联卡付款连结失败",
        'E2710' => "E2710 – 订单验证失败",
        'E2711' => "E2711 – 订单验证失败",
        'E2712' => "E2712 – 订单验证失败",
        'E2713' => "E2713 – 订单验证失败",
        'E2730' => "E2730 – 银联卡请款失败",
        'E2740' => "E2740 – 银联卡交易处理中",
        'E2801' => "E2801 – 信用卡卡号非本行卡",
        'E2802' => "E2802 – 信用卡卡号非台湾卡",
        'E2901' => "E2901 – 交易对帐日期错误",
        'E2902' => "E2902 – 交易对帐日期格式错误",
        'E2903' => "E2903 – 交易对帐日期设定范围错误",
        'E3001' => "E3001 – 一次性数值错误",
        'E3002' => "E3002 – 一次性数值合法性错误",
        'E3003' => "E3003 – 一次性数值已超过有效时限",
        'E3100' => "E3100 – 拨款日期(起/迄)错误",
        'E3101' => "E3101 – 拨款日期(起)格式错误",
        'E3102' => "E3102 – 拨款日期(迄)格式错误",
        'E3103' => "E3103 – 拨款日期区间超过予许查询范围",
        'E3201' => "E3201 – 付款日期(起)格式错误",
        'E3202' => "E3202 – 付款日期(迄)格式错误",
        'E3203' => "E3203 – 付款日期(起)不可大於付款日期(迄)",
        'E3204' => "E3204 – 付款开始日期与付款结束日期必须同时有值",
        'E3301' => "E3301 – 要求版本不符",
        'E3401' => "E3401 – 指定服务不存在",
        'E3501' => "E3501 – 讯息内容错误",
        'E3600' => "E3600 – 分期付款/红利折抵/银联卡订单不接受部分退款",
        'E3601' => "E3601 – 退款金额错误",
        'E3602' => "E3602 – 退款金额大於代收金额",
        'E3700' => "E3700 – 快速付款 Token 格式错误",
        'E3701' => "E3701 – 快速付款 Token 不存在",
        'E3702' => "E3702 – 快速付款未启用",
        'E3801' => "E3801 – 统一编号错误",
        'E4001' => "E4001 – 寄件人手机号码格式错误",
        'E4002' => "E4002 – 取件人手机号码格式错误",
        'E4004' => "E4004 – 厂商订单编号错误",
        'E4005' => "E4005 – 未输入寄件人姓名",
        'E4006' => "E4006 – 未输入收件人姓名",
        'E4007' => "E4007 – 姓名长度不得超过 10 码",
        'E4008' => "E4008 – 姓名格式错误, 不得有特殊符号字元",
        'E4009' => "E4009 – 未输入收件人手机号码",
        'E4101' => "E4101 – 出货日期错误",
        'E4102' => "E4102 – 出货日期必须大於今天",
        'E4103' => "E4103 – 出货日期必须在期限内",
        'E4201' => "E4201 – 订单金额格式错误",
        'E4202' => "E4202 – 订单金额错误,金额应介於 1 到 20,000 之间",
        'E4301' => "E4301 – 代收金额格式错误",
        'E4302' => "E4302 – 代收金额错误,金额应介於 0 到 20,000 之间",
        'E4400' => "E4400 – 商品价值格式错误",
        'E4401' => "E4401 – 商品价值不得为 0 或空值",
        'E4402' => "E4402 – 商品价值不得超过代收金额上限",
        'E4403' => "E4403 – 商品价值後 2 位数必须为 00",
        'E4404' => "E4404 – 商品价值不得超过代收金额",
        'E4405' => "E4405 – 商品价值错误",
        'E4501' => "E4501 – 取件店代码长度必须为 6 码",
        'E4502' => "E4502 – 取件店不存在或无法使用",
        'E4601' => "E4601 – 建立超商取货付款订单失败",
        'E4602' => "E4602 – 取件店及送货日期只可择一修改",
        'E4603' => "E4603 – 送货日期无效",
        'E4604' => "E4604 – 物流状态错误",
        'E4605' => "E4605 – 修改超商取货付款订单失败",
        'E4606' => "E4606 – 修改超商付款退货订单失败",
        'E4701' => "E4701 – 超商付款订单编号不存在",
        'E4702' => "E4702 – 退货金额不得小於退货物流费",
        'E4801' => "E4801 – 退货申请起始日期格式错误",
        'E4802' => "E4802 – 退货申请结束日期格式错误",
        'E4901' => "E4901 – 退货状态格式错误",
        'E5001' => "E5001 – 信用卡定期定额期数无效",
        'E5002' => "E5002 – 信用卡定期定额扣款周期错误",
        'E5003' => "E5003 – 信用卡定期定额扣款频率错误",
        'E5101' => "E5101 – 信用卡定期扣款失败",
        'E5201' => "E5201 – 取得行动支付付款连结失败",
        'E5301' => "E5301 – 建立 LINE Pay 订单失败",
        'E5401' => "E5401 – 查询 LINE Pay 订单失败",
        'E6000' => "E6000 – 信用卡卡号、效期、CVV2 解密错误",
        'E6001' => "E6001 – 信用卡卡号加密文字超过 255 字元",
        'E6002' => "E6002 – 信用卡效期加密文字超过 255 字元",
        'E6003' => "E6003 – 信用卡 CVV2 加密文字超过 255 字元",
        'E6010' => "E6010 – 信用卡卡号错误(非 VISA、MASTER、JVC)",
        'E6011' => "E6011 – 信用卡卡号格式错误",
        'E6012' => "E6012 – 信用卡效期格式错误",
        'E6013' => "E6013 – 信用卡 CVV2 格式错误",
        'E9900' => "E9900 – 系统忙碌中",
        'E9901' => "E9901 – 取得系统参数「设定有效分钟区间 - 信用卡」错误",
        'E9902' => "E9902 – 取得系统参数「设定可自动请款天数上限」错误",
        'E9903' => "E9903 – 取得系统参数「核销天数」错误",
        'E9904' => "E9904 – 取得「交易编号(TSID)」失败",
        'E9905' => "E9905 – 取得「专案代号」失败",
        'E9906' => "E9906 – 取得「虚拟帐号」失败",
        'E9907' => "E9907 – 取得「对 PaymentGetway 应用的 Key(PGOrderNo)」失败",
        'E9908' => "E9908 – 取得系统参数「对帐天数」错误",
        'E9909' => "E9909 – 取得「商店转拨款天数」错误",
        'E9910' => "E9910 – 计算手续费失败",
        'E9911' => "E9911 – 取得系统参数「设定有效天数区间 - 虚拟帐号」错误",
        'E9912' => "E9912 – 取得系统参数「刷卡页 URL」失败",
        'E9913' => "E9913 – 取得系统参数「OTP URL」失败",
        'E9914' => "E9914 – 取得系统参数「WebAtm URL」失败",
        'E9915' => "E9915 – 取得系统参数「查询资料笔数上限」失败",
        'E9916' => "E9916 – 取得系统参数「查询资料有效月份」失败",
        'E9917' => "E9917 – 取得系统参数「订单可退款次数」失败",
        'E9918' => "E9918 – 订单已申请退款",
        'E9919' => "E9919 – 订单剩余退款金额不足",
        'E9920' => "E9920 – 取得「可退款天数」失败",
        'E9921' => "E9921 – 取得系统参数「对帐档-每日收退款查询区间」失败",
        'E9922' => "E9922 – 超过商店可退款天数",
        'E9923' => "E9923 – 验证码错误",
        'E9924' => "E9924 – 无验证码资料",
        'E9925' => "E9925 – 查询主机已缴款资料失败",
        'E9926' => "E9926 – 査无主机已缴款资料",
        'E9927' => "E9927 – 取得定期定额期数范围失败",
        'E9928' => "E9928 – 取得定期定额扣款频率范围失败",
        'E9999' => "E9999 – 发生未知系统错误",
        'S0000' => "S0000 – 处理成功",
        'S0001' => "S0001 – 处理成功,查无资料或是查询条件组合不相符",
        'M0001' => "M0001 – 系统维护中",
    ];

    return $code === 'S0000' ? '' : $code_map[$code];
}

0x3 今日结语

今天把回覆讯息码对应的部分处理好了,时间不是很多 (混个篇幅)
明天接着把 交易状态代码退款状态代码 完成,
并且检视讯息的更新与对应是否正确,要多花一点时间微调


<<:  卡夫卡的藏书阁【Book17】- Kafka - KafkaJS 生产者 - 5

>>:  Day 16 - Apply

EP 06 - 取得 Nonce (1/2)

Youtube 频道:https://www.youtube.com/c/kaochenlong ...

Day04 - this&Object Prototypes Ch3 Objects - Contents - Property Descriptors 开头

今天读这小节的开头 原来 Object 里的 property 还默默记录了除了 value 以外的...

自学教材选择

Photo by The Climate Reality Project on Unsplash ...

Day6 建立 Next.js 专案 - 使用 create-next-app

今天我们要来建立 Next.js 专案,目标是能在自己电脑上成功开启 Next.js 网页。 我预设...

Day.5 深入理解连结之符号解析

在上一篇文章中,我们熟悉了可重定位文件和可执行文件,我们继续学习连节操作的具体步骤---「符号解析」...