zgabievi / tbc
此软件包已废弃,不再维护。未建议替代软件包。
TBC支付系统
0.2.1
2018-04-20 17:24 UTC
Requires
- php: >=5.3.0
- illuminate/support: ~5.1
Requires (Dev)
- phpunit/phpunit: ^6.1.4
- scrutinizer/ocular: ~1.1
- squizlabs/php_codesniffer: ^3.0.0
This package is not auto-updated.
Last update: 2021-02-05 22:58:39 UTC
README
即将推出一些优秀的更新...
| TBC支付 | |
|---|---|
| 为 Laravel 5.* 提供的 "TBC" 支付集成,专为格鲁吉亚开发者创建。💡 受到 tbcpay-php(来自 Sandro Dzneladze)的启发 🎉 欢迎提交拉取请求。 |
目录
安装
Composer
在您的终端中运行composer命令。
composer require zgabievi/tbc
Laravel
打开 config/app.php 并找到 providers 键。将 TBCServiceProvider 添加到数组中。
Gabievi\TBC\TBCServiceProvider::class
找到 aliases 键并将 Facade 添加到数组中。
'TBC' => Gabievi\TBC\TBCFacade::class
文档
该系统中存在两种类型的交易
- SMS 是直接支付,在1次事件中扣费。
- DMS 是延迟支付,需要2次事件
- 第一次事件在卡片上锁定资金
- 第二次事件取走资金(例如,当产品发货给客户时可以执行)
每24小时,商家必须向银行服务器发送关闭营业日的请求
使用方法
您需要了解几种方法
SMSTransaction($amount, $currency = 981, $description = '', $language = 'GE')DMSAuthorization($amount, $currency = 981, $description = '', $language = 'GE')DMSTransaction($txn_id, $amount, $currency = 981, $description = '', $language = 'GE')getTransactionResult($txn_id)reverseTransaction($txn_id, $amount = '', $suspected_fraud = '')refundTransaction($txn_id)creditTransaction($txn_id, $amount = '')closeDay()
示例
在您的 routes.php 中创建路由
Route::get('payment/{status}', function($status) { if ($status == 'success') { return TBC::getTransactionResult(request('trans_id')); } return 'FAIL!'; })->where('status', 'success|fail'); Route::get('pay', function() { return view('payment.tbc', [ 'start' => TBC::SMSTransaction(1) ]); });
创建 payment/tbc.blade.php。它应该看起来像
<!doctype html> <html> <head> <title>TBC</title> </head> <body> @if(isset($start['error'])) <h2>Error:</h2> <h1>{{ $start['error'] }}</h1> @elseif(isset($start['TRANSACTION_ID'])) <form name="returnform" id="Pay" action="https://securepay.ufc.ge/ecomm2/ClientHandler" method="POST"> <input type="hidden" name="trans_id" value="{{ $start['TRANSACTION_ID'] }}"> <noscript> <center>Please click the submit button below.<br> <input type="submit" name="submit" value="Submit"></center> </noscript> </form> <script> window.onload = document.forms.Pay.submit; </script> @endif </body> </html>
代码
| 键 | 值 | 描述 |
|---|---|---|
| 000 | 批准 | 批准 |
| 001 | 批准并带有ID | 批准并使用身份识别 |
| 002 | 批准 | 批准部分金额 |
| 003 | 批准 | 批准VIP |
| 004 | 批准 | 批准,更新跟踪3 |
| 005 | 批准 | 批准,发卡行指定的账户类型 |
| 006 | 批准 | 批准部分金额,发卡行指定的账户类型 |
| 007 | 批准 | 批准,更新ICC |
| 100 | 拒绝 | 拒绝(一般,无注释) |
| 101 | 拒绝 | 拒绝,过期卡片 |
| 102 | 拒绝 | 拒绝,疑似欺诈 |
| 103 | 拒绝 | 拒绝,卡片接受者联系发卡行 |
| 104 | 拒绝 | 拒绝,受限卡片 |
| 105 | 拒绝 | 拒绝,卡片接受器呼叫收单方安全部门 |
| 106 | 拒绝 | 拒绝,允许的PIN尝试次数超出 |
| 107 | 拒绝 | 拒绝,请参考发卡行 |
| 108 | 拒绝 | 拒绝,请参考发卡行的特殊条件 |
| 109 | 拒绝 | 拒绝,无效的商家 |
| 110 | 拒绝 | 拒绝,无效的金额 |
| 111 | 拒绝 | 拒绝,无效的卡号 |
| 112 | 拒绝 | 拒绝,需要PIN数据 |
| 113 | 拒绝 | 拒绝,不可接受的费用 |
| 114 | 拒绝 | 拒绝,没有请求的账户类型 |
| 115 | 拒绝 | 拒绝,请求的功能不受支持 |
| 116 | 拒绝,无资金 | 拒绝,资金不足 |
| 117 | 拒绝 | 拒绝,PIN不正确 |
| 118 | 拒绝 | 拒绝,无卡记录 |
| 119 | 拒绝 | 拒绝,交易不允许给持卡人 |
| 120 | 拒绝 | 拒绝,交易不允许给终端 |
| 121 | 拒绝 | 拒绝,超出取款金额限制 |
| 122 | 拒绝 | 拒绝,安全违规 |
| 123 | 拒绝 | 拒绝,超出取款频率限制 |
| 124 | 拒绝 | 拒绝,违法行为 |
| 125 | 拒绝 | 拒绝,卡无效 |
| 126 | 拒绝 | 拒绝,无效的PIN块 |
| 127 | 拒绝 | 拒绝,PIN长度错误 |
| 128 | 拒绝 | 拒绝,PIN同步错误 |
| 129 | 拒绝 | 拒绝,疑似伪造卡 |
| 180 | 拒绝 | 拒绝,持卡人意愿 |
| 200 | 取卡 | 取卡(一般,无注释) |
| 201 | 取卡 | 取卡,过期卡 |
| 202 | 取卡 | 取卡,疑似欺诈 |
| 203 | 取卡 | 取卡,卡片接受器联系卡收单方 |
| 204 | 取卡 | 取卡,受限卡 |
| 205 | 取卡 | 取卡,卡片接受器呼叫收单方安全部门 |
| 206 | 取卡 | 取卡,允许的PIN尝试次数超出 |
| 207 | 取卡 | 取卡,特殊条件 |
| 208 | 取卡 | 取卡,丢失卡 |
| 209 | 取卡 | 取卡,被盗卡 |
| 210 | 取卡 | 取卡,疑似伪造卡 |
| 300 | 呼叫收单方 | 状态信息:文件操作成功 |
| 301 | 呼叫收单方 | 状态信息:接收方不支持文件操作 |
| 302 | 呼叫收单方 | 状态信息:无法在文件中找到记录 |
| 303 | 呼叫收单方 | 状态信息:重复记录,旧记录被替换 |
| 304 | 呼叫收单方 | 状态信息:文件记录字段编辑错误 |
| 305 | 呼叫收单方 | 状态信息:文件被锁定 |
| 306 | 呼叫收单方 | 状态信息:文件操作不成功 |
| 307 | 呼叫收单方 | 状态信息:文件数据格式错误 |
| 308 | 呼叫收单方 | 状态信息:重复记录,新记录被拒绝 |
| 309 | 呼叫收单方 | 状态信息:未知文件 |
| 400 | 接受 | 接受(用于冲正) |
| 499 | 批准 | 批准,无原始消息数据 |
| 500 | 呼叫收单方 | 状态信息:已对账,平衡 |
| 501 | 呼叫收单方 | 状态信息:已对账,不平衡 |
| 502 | 呼叫收单方 | 状态信息:金额未对账,提供总计 |
| 503 | 呼叫收单方 | 状态信息:对账总计不可用 |
| 504 | 呼叫收单方 | 状态信息:未对账,提供总计 |
| 600 | 接受 | 接受(用于管理信息) |
| 601 | 呼叫收单方 | 状态信息:无法追踪原始交易 |
| 602 | 呼叫收单方 | 状态信息:无效的交易参考号 |
| 603 | 呼叫收单方 | 状态信息:参考号/PAN不兼容 |
| 604 | 呼叫收单方 | 状态信息:POS照片不可用 |
| 605 | 呼叫收单方 | 状态信息:已提供请求项 |
| 606 | 呼叫收单方 | 状态信息:请求无法满足 - 所需文件不可用 |
| 680 | 列表就绪 | 列表就绪 |
| 681 | 列表未就绪 | 列表未就绪 |
| 700 | 接受 | 接受(用于费用收取) |
| 800 | 接受 | 接受(用于网络管理) |
| 900 | 接受 | 通知已确认,不接受财务责任 |
| 901 | 接受 | 通知已确认,接受财务责任 |
| 902 | 呼叫收单方 | 拒绝原因消息:无效的交易 |
| 903 | 呼叫收单方 | 状态信息:重新输入交易 |
| 904 | 呼叫收单方 | 拒绝原因消息:格式错误 |
| 905 | 呼叫收单方 | 拒绝原因消息:收单方不受交换支持 |
| 906 | 呼叫收单方 | 拒绝原因消息:切换过程中 |
| 907 | 呼叫收单方 | 拒绝原因消息:发卡行或交换不可用 |
| 908 | 呼叫收单方 | 拒绝原因消息:交易目的地无法找到进行路由 |
| 909 | 呼叫收单方 | 拒绝原因消息:系统故障 |
| 910 | 呼叫收单方 | 拒绝原因消息:发卡行已关闭 |
| 911 | 呼叫收单方 | 拒绝原因消息:发卡行超时 |
| 912 | 呼叫收单方 | 拒绝原因消息:发卡行不可用 |
| 913 | 呼叫收单方 | 拒绝原因消息:重复传输 |
| 914 | 呼叫收单方 | 拒绝原因消息:无法追踪到原始交易 |
| 915 | 呼叫收单方 | 拒绝原因消息:对账切换或检查点错误 |
| 916 | 呼叫收单方 | 拒绝原因消息:MAC不正确 |
| 917 | 呼叫收单方 | 拒绝原因消息:MAC密钥同步错误 |
| 918 | 呼叫收单方 | 拒绝原因消息:无可用通信密钥 |
| 919 | 呼叫收单方 | 拒绝原因消息:加密密钥同步错误 |
| 920 | 呼叫收单方 | 拒绝原因信息:安全软件/硬件错误 - 尝试再次 |
| 921 | 呼叫收单方 | 拒绝原因信息:安全软件/硬件错误 - 无操作 |
| 922 | 呼叫收单方 | 拒绝原因信息:消息编号顺序错误 |
| 923 | 呼叫收单方 | 状态信息:请求进行中 |
| 950 | 未接受 | 拒绝原因信息:违反商业安排 |
| XXX | 未定义 | 代码将被卡片状态代码或停用列表插入原因代码替换 |
配置
使用命令发布TBC配置文件
php artisan vendor:publish
创建了文件 config\tbc.php。在里面您可以随意更改配置。
许可证
laravel-tbcpay 在 MIT 许可证 下授权。
待办事项
- 从 README 中获取响应代码并将其放在其他地方
- 创建一些测试来检查全部功能
- 使 TBC 门面更类似于模型
- 在供应商中创建支付视图,这样开发者就不必手动完成