Esempio n. 1
0
 public function receive(msOrder $order, $params = array())
 {
     //Check input parameters
     if (!isset($params['eshopId'], $params['recipientAmount'], $params['recipientCurrency'], $params['paymentStatus'], $params['hash'])) {
         return $this->paymentError('Wrong payment request', $params);
     }
     if ($this->hash($params, 'payment') != $params['hash']) {
         return $this->paymentError('Wrong hash', $params);
     }
     if ($params['eshopId'] != $this->config['eshopid']) {
         return $this->paymentError('Wrong eshopId', $params);
     }
     if ($params['recipientCurrency'] != $this->config['currency']) {
         return $this->paymentError('Wrong currency', $params);
     }
     if ($params['recipientAmount'] != $order->get('cost')) {
         return $this->paymentError('Wrong order cost', $params);
     }
     /* @var miniShop2 $miniShop2 */
     $miniShop2 = $this->modx->getService('miniShop2');
     @($this->modx->context->key = 'mgr');
     if ($params['paymentStatus'] == 5) {
         $miniShop2->changeOrderStatus($order->get('id'), 2);
     } elseif ($params['paymentStatus'] == 4 && $this->modx->getOption('ms2_payment_rbk_cancel_order', null, false)) {
         $miniShop2->changeOrderStatus($order->get('id'), 4);
     }
     // Setting status "cancelled"
     return true;
 }
Esempio n. 2
0
 public function send(msOrder $order)
 {
     $id = $order->get('id');
     $sum = $order->get('cost');
     //echo 1;
     $ch = curl_init();
     $razd = '|';
     $server_callback_url = $this->config['paymentUrl'];
     $response_url = SUCCESS_URL;
     $order_id = $id . FondyForm::ORDER_SEPARATOR . time();
     $order_desc = "Оплата заказа - " . $id;
     $currency = $this->config['currency'];
     $amount = round($sum * 100);
     $eamil = $_POST[email];
     $merchant_id = $this->config['merchantId'];
     $signature = sha1($this->config['SecretId'] . $razd . $amount . $razd . $currency . $razd . $merchant_id . $razd . $order_desc . $razd . $order_id . $razd . $response_url . $razd . $eamil . $razd . $server_callback_url);
     //
     $data = 'server_callback_url=' . $server_callback_url . '&response_url=' . $response_url . '&order_id=' . $order_id . '&order_desc=' . $order_desc . '&currency=' . $currency . '&amount=' . $amount . '&signature=' . $signature . '&merchant_id=' . $merchant_id . '&sender_email=' . $eamil;
     //Вместо этого адреса пишем нужный
     curl_setopt($ch, CURLOPT_URL, 'https://api.fondy.eu/api/checkout/url/');
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
     curl_setopt($ch, CURLOPT_POST, true);
     curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
     $result = curl_exec($ch);
     $str = urldecode($result);
     parse_str($str, $mass);
     //echo $mass['checkout_url'];
     curl_close($ch);
     return $this->success('', array('redirect' => $mass['checkout_url']));
 }
Esempio n. 3
0
 public function receive(msOrder $order, $params = array())
 {
     $hash = md5($params['LMI_PAYEE_PURSE'] . $params['LMI_PAYMENT_AMOUNT'] . $params['LMI_PAYMENT_NO'] . $params['LMI_MODE'] . $params['LMI_SYS_INVS_NO'] . $params['LMI_SYS_TRANS_NO'] . $params['LMI_SYS_TRANS_DATE'] . $this->config['shopKey'] . $params['LMI_PAYER_PURSE'] . $params['LMI_PAYER_WM']);
     if ($params['LMI_HASH'] == strtoupper($hash)) {
         /* @var miniShop2 $miniShop2 */
         $miniShop2 = $this->modx->getService('miniShop2');
         @($this->modx->context->key = 'mgr');
         $miniShop2->changeOrderStatus($order->get('id'), 2);
         exit('OK');
     } else {
         $this->paymentError('Wrong HASH', $params);
     }
 }
 public function receive(msOrder $order, $params = array())
 {
     $id = $order->get('id');
     $crc = strtoupper($_REQUEST['SignatureValue']);
     // Production
     $sum1 = number_format($order->get('cost'), 6, '.', '');
     $crc1 = strtoupper(md5($sum1 . ':' . $id . ':' . $this->config['pass2']));
     // Test
     $sum2 = number_format($order->get('cost'), 2, '.', '');
     $crc2 = strtoupper(md5($sum2 . ':' . $id . ':' . $this->config['pass2']));
     if ($crc == $crc1 || $crc == $crc2) {
         /* @var miniShop2 $miniShop2 */
         $miniShop2 = $this->modx->getService('miniShop2');
         @($this->modx->context->key = 'mgr');
         $miniShop2->changeOrderStatus($order->get('id'), 2);
         exit('OK');
     } else {
         $this->paymentError('Err: wrong signature.', $params);
     }
 }
Esempio n. 5
0
 public function receive(msOrder $order, $params = array())
 {
     //Check input parameters
     if (!isset($params['pg_result'], $params['pg_salt'], $params['pg_sig'])) {
         return $this->paymentError('Wrong payment request', $params);
     }
     if ($this->signature($params, $this->config['result_script']) != $params['pg_sig']) {
         return $this->paymentError('Wrong signature', $params);
     }
     /* @var miniShop2 $miniShop2 */
     $miniShop2 = $this->modx->getService('miniShop2');
     @($this->modx->context->key = 'mgr');
     if ($params['pg_result'] == 1) {
         $miniShop2->changeOrderStatus($order->get('id'), 2);
     } elseif ($params['pg_result'] == 0 && $this->modx->getOption('ms2_payment_platron_cancel_order', null, false)) {
         $miniShop2->changeOrderStatus($order->get('id'), 4);
     }
     // Setting status "cancelled"
     return $this->buildResponse('ok', $this->config['result_script']);
 }
 /** @inheritdoc} */
 public function receive(msOrder $order, $params = array())
 {
     if ($user = $order->getOne('CustomerProfile')) {
         $user->set('account', $user->get('account') - $order->get('cost'));
         if ($user->save()) {
             $order->set('type', 1);
             $order->save();
             /** @var miniShop2 $miniShop2 */
             $miniShop2 = $this->modx->getService('miniShop2');
             $miniShop2->changeOrderStatus($order->get('id'), 2);
             return true;
         }
     }
     return false;
 }
Esempio n. 7
0
 public function receive(msOrder $order, $params = array())
 {
     /* @var miniShop2 $miniShop2 */
     $miniShop2 = $this->modx->getService('miniShop2');
     switch ($params['status']) {
         case '60':
             //successfull payd. Update MS2 order status to Paid
             if ($order->get('status') != 4) {
                 @($this->modx->context->key = 'mgr');
                 $miniShop2->changeOrderStatus($order->get('id'), 2);
             } else {
                 //variant when order already has been canceled (status 4=canceled)
                 $miniShop2->orderLog($order->get('id'), 'status', '');
                 $this->modx->log(modX::LOG_LEVEL_ERROR, '[miniShop2] Failed to change order status to Paid for txn:' . $order->get('id') . ' because order already is canceled in MS2.');
             }
             break;
         case '100':
             //cancel order
             $miniShop2->changeOrderStatus($order->get('id'), 4);
             break;
     }
     return true;
 }
 /**
  * Returns hash of order for various checks
  *
  * @param msOrder $order
  *
  * @return string
  */
 public function getOrderHash(msOrder $order)
 {
     return md5($order->get('id') . $order->get('cart_cost') . $order->get('delivery_cost') . $order->get('createdon'));
 }
Esempio n. 9
0
 /**
  * Returns a direct link for continue payment process of existing order
  *
  * @param msOrder $order
  *
  * @return string
  */
 public function getPaymentLink(msOrder $order)
 {
     return $this->config['paymentUrl'] . '?' . http_build_query(array('action' => 'continue', 'msorder' => $order->get('id'), 'mscode' => $this->getOrderHash($order)));
 }