在Hyperf框架中接入支付宝支付流程:
1. 安装支付宝支付SDK
使用yansongda/hyperf-pay
包,这是一个优雅的支付宝和微信支付集成包。首先,通过Composer安装:
bash
composer require yansongda/hyperf-pay:~1.7.0
30
2. 发布配置文件
通过以下命令发布配置文件到你的Hyperf项目中:
bash
php bin/hyperf.php vendor:publish yansongda/hyperf-pay
30
3. 配置支付宝支付参数
编辑应用配置文件,添加支付宝支付的相关配置,包括app_id
、rsaPrivateKey
、alipayrsaPublicKey
等:
// config/autoload/alipay.php
return [
'alipay' => [
'app_id' => '你的支付宝应用ID',
'rsaPrivateKey' => '你的应用私钥',
'alipayrsaPublicKey' => '支付宝公钥',
'gatewayUrl' => 'https://openapi.alipay.com/gateway.do',
'signType' => 'RSA2',
'charset' => 'UTF-8',
'format' => 'json',
// 其他配置...
],
];
4. 创建支付服务
在服务类中创建支付宝支付的方法,使用yansongda/hyperf-pay
提供的功能来实现支付流程:
php
namespace App\Services;
use Yansongda\HyperfPay\Pay;
class AlipayService
{
public function appPay($total_amount, $out_trade_no, $subject)
{
$config = config('alipay');
$pay = new Pay($config);
return $pay->alipay()->app([
'out_trade_no' => $out_trade_no,
'total_amount' => $total_amount,
'subject' => $subject,
]);
}
}
5. 在Controller中使用支付服务
在你的控制器中,调用上面创建的支付服务,并处理支付请求:
php
namespace App\Controller;
use App\Services\AlipayService;
use Hyperf\HttpServer\Annotation\AutoController;
/**
* @AutoController()
*/
class PayController
{
public function pay(AlipayService $service)
{
// 调用服务进行支付
$response = $service->appPay(
'0.01', // 总金额
time(), // 订单号
'Test Subject' // 商品描述
);
// 处理$response,返回给客户端
}
}
6. 处理支付宝回调
支付宝支付完成后会发送异步通知到指定的回调URL,你需要创建一个路由来接收这个通知,并进行相应的订单处理: