| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- <?php
- namespace addons\HuifuPay\api\controllers;
- use addons\HuifuPay\common\service\PayService;
- use common\models\common\PaymentTrade;
- use addons\HuifuPay\common\models\HuifuPayOrderModel;
- use addons\HuifuPay\common\service\HuifuService;
- use yii\web\Controller;
- use Yii;
- use Exception;
- use common\helpers\FileHelper;
- use common\helpers\ArrayHelper;
- use common\enums\PayTypeEnum;
- /**
- * 支付回调
- *
- * Class NotifyController
- * @package frontend\controllers
- */
- class NotifyController extends Controller
- {
- //use PayNotify;
- /**
- * 关闭csrf
- *
- * @var bool
- */
- public $enableCsrfValidation = false;
- public function actionNotify()
- {
- $params = $this->request->post();
- \Yii::error('汇会天下支付回调:' . json_encode($params));
- if(!isset($params['resp_data'])||!isset($params['sign']))
- {
- throw new Exception('数据有误');
- }
- if($params['resp_code']!='00000000'&&$params['resp_code']!='00000100')
- {
- throw new Exception($params['resp_desc']);
- }
-
- $data=json_decode($params['resp_data'],true);
- $sign=$params['sign'];
- //获取交易信息
- $huifuOrder=HuifuPayOrderModel::findOne(['hf_order_no' => $data['req_seq_id']]);
- if(!$huifuOrder)
- {
- \Yii::error('汇会天下支付回调错误:找不到订单:'.$data['req_seq_id']);
- throw new Exception('找不到订单');
- }
- // 存储异步信心
- $huifuOrder->notify = $data;
- $huifuOrder->save();
- if($data['trans_stat']!="S")
- {
- return;
- }
- $trade = PaymentTrade::findOne(['out_trade_no' => $huifuOrder->trade_no]);
- if (!$trade) return true;
- $huifuService = new HuifuService($trade->mall_id);
- $signResult=$huifuService->verifySign($sign,$data);
- $pay_service = new PayService($trade->mall_id);
- $res = $pay_service->notify($trade,$data);
- if ($res) {
- echo 'success';
- } else {
- echo "erro";
- }
- }
-
- //快捷支付容错处理
- public function actionNotify2()
- {
- }
- }
|