kyrax324/laravel-ipay88

Laravel应用IPay88支付网关集成

v1.0.2 2021-07-18 12:53 UTC

This package is auto-updated.

Last update: 2024-09-06 21:27:46 UTC


README

Laravel应用IPay88支付网关集成。

安装

composer require kyrax324/laravel-ipay88

配置

发布配置文件并设置merchantKeymerchantCode

php artisan vendor:publish --provider="IPay88\IPay88ServiceProvider" --tag=config

视图(可选)

如果您想修改支付表单,可以发布视图

php artisan vendor:publish --provider="IPay88\IPay88ServiceProvider" --tag=views

用法

根据IPay88文档,每个支付订单将经历以下步骤

  1. 准备并提交请求到IPay88服务器
  2. 处理来自IPay88服务器的响应
    • 响应(由responseURL设置)
    • 后端POST(由backendURL设置)
  3. 重新查询以检查支付状态(如果需要)

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集成常见问题解答

问题

如果您发现任何问题,请创建新问题