/** * 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; } }
/** * 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; }