public function actionResult() { $result = $_POST; $packet = PaymentModel::model()->where(" id = '" . $result['ik_x_package_id'] . "'")->findRow(); $Date = date('Y-m-d'); //echo 'date = '.$Date.'<br/>'; $new_date = date('Y-m-d', strtotime($Date . ' + ' . $packet->day_count . ' month')); //echo 'new_date = '.$new_date.'<br/>'; //echo date('Y-m-d', strtotime($Date. ' + 2 days')); $users = UsersModel::model()->where("`id`='" . $result['ik_x_user_id'] . "'")->findRow(); //$users->id = $result['ik_x_user_id']; $users->package_id = $result['ik_x_package_id']; $users->package_expire = $new_date; $users->promo_code = 'Куплено через интеркассу'; $users->save(); $this->view("Robokassa/result", array("result" => $_POST), false); }
/** * Managing authorize.net silent post * @author Dmitry Semenov <*****@*****.**> */ public function run() { $postData = $_POST; Yii::log(CJSON::encode($postData), 'trace'); if (empty($postData) || empty($postData['x_trans_id']) || empty($postData['x_amount']) || empty($postData['x_response_code']) || empty($postData['x_response_reason_text'])) { Yii::log("Incorrect POST provided", 'error'); exit; } try { if (Yii::app()->params['payment']['testMode'] == true) { $hash = md5(Yii::app()->params['payment']['testData']['md5Word'] . $postData['x_trans_id'] . $postData['x_amount']); } else { $hash = md5(Yii::app()->params['payment']['liveData']['md5Word'] . $postData['x_trans_id'] . $postData['x_amount']); } } catch (Exception $e) { Yii::log($e->getMessage(), 'error'); Yii::app()->end(); } try { if (strtolower($hash) == strtolower($postData['x_MD5_Hash'])) { $payment = PaymentModel::model()->findByAttributes(array('subscriptionID' => $postData['x_subscription_id'])); if (empty($payment)) { Yii::log("No subscription #" . $postData["x_subscription_id"] . " in DB\n", 'error'); Yii::app()->end(); } else { $valid = true; } } else { Yii::log("Incorrect hash provided.", 'error'); Yii::app()->end(); } } catch (Exception $e) { Yii::log($e->getMessage(), 'error'); exit; } // If it is an ARB transaction, do something with it if ($valid) { try { if ($postData['x_response_code'] == 1) { // --- Approved transactions management --- // if ($postData['x_subscription_paynum'] == 1) { Yii::log("Subscription OK", 'trace'); Yii::app()->end(); } $membershipPlan = MembershipPlanModel::model()->findByPk($payment->relatedUser->membership->membershipPlanID); $paymentData = array('status' => PaymentModel::STATUS_COMPLETED, 'message' => $postData['x_response_reason_text'], 'initID' => $payment->id); PaymentModel::createPayment($payment->relatedUser, PaymentModel::TYPE_OEM_RECURRING, $membershipPlan, $payment->relatedUser->membership, null, $paymentData); UserMembershipModel::extendMembership($payment->userMembershipID); Yii::app()->membership->prolong($plan->id, $plan->intervalLength, $plan->intervalUnit, $userId); } else { // Denied transactions //--- oem_recurring (failed) ---// $membershipPlan = MembershipPlanModel::model()->findByPk($payment->relatedUser->membership->membershipPlanID); $paymentData = array('status' => PaymentModel::STATUS_REFUSED, 'message' => $postData['x_response_reason_text'], 'initID' => $payment->id); PaymentModel::createPayment($payment->relatedUser, PaymentModel::TYPE_OEM_RECURRING, $membershipPlan, $payment->relatedUser->membership, null, $paymentData); Yii::app()->membership->prolong($plan->id, $plan->intervalLength, $plan->intervalUnit, $userId); } } catch (Exception $e) { Yii::log($e->getMessage(), 'error'); Yii::app()->end(); } } Yii::app()->end(); }
public function actionPayment() { $packets = PaymentModel::model()->findAll(); $currency = CurrencyModel::model()->findRow(); $this->view("payment", array("packets" => $packets, "currency" => $currency), false); }
public function actionGenerateCode() { if (isset($_POST['sub_code_generate'])) { if ($_POST['code_type'] == 1) { $date = date('Y-m-d'); switch ($_POST['can_activate']) { case 1: $can_activate = date('Y-m-d H-i-s', strtotime("+12 hours")); break; case 2: $can_activate = date('Y-m-d', strtotime($date . ' + 1 days')); break; case 3: $can_activate = date('Y-m-d', strtotime($date . ' + 3 days')); break; case 4: $can_activate = date('Y-m-d', strtotime($date . ' + 7 days')); break; case 5: $can_activate = date('Y-m-d', strtotime($date . ' + 14 days')); break; case 6: $can_activate = date('Y-m-d', strtotime($date . ' + 1 month')); break; case 7: $can_activate = date('Y-m-d', strtotime($date . ' + 2 month')); break; case 8: $can_activate = date('Y-m-d', strtotime($date . ' + 3 month')); break; } switch ($_POST['active_to']) { case 1: $active_to = '+ 3 days'; break; case 2: $active_to = '+ 7 days'; break; case 3: $active_to = '+ 14 days'; break; case 4: $active_to = '+ 3 month'; break; case 5: $active_to = '+ 6 month'; break; case 6: $active_to = '+ 1 year'; break; } //echo 'can activate = '.$can_activate.'<br/>'; //echo 'active_to = '.$active_to.'<br/>'; $model = new ReferalCodeModel(); $model->code_type = $_POST['code_type']; $model->activate_count = $_POST['activate_count']; $model->can_activate = $can_activate; $model->active_to = $active_to; $model->code = $_POST['code']; $model->active_to_use = "1"; $model->save(); $this->redirect("/admin/generate_code"); } else { switch ($_POST['active_to']) { case 1: $active_to = '+ 3 days'; break; case 2: $active_to = '+ 7 days'; break; case 3: $active_to = '+ 14 days'; break; case 4: $active_to = '+ 3 month'; break; case 5: $active_to = '+ 6 month'; break; case 6: $active_to = '+ 1 year'; break; } $model = new ReferalCodeModel(); $model->code_type = $_POST['code_type']; $model->active_to = $active_to; $model->code = $_POST['code']; $model->active_to_use = "1"; $model->save(); $this->redirect("/admin/generate_code"); } } else { $packages = PaymentModel::model()->findAll(); $codes = ReferalCodeModel::model()->findAll(); $this->view("/admin/code_generate", array("packages" => $packages, "codes" => $codes), false); } }