Ejemplo n.º 1
0
 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);
 }
Ejemplo n.º 2
0
 /**
  * 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();
 }
Ejemplo n.º 3
0
 public function actionPayment()
 {
     $packets = PaymentModel::model()->findAll();
     $currency = CurrencyModel::model()->findRow();
     $this->view("payment", array("packets" => $packets, "currency" => $currency), false);
 }
Ejemplo n.º 4
0
 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);
     }
 }