最近在做一個使用支付寶轉賬的項目,其中有需求把我難到了:批量支付成功後不知道怎麼接收系統返回的通知,經過朋友幫忙,此功能實現,下面小編把具體代碼整理分享給大家,供大家參考
廢話不多說了,直接給大家貼php代碼了,具體代碼如下所示:
//批量付款異步通知處理 class Notify { public $notifyParams; //處理成功的信息 protected $success = []; //處理失敗的信息 protected $fail = []; //批次號 protected $batchNo; public function save() { if (!is_array($this->notifyParams)) { return false; } $alipayNotify = new AlipayNotify(); $alipayNotify->notifyParams = $this->notifyParams; $alipayNotify->partner = Yii::$app->params['Alipay.appid']; $alipayNotify->key = Yii::$app->params['Alipay.appKey']; if (!$alipayNotify->verify()) { return false; } $this->batchNo = $this->notifyParams['batch_no']; $this->parseResult(); //轉賬成功的 if (!empty($this->success)) { foreach ($this->success as $item) { //......... } } //轉賬失敗的 if (!empty($this->fail)) { foreach ($this->fail as $item) { //........ } } return true; } //解析結果 protected function parseResult() { if (!empty($this->notifyParams['success_details'])) { $suArray = explode('|', $this->notifyParams['success_details']); foreach ($suArray as $item) { $this->success[] = explode('^', $item); } } if (!empty($this->notifyParams['fail_detail'])) { $faArray = explode('|', $this->notifyParams['fail_detail']); foreach ($faArray as $item) { $this->fail[] = explode('^', $item); } } } } //用法 $model = new Notify(); $model->notifyParams = $_POST; if ($model->save()) { return 'success'; } return 'fail';
以上內容給大家講解了純PHP代碼實現支付寶批量付款的功能,希望對大家有所幫助。