jagdish-j-p / billdesk-hmac
用于将BillDesk支付网关与HMAC加密集成到Laravel的包
v1.3.5
2023-05-10 09:45 UTC
Requires
- php: >=7.2
- guzzlehttp/guzzle: ^7.3
- laravelcollective/html: ^6.2
- monolog/monolog: ^2.2
- web-token/jwt-core: 2.2.10
- web-token/jwt-key-mgmt: 2.2.10
- web-token/jwt-signature: 2.2.10
- web-token/jwt-signature-algorithm-hmac: 2.2.10
This package is auto-updated.
Last update: 2024-09-28 04:12:10 UTC
README
该仓库已开发用于在Laravel中将BillDesk支付网关与HMAC加密集成。
该仓库目前正在开发中。可能会有一些异常。
成为赞助商
您的支持使我能够保持该包免费、更新和可维护。或者,您也可以 传播信息!
安装
您可以通过composer安装该包
composer require jagdish-j-p/billdesk-hmac
然后运行发布命令以发布配置文件、支持控制器和视图
php artisan billdesk:publish
这将生成以下文件
- 包含默认设置的配置文件,您可以根据需要进行覆盖
billdesk.php
- 将接收支付响应和任何主机间事件的控制器
Http/Controllers/BilldeskHmac/Controller.php
- 公共目录中的资产。
- 包含默认HTML的视图文件,您可以根据需要进行覆盖
payment.blade.php
。注意不要更改表单操作URLbilldesk.payment.auth.request
。
设置
- 将您的响应URL以及您的商户ID、客户端ID和HMAC密钥添加到
.env
文件中。
BILLDESK_TRANSACTION_RESPONSE_PATH=billdesk/payments/transactions/callback BILLDESK_MANDATE_RESPONSE_PATH=billdesk/payments/mandates/callback BILLDESK_WEBHOOK_PATH=billdesk/payments/webhook BILLDESK_MERCHANT_ID= BILLDESK_CLIENT_ID= BILLDESK_HMAC_KEY= BILLDESK_MERCHANT_LOGO="${APP_URL}/assets/img/logo.jpg" BILLDESK_RETRY_COUNT=3 BILLDESK_CHILD_WINDOW=false BILLDESK_ITEM_CODE=DIRECT BILLDESK_UAT_PREFIX="test-prefix"
- 运行迁移以添加交易表
php artisan migrate
用法
-
您可以访问 http://app.test/billdesk/initiate/payment 以查看Web集成的支付流程演示。
-
在
Http/Controllers/BilldeskHmac/Controller.php
中处理支付响应
/** * This will be called after the user approve the mandate * @param Request $request * * @return Response */ public function mandateCallback(MandateModifyResponseRequest $request, $id = null) { $response = $request->handle($id); if ($response['response_format'] == 'JSON') { return response()->json(['response' => $response, 'billdesk_response' => $request->all()]); } dd($response, $request); // Remove this line and modify as per your needs. } /** * This will be called after the user approve the payment * on the bank side * * @param Request $request * @return Response */ public function callback(Request $request) { $response = $request->handle(); if ($response['response_format'] == 'JSON') return response()->json(['response' => $response, 'billdesk_response' => $request->all()]); dd($response, $request); // Remove this line and modify as per your needs. // Update your order status } /** * This will handle any direct call from BillDesk * * @param Request $request * @return string */ public function webhook(Request $request) { $response = $request->handle(); // Update your order status return 'OK'; }
- 使用命令检查所有挂起的交易的状态
php artisan billdesk:transaction-status
- 使用命令通过逗号分隔的订单参考ID检查特定交易的状态
php artisan billdesk:transaction-status --orderid=orderid1 --orderid=orderid2 --orderid=orderid3
- 从控制器检查交易状态
use JagdishJP\BilldeskHmac\Facades\BilldeskHmac; /** * Returns status of transaction * * @param string $orderid reference order id * @return array */ $status = BilldeskHmac::getTransactionStatus($orderid);
您还可以通过自定义设计覆盖 payment.blade.php
以与您的布局集成,但不要更改HTML控件中的 name
属性和表单的 action
URL。
更新日志
有关最近更改的更多信息,请参阅 CHANGELOG。
贡献
欢迎贡献者,并将获得全部认可。
安全
如果您发现任何与安全相关的问题,请通过电子邮件 jagdish.j.ptl@gmail.com 联系,而不是使用问题跟踪器。
致谢
许可协议
MIT许可(MIT)。有关更多信息,请参阅 许可文件。
Packagify
该包使用 Packagify 生成。