Esempio n. 1
0
 /**
  * процессинг по запросу pay
  * подтверждает транзакцию на оплату по ранее созданной записи
  */
 private function processPayRequest()
 {
     $params = $this->parameters();
     // может быть уже была оплата, сразу ответим "ок"
     $pay = PaymentCloud::whereCustomerId($params['customer_id'])->whereOrderId($params['order_id'])->wherePaymentId($params['payment_id'])->whereWaiting(0)->first();
     if ($pay) {
         return $this->responseSuccess();
     }
     $check = $this->checkOrder();
     if (true !== $check) {
         return $check;
     }
     // такая транзакция уже должна быть в нашей базе, и не оплаченная
     $pay = PaymentCloud::whereCustomerId($params['customer_id'])->whereOrderId($params['order_id'])->wherePaymentId($params['payment_id'])->whereWaiting(1)->first();
     // если ее нет, значит ничего не делаем
     if (!$pay) {
         Reporter::payTransactionLost($params['customer_id'], $params['order_id'], $params['payment_id']);
         return $this->responseError('Ошибка статуса платежа', 200);
     }
     Reporter::payTransactionFound($params['customer_id'], $params['order_id'], $params['payment_id'], $pay->id);
     // обновляем транзакцию как оплаченную
     $pay->request = $params['request'];
     $pay->paidYam();
     Reporter::payTransactionPaid($params['customer_id'], $params['order_id'], $params['payment_id'], $pay->id);
     return $this->responseSuccess();
 }
Esempio n. 2
0
 /**
  * процессинг по запросу pay
  * подтверждает транзакцию на оплату по ранее созданной записи
  */
 private function processPayRequest()
 {
     // может быть уже была оплата, сразу ответим "ок"
     $pay = PaymentCloud::whereCustomerId($this->params['customer_id'])->wherePaymentId($this->params['payment_id'])->whereWaiting(0)->first();
     if ($pay) {
         $this->responseSuccess();
     }
     // такая транзакция уже должна быть в нашей базе, и не оплаченная
     $pay = PaymentCloud::whereCustomerId($this->params['customer_id'])->wherePaymentId($this->params['payment_id'])->whereWaiting(1)->first();
     // если ее нет, значит ничего не делаем
     if (!$pay) {
         Reporter::payTransactionLost($this->params['customer_id'], $this->params['order_id'], $this->params['payment_id']);
         $this->responseError(13);
     }
     Reporter::payTransactionFound($this->params['customer_id'], $this->params['order_id'], $this->params['payment_id'], $pay->id);
     // обновляем транзакцию как оплаченную
     $pay->request = $this->params['request'];
     $isNew = false;
     if (!PaymentCloud::checkTokenCard($this->params['customer_id'], $this->params['card_pan'])) {
         $isNew = true;
     }
     $pay->paid($this->params['token'], $isNew);
     Reporter::payTransactionPaid($this->params['customer_id'], $this->params['order_id'], $this->params['payment_id'], $pay->id);
     $this->responseSuccess();
 }