if (isset($_POST['duration']) && $projectDurationOption == '0') {
         $startDate = time();
         $endDate = strtotime($_POST['Selecteddays']);
     } elseif ($projectDurationOption == '1') {
         $days = (int) $_POST['days'];
         $days = $days * 24 * 3600;
         $startDate = time();
         $endDate = $startDate + $days;
     } else {
         $days = 30 * 24 * 3600;
         $projectDurationOption = 0;
         $startDate = time();
         $endDate = $startDate + $days;
     }
     $projectDurationOption = isset($projectDurationOption) ? $projectDurationOption : 0;
     $commision = get_commission($projectId, $projectFunding, '0', 'p');
     if ($commision == "") {
         $sel_re_projectcommission = mysql_fetch_array($con->recordselect("SELECT * FROM smallprojectamount"));
         $admincommission = $sel_re_projectcommission['std_cat_commission'];
     } else {
         $admincommission = $commision;
     }
     $updateBasic = $con->update("UPDATE projectbasics SET `projectStart` = " . $startDate . ", \n\t\t\t\t\t\t`projectEnd` = " . $endDate . " , `durationType` = '" . $projectDurationOption . "' , \n\t\t\t\t\t\t`fundingGoal` ='" . $projectFunding . "', `admincommission` = " . $admincommission . "  \n\t\t\t\t\t\tWHERE `projectId` = " . $projectId);
 } elseif ($_POST['current'] == '4') {
     // save the rewards
     //echo $_POST['current'];
     $rewardQr = $con->delete("DELETE FROM projectrewards WHERE projectId=" . $projectId);
     $pledgeAmount = $_POST['rewardAmount'];
     $limitAvail = $_POST['avail'];
     $rewardDescription = $_POST['rewardDescription'];
     $rewardMonth = $_POST['rewardMonth'];
 function backerPreapprovePayment($array)
 {
     extract($array);
     // the following (other than user_amount name change) are a bit redundant
     // but here for a touch of security...
     $backerId = sanitize_string($array['backerId']);
     $user_amount = sanitize_string($array['amount']);
     $projectId = sanitize_string($array['projectId']);
     $rewardId = sanitize_string($array['rewardId']);
     $TrackingID = generate_password(5);
     $user = mysql_fetch_array($this->con->recordselect("SELECT * from `users` where `userId` = " . $_SESSION['userId']));
     //$backer_paypal = base64_decode($user['paypalUserAccount']);
     $backer_email = base64_decode($user['emailAddress']);
     $senderPhoneCountryCode = '';
     $senderPhone = '';
     $project_rcd = mysql_fetch_array($this->con->recordselect("SELECT * from `projects` where `projectId` = {$projectId} "));
     $creator = mysql_fetch_array($this->con->recordselect("SELECT * from `users` where `userId` = " . $project_rcd['userId']));
     $creator_paypal = base64_decode($creator['paypalUserAccount']);
     $project = mysql_fetch_array($this->con->recordselect("SELECT * from `projectbasics` where `projectId` = {$projectId} "));
     $Memo = "Support CrowdedRocket project: " . $project['projectTitle'];
     $CurrencyCode = 'USD';
     $DateOfMonth = '0';
     $DayOfWeek = 'NO_DAY_SPECIFIED';
     $StartingDate = date('Y-m-d', strtotime("+10 minutes", $project['projectEnd']));
     $EndingDate = date('Y-m-d', strtotime("+5 days", $project['projectEnd']));
     $IPNNotificationURL = '';
     $MaxAmountPerPayment = $user_amount;
     $MaxNumberOfPayments = 1;
     $MaxTotalAmountOfAllPaymentsPerPeriod = $user_amount;
     $MaxTotalAmountOfAllPayments = $user_amount;
     $PaymentPeriod = 'NO_PERIOD_SPECIFIED';
     $PinType = 'NOT_REQUIRED';
     $ReturnURL = SITE_URL . 'thankyou.php?projectId=' . $projectId . '&trackingId=' . $TrackingID;
     //$CancelURL =SITE_URL."browseproject/".$projectId."/".Slug($selectProject['projectTitle']).'/';
     $CancelURL = SITE_URL . 'precancel.php?projectId=' . $projectId . '&trackingId=' . $TrackingID;
     //$SenderEmail='admin@'.$_SERVER['SERVER_NAME'];
     $FeesPayer = 'PRIMARYRECEIVER';
     $DisplayMaxTotalAmount = true;
     $CustomerID = $backerId;
     $CustomerType = 'Backer';
     $GeoLocation = '';
     $Model = '1.0';
     $PartnerName = DISPLAYSITENAME;
     $commission = get_commission($projectId, $user_amount, '0', 'p');
     // Prepare request arrays
     $PreapprovalFields = array('CancelURL' => $CancelURL, 'CurrencyCode' => $CurrencyCode, 'DateOfMonth' => $DateOfMonth, 'DayOfWeek' => $DayOfWeek, 'EndingDate' => $EndingDate, 'IPNNotificationURL' => $IPNNotificationURL, 'MaxAmountPerPayment' => $MaxAmountPerPayment, 'MaxNumberOfPayments' => $MaxNumberOfPayments, 'MaxTotalAmountOfAllPaymentsPerPeriod' => $MaxTotalAmountOfAllPaymentsPerPeriod, 'MaxTotalAmountOfAllPayments' => $MaxTotalAmountOfAllPayments, 'Memo' => $Memo, 'PaymentPeriod' => $PaymentPeriod, 'PinType' => $PinType, 'ReturnURL' => $ReturnURL, 'SenderEmail' => $backer_email, 'StartingDate' => $StartingDate, 'FeesPayer' => $FeesPayer, 'DisplayMaxTotalAmount' => $DisplayMaxTotalAmount);
     $ClientDetailsFields = array('CustomerID' => $CustomerID, 'CustomerType' => $CustomerType, 'GeoLocation' => $GeoLocation, 'Model' => $Model, 'PartnerName' => $PartnerName);
     /*									 
     		$Receivers = array();
     		$Receiver = array(
     						'Amount' => $commission, 											
     						'Email' => $this->PayPalConfig["DeveloperAccountEmail"],  												
     						'InvoiceID' => '', 											
     						'PaymentType' => '', 										
     						'PaymentSubType' => '', 									
     						'Phone' => array('CountryCode' => '', 'PhoneNumber' => '', 'Extension' => ''), 
     						'Primary' => 'FALSE'												
     						);
     		array_push($Receivers,$Receiver);			
     		$Receiver = array(
     						'Amount' => $user_amount, 											
     						'Email' =>$creator_paypal, 												
     						'InvoiceID' => '', 											
     						'PaymentType' => '', 										
     						'PaymentSubType' => '', 									
     						'Phone' => array('CountryCode' => $senderPhoneCountryCode, 'PhoneNumber' => $senderPhone, 'Extension' => ''), 
     						'Primary' => 'TRUE'												
     						);
     		array_push($Receivers,$Receiver);	
     		
     		$PayPalRequestData = array(
     							 'PreapprovalFields' => $PreapprovalFields, 
     							 'ClientDetailsFields' => $ClientDetailsFields,
     							 'Receivers' => $Receivers
     							 );
     */
     $PayPalRequestData = array('PreapprovalFields' => $PreapprovalFields, 'ClientDetailsFields' => $ClientDetailsFields);
     // Pass data into class for processing with PayPal and load the response array into $PayPalResult
     $PayPal = new PayPal_Adaptive($this->PayPalConfig);
     wrtlog("backerPreapprovePayment requesting Preapproval using: " . print_r($PayPalRequestData, true));
     $PayPalResult = $PayPal->Preapproval($PayPalRequestData);
     wrtlog("backerPreapprovePayment after Preapproval - PayPalResult: " . print_r($PayPalResult, true));
     /* ex per paypal doc
     		Response
     		--------
     		responseEnvelope.ack=Success
     		&preapprovalKey=PA-5KY19448VE6821234 #Value of the preapproval key, for use in subsequent steps
     		
     		However, what we get back from paypal.adaptive.class.php is array(
     								   'Errors' => $Errors, 
     								   'Ack' => $Ack, 
     								   'Build' => $Build, 
     								   'CorrelationID' => $CorrelationID, 
     								   'Timestamp' => $Timestamp, 
     								   'PreapprovalKey' => $PreapprovalKey, 
     								   'RedirectURL' => $PreapprovalKey != '' ? $RedirectURL : '', 
     								   'XMLRequest' => $XMLRequest, 
     								   'XMLResponse' => $XMLResponse)
     		//// expect only the Ack, PreapprovalKey, RedirectURL, XMLRequest and XMLResponse to be filled..
     		*/
     if (isset($PayPalResult['Ack']) && strtolower($PayPalResult['Ack']) == 'success') {
         // jwg -- $PayPalResult contains both the current TrackingID and the new CorrelationID
         if (!isset($PayPalResult['PreapprovalKey'])) {
             $errors = "UNEXPECTED - no PreapprovalKey in paypal preapproval response.";
             wrtlog($errors);
             wrtlog("PayPalResult from Preapproval: " . print_r($PayPalResult, true));
             $_SESSION['msgType1'] = array('from' => 'user', 'type' => 'error', 'var' => "multiple", 'val' => $errors);
             return SITE_URL . "projectBacker/" . $projectId;
         } else {
             // Create a pre-approved projectbacking record including the preapproval key
             $final_arr = array();
             foreach ($PayPalRequestData as $K => $P) {
                 $final_arr['request.' . addslashes($K)] = addslashes(is_array($P) ? json_encode($P) : $P);
             }
             foreach ($PayPalResult as $K => $P) {
                 $final_arr[addslashes($K)] = addslashes(is_array($P) ? json_encode($P) : $P);
             }
             $this->con->insert("insert into preapproval_detail (detail) values ('" . json_encode($final_arr) . "')");
             $preapproval_detail_id = mysql_insert_id();
             // create initial backing record with payment_status='?'
             $this->con->insert("INSERT INTO `projectbacking` " . "(rewardId, projectId, userId, pledgeAmount, backingTime, paypalId,preapproval_detail_id,payment_status,preapproval_key,tracking_id,pledgeCommision) " . "VALUES('" . $rewardId . "','" . $projectId . "', " . $backerId . ", '" . $user_amount . "', " . time() . ",NULL,'" . $preapproval_detail_id . "','?','" . $PayPalResult['PreapprovalKey'] . "','" . $TrackingID . "','" . $commission . "')");
             wrtlog("backerPreapprovePayment redirecting to " . $PayPalResult['RedirectURL']);
             redirect($PayPalResult['RedirectURL']);
             // This is where user makes actual decision to pre-approve
             // control returns to either ReturnURL (thankyou.php) or CancelURL (precancel.php)
         }
     } else {
         //$PayPalErrorsSerialized = serialize($PayPalResult['Errors']);
         //$PayPalErrorsUnserialized = unserialize($PayPalErrorsSerialized);
         //print $PayPalErrorsSerialized;
         $error = array();
         foreach ($PayPalResult['Errors'] as $er) {
             $error[] = $er['Message'];
         }
         $errors = implode("<br/>", $error);
         $_SESSION['msgType1'] = array('from' => 'user', 'type' => 'error', 'var' => "multiple", 'val' => $errors);
         return SITE_URL . "projectBacker/" . $projectId;
     }
 }
 function doPreapproval($array)
 {
     // $array is $_POST from paypalInfo.tpl.php form submission
     // extract yields: $amount, $rewardId, $projectId, $backerId
     // $backerId has been verified == $_SESSION['userId'] by our caller
     extract($array);
     $TrackingID = generate_password(5);
     $user = mysql_fetch_array($this->con->recordselect("SELECT * from `users` where `userId` = {$backerId} "));
     $senderEmail = base64_decode($user['paypalUserAccount']);
     if (empty($senderEmail)) {
         $senderEmail = base64_decode($user['emailAddress']);
     }
     $project_rcd = mysql_fetch_array($this->con->recordselect("SELECT * from `projects` where `projectId` = {$projectId} "));
     $project = mysql_fetch_array($this->con->recordselect("SELECT * from `projectbasics` where `projectId` = {$projectId} "));
     $memo = "Support CrowdedRocket project: " . $project['projectTitle'];
     $returnUrl = SITE_URL . 'modules/projectBacker/thankyou.php?projectId=' . $projectId . '&trackingId=' . $TrackingID;
     $cancelUrl = SITE_URL . 'modules/projectBacker/precancel.php?projectId=' . $projectId . '&trackingId=' . $TrackingID;
     $currencyCode = 'USD';
     $startingDate = date('Y-m-d', strtotime("+10 minutes", $project['projectEnd']));
     $endingDate = date('Y-m-d', strtotime("+5 days", $project['projectEnd']));
     // copied from samples PreapprovalReceipt.php
     $requestEnvelope = new RequestEnvelope("en_US");
     $preapprovalRequest = new PreapprovalRequest($requestEnvelope, $cancelUrl, $currencyCode, $returnUrl, $startingDate);
     $preapprovalRequest->endingDate = $endingDate;
     $preapprovalRequest->maxAmountPerPayment = $amount;
     $preapprovalRequest->maxNumberOfPayments = 1;
     $preapprovalRequest->maxNumberOfPaymentsPerPeriod = 1;
     $preapprovalRequest->maxTotalAmountOfAllPayments = $amount;
     $preapprovalRequest->memo = $memo;
     $preapprovalRequest->senderEmail = $senderEmail;
     $preapprovalRequest->feesPayer = 'PRIMARYRECEIVER';
     $preapprovalRequest->displayMaxTotalAmount = 'TRUE';
     $service = new AdaptivePaymentsService(Configuration::getAcctAndConfig());
     try {
         $response = $service->Preapproval($preapprovalRequest);
         //wrtlog("DEBUG payment.class.php service Preapproval response: ".print_r($response,true));
         $ack = strtoupper($response->responseEnvelope->ack);
         if ($ack != "SUCCESS") {
             wrtlog("WARNING payment.class.php Preapproval failed. response=" . print_r($resonse, true));
             $redirectUrl = isset($response->redirectUrl) ? $response->redirectUrl : $cancelUrl;
         } else {
             $token = $response->preapprovalKey;
             $redirectUrl = isset($response->redirectUrl) ? $response->redirectUrl : $returnUrl;
             // Create a pre-approved projectbacking record including the preapproval key
             $final_arr = array();
             foreach ($preapprovalRequest as $K => $P) {
                 $final_arr['request.' . addslashes($K)] = addslashes(is_array($P) ? json_encode($P) : $P);
             }
             $response_array = dismount($response);
             foreach ($response_array as $K => $P) {
                 $final_arr[addslashes($K)] = addslashes(is_array($P) ? json_encode($P) : $P);
             }
             $this->con->insert("insert into preapproval_detail (detail) values ('" . json_encode($final_arr) . "')");
             $preapproval_detail_id = mysql_insert_id();
             // create initial backing record with payment_status='?'
             $commission = get_commission($projectId, $amount);
             $this->con->insert("INSERT INTO `projectbacking` " . "(rewardId, projectId, userId, pledgeAmount, backingTime, paypalId,preapproval_detail_id,payment_status,preapproval_key,tracking_id,pledgeCommision) " . "VALUES('" . $rewardId . "','" . $projectId . "', " . $backerId . ", '" . $amount . "', " . time() . ",NULL,'" . $preapproval_detail_id . "','?','" . $token . "','" . $TrackingID . "','" . $commission . "')");
             redirect($redirectUrl);
             // control returns to either returnUrl (thankyou.php) or cancelUrl (precancel.php)
         }
     } catch (Exception $ex) {
         return $ex;
         // return error to caller
     }
 }
Example #4
0
<?php

require_once "../../includes/config.php";
$cost = sanitize_string($_POST['cost']);
$prjId = sanitize_string($_POST['projectId']);
$manage_commision_cost = mysql_fetch_array($con->recordselect("SELECT value from commision WHERE start =0 AND end >0 AND type = 'p'"));
if ($cost != '' && is_numeric($cost)) {
    $commision = get_commission($prjId, $cost, '0', 'p');
    if ($commision == "") {
        $sel_re_projectcommission = mysql_fetch_array($con->recordselect("SELECT * FROM smallprojectamount"));
        echo $sel_re_projectcommission['std_cat_commission'];
    } else {
        if ($commision <= 0) {
            echo $manage_commision_cost['value'];
        } else {
            echo $commision;
        }
    }
} else {
    echo $manage_commision_cost['value'];
}