tc-net / pay
专注头条Ttpay的支付扩展包
Requires
- php: >=7.2.3
- ext-bcmath: *
- ext-json: *
- ext-libxml: *
- ext-openssl: *
- ext-simplexml: *
- symfony/event-dispatcher: ^4.0 || ^5.0
- symfony/http-foundation: ^4.0 || ^5.0.7
- yansongda/supports: ^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.15
- mockery/mockery: ^1.2
- phpunit/phpunit: ^7.5
This package is not auto-updated.
Last update: 2024-11-05 17:44:44 UTC
README
运行环境
- PHP 7.2+ (v1.7.0 开始 >= 7.2.3)
- composer
1、抖音支付
- 小程序支付
method | 描述 |
---|---|
miniapp | 小程序支付 |
## 支持的方法 | |
所有网关均支持以下方法 |
find(array/string $order)
说明:查找订单接口
参数:$order
为string
类型时,请传入系统订单号,对应支付宝或微信中的out_trade_no
;array
类型时,参数请参考支付宝或微信官方文档。
返回:查询成功,返回Yansongda\Supports\Collection
实例,可以通过$colletion->xxx
或$collection['xxx']
访问服务器返回的数据。
异常:GatewayException
或InvalidSignException
refund(array $order)
说明:退款接口
参数:$order
数组格式,退款参数。
返回:退款成功,返回Yansongda\Supports\Collection
实例,可以通过$colletion->xxx
或$collection['xxx']
访问服务器返回的数据。
异常:GatewayException
或InvalidSignException
cancel(array/string $order)
说明:取消订单接口
参数:$order
为string
类型时,请传入系统订单号,对应支付宝或微信中的out_trade_no
;array
类型时,参数请参考支付宝或微信官方文档。
返回:取消成功,返回Yansongda\Supports\Collection
实例,可以通过$colletion->xxx
或$collection['xxx']
访问服务器返回的数据。
异常:GatewayException
或InvalidSignException
close(array/string $order)
说明:关闭订单接口
参数:$order
为string
类型时,请传入系统订单号,对应支付宝或微信中的out_trade_no
;array
类型时,参数请参考支付宝或微信官方文档。
返回:关闭成功,返回Yansongda\Supports\Collection
实例,可以通过$colletion->xxx
或$collection['xxx']
访问服务器返回的数据。
异常:GatewayException
或InvalidSignException
verify()
说明:验证服务器返回消息是否合法
返回:验证成功,返回Yansongda\Supports\Collection
实例,可以通过$colletion->xxx
或$collection['xxx']
访问服务器返回的数据。
异常:GatewayException
或InvalidSignException
PAYMETHOD(array $order)
说明:进行支付;具体支付方法名称请参考「支持的支付方法」一栏
返回:成功,返回Yansongda\Supports\Collection
实例,可以通过$colletion->xxx
或$collection['xxx']
访问服务器返回的数据或Symfony\Component\HttpFoundation\Response
实例,可通过return $response->send()
(laravel 框架中直接return $response
) 返回,具体请参考文档。
异常:GatewayException
或InvalidSignException
安装
composer require tc-net/pay -vvv
使用说明
抖音支付
<?php
namespace App\Http\Controllers;
use Tcnet\Pay\Pay;
use Tcnet\Pay\Log;
class PayController
{
protected $config = [
'app_id' => '2016082000295641',
'notify_url' => 'http://xxx.cn/notify.php',
'return_url' => 'http://xxx.cn/return.php',
'token' => '',
'salt' => '',
'log' => [ // optional
'file' => './logs/alipay.log',
'level' => 'info', // 建议生产环境等级调整为 info,开发环境为 debug
'type' => 'single', // optional, 可选 daily.
'max_file' => 30, // optional, 当 type 为 daily 时有效,默认 30 天
],
'http' => [ // optional
'timeout' => 5.0,
'connect_timeout' => 5.0,
// 更多配置项请参考 [Guzzle](https://guzzle-cn.readthedocs.io/zh_CN/latest/request-options.html)
],
'mode' => 'dev', // optional,设置此参数,将进入沙箱模式
];
public function index()
{
$order = [
'out_order_no' => time(),
'total_amount' => 1,// **单位:分**
'subject' => 'test subject - 测试',
'body' => 'test subject - 测试',
'valid_time' => 1800,
// 'limit_pay_way' => 'LIMIT_WX'
];
$ttpay = Pay::ttpay($this->config)->miniapp($order);
return $ttpay->send();// laravel 框架中请直接 `return $alipay`
}
public function return()
{
$data = Pay::ttpay($this->config)->verify(); // 是的,验签就这么简单!
// 订单号:$data->out_trade_no
// 支付宝交易号:$data->trade_no
// 订单总金额:$data->total_amount
}
public function notify()
{
$ttpay = Pay::ttpay($this->config);
try{
$data = $ttpay->verify(); // 是的,验签就这么简单!
// 请自行对 trade_status 进行判断及其它逻辑进行判断,在支付宝的业务通知中,只有交易通知状态为 TRADE_SUCCESS 或 TRADE_FINISHED 时,支付宝才会认定为买家付款成功。
// 1、商户需要验证该通知数据中的out_trade_no是否为商户系统中创建的订单号;
// 2、判断total_amount是否确实为该订单的实际金额(即商户订单创建时的金额);
// 3、校验通知中的seller_id(或者seller_email) 是否为out_trade_no这笔单据的对应的操作方(有的时候,一个商户可能有多个seller_id/seller_email);
// 4、验证app_id是否为该商户本身。
// 5、其它业务逻辑情况
Log::debug('ttpay notify', $data->all());
} catch (\Exception $e) {
// $e->getMessage();
}
return $alipay->success()->send();
}
}
## LICENSE
MIT