下面以支付寶支付插件(apipay)的原理通俗的說明事件的調用原理:
* **事件的調用方式,實例 event(‘Pay’, \['pay\_type' => 'alipay'\]);**
* **查詢可實現Pay事件的插件列表:**
* ~~~
通過查詢插件配置文件的event.php
return [
'bind' => [
],
'listen' => [
//支付異步回調
'PayNotify' => [
'addon\alipay\event\PayNotify'
],
//支付方式,后臺查詢
'PayType' => [
'addon\alipay\event\PayType'
],
//支付,前臺應用
'Pay' => [
'addon\alipay\event\Pay'
],
'PayClose' => [
'addon\alipay\event\PayClose'
],
'PayRefund' => [
'addon\alipay\event\PayRefund'
],
'PayTransfer' => [
'addon\alipay\event\PayTransfer'
],
'TransferType' => [
'addon\alipay\event\TransferType'
]
],
'subscribe' => [
],
~~~
\];
* **通過實例化對應事件的類文件,建立對象,同時執行對應的方法**
~~~php
例如:事件配置文件中:'addon\alipay\event\Pay',首先創建對象:
$class = new addon\alipay\event\Pay();
其次調用對應handle($param):
$res = $class->handle(['pay_type' => 'alipay']);
~~~
* **循環執行插件配置文件event.php依次返回數據**