kyrax324 / laravel-ipay88
Laravel应用IPay88支付网关集成
v1.0.2
2021-07-18 12:53 UTC
Requires
- php: >=7.2
This package is auto-updated.
Last update: 2024-09-06 21:27:46 UTC
README
Laravel应用IPay88支付网关集成。
安装
composer require kyrax324/laravel-ipay88
配置
发布配置文件并设置merchantKey
和merchantCode
php artisan vendor:publish --provider="IPay88\IPay88ServiceProvider" --tag=config
视图(可选)
如果您想修改支付表单,可以发布视图
php artisan vendor:publish --provider="IPay88\IPay88ServiceProvider" --tag=views
用法
根据IPay88文档,每个支付订单将经历以下步骤
- 准备并提交请求到IPay88服务器
- 处理来自IPay88服务器的响应
- 响应(由
responseURL
设置) - 后端POST(由
backendURL
设置)
- 响应(由
- 重新查询以检查支付状态(如果需要)
1. 准备并提交请求到IPay88服务器
IPay88\Request\RequestBuilder
- 创建支付请求并返回视图
use IPay88\Request\RequestBuilder as IPay88RequestBuilder; $builder = new IPay88RequestBuilder(); $builder->setRefNo(1); $builder->setAmount(1); $builder->setCurrency('MYR'); $builder->setProdDesc('Sample Prod Desc'); $builder->setUserName('Sample User Name'); $builder->setUserEmail('Sample User Email'); $builder->setUserContact('Sample User Contact'); $builder->setResponseURL("http://sample.com/response_url"); $builder->setBackendURL("http://sample.com/backend_url"); return $builder->loadPaymentFormView();
2. 处理来自IPay88服务器的响应
IPay88\Request\Response
A. 响应(由responseURL设置)
use IPay88\Responses\Response as IPay88Response; $response = new IPay88Response($request); // logic to check if order has been updated before if($response->isSuccess()){ // update order to PAID }else{ // update order to FAIL }
B. 后端POST(由backendURL设置)
后端POST将与responseURL同时调用(如果支付成功)
如果未检测到‘RECEIVEOK’确认,IPay88服务器将在不同间隔尝试重试最多3次
use Ipay88\Responses\Response as IPay88Response; $response = new IPay88Response($request); // logic to check if order has been updated before if($response->isSuccess()){ // update order to PAID return "RECEIVEOK"; }else{ // update order to FAIL }
3. 重新查询以检查支付状态(如果需要)
IPay88\Request\RequeryBuilder
use IPay88\Request\RequeryBuilder as IPay88RequeryBuilder; $builder = new IPay88RequeryBuilder(); $builder->setRefNo(1); $builder->setAmount(1); if($builder->isSuccess()){ // update order to PAID }else{ // update order to FAIL }
常见问题解答
更多信息,请参阅IPay88集成常见问题解答
问题
如果您发现任何问题,请创建新问题