7.6. 完善支付后逻辑
支付后逻辑
前两个章节我们已经完成了订单支付的部分,接下来我们还要补充一些逻辑,比如支付之后要给订单中的商品增加销量,比如我们要发邮件给用户告知订单支付成功。
商品增加销量和发送邮件并不会影响到订单的支付状态,即使这两个操作失败了也不影响我们后续的业务流程,对于此类需求我们通常使用异步事件来解决。
支付成功事件
接下来我们来创建一个支付成功的事件:
$ php artisan make:event OrderPaid
app/Events/OrderPaid.php
use App\Models\Order;
.
.
.
class OrderPaid
{
use Dispatchable, InteractsWithSockets, SerializesModels;
protected $order;
public function __construct(Order $order)
{
$this->order = $order;
}
public function getOrder()
{
return $this->order;
}
}
事件本身不需要有逻辑,只需要包含相关的信息即可,在我们这个场景里就只需要一个订单对象。
接下来我们在支付成功的服务器端回调里触发这个事件...