/**
 * Performs script purchase actions for specified parameters and makes fraud check also
 *
 * @param int $memberID					- member ID
 * @param string $checkoutAction		- payment type action (e.g memership, credits, etc)
 * @param string $data					- payment action data (e.g. membership ID or event ID)
 * @param string $amount				- payment sum
 * @param int $result					- purchase result from checkout file
 * 										  (it could be changed inside)
 * @param int $localTranID				- transaction ID in the database
 *
 * @return bool 						- true on success, false otherwise
 *
 *
 */
function performPurchase($memberID, $checkoutAction, $data, $amount, &$result, $localTranID = 0)
{
    global $site;
    // arguments validation
    $amount = sprintf('%.2f', (double) $amount);
    switch ($checkoutAction) {
        case 'membership':
            $membershipID = (int) $data;
            $res = buyMembership($memberID, $membershipID, $amount, $localTranID);
            return $res;
        case 'speeddating':
            $eventID = (int) $data;
            $res = isTicketAvailable($memberID, $eventID);
            // fraud check
            if ($res === false) {
                return false;
            }
            if ($res != $amount) {
                return false;
            }
            $res = purchaseTicket($memberID, $eventID, $localTranID);
            // if ticket purchased, but email wasn't sent then change result value
            if ($res === 3) {
                $result = 3;
                return true;
            } else {
                return $res;
            }
        default:
            return false;
    }
}
예제 #2
0
 /**
  * Register purchased product.
  *
  * @param  integer $iClientId  client's ID.
  * @param  integer $iSellerId  seller's ID.
  * @param  integer $iItemId    product's ID.
  * @param  integer $iItemCount product count purchased at the same time.
  * @param  string  $sOrderId   internal order ID generated for the payment.
  * @return array   with product description.
  */
 function serviceRegisterCartItem($iClientId, $iSellerId, $iItemId, $iItemCount, $sOrderId)
 {
     $bResult = true;
     for ($i = 0; $i < $iItemCount; $i++) {
         $bResult &= buyMembership($iClientId, $iItemId, $sOrderId);
     }
     return $bResult ? $this->_getCartItem($iClientId, $iItemId) : false;
 }