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; }
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 . '¤cy=' . $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'])); }
/** @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; }
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); } }
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']); }
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()) { /* @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')); }
/** * 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))); }