Вход Регистрация
Файл: sngine-v2.8/Script/includes/ajax/payments/stripe.php
Строк: 62
<?php
/**
 * ajax -> payments -> stripe
 * 
 * @package Sngine
 * @author Zamblek
 */

// fetch bootstrap
require('../../../bootstrap.php');

// check AJAX Request
is_ajax();

// user access
user_access(true);

// check if Stripe enabled
if(!$system['creditcard_enabled'] && !$system['alipay_enabled']) {
    
modal("MESSAGE"__("Error"), __("This feature has been disabled by the admin"));
}

try {

    switch (
$_POST['handle']) {
        case 
'packages':
            
// valid inputs
            
if(!isset($_POST['package_id']) || !is_numeric($_POST['package_id'])) {
                
_error(400);
            }
            if(!isset(
$_POST['token'])) {
                
_error(400);
            }

            
// check package
            
$package $user->get_package($_POST['package_id']);
            if(!
$package) {
                
_error(400);
            }
            
/* check if user already subscribed to this package */
            
if($user->_data['user_subscribed'] && $user->_data['user_package'] == $package['package_id']) {
                
modal("SUCCESS"__("Subscribed"), __("You already subscribed to this package, Please select different package"));
            }

            
// process
            
require_once(ABSPATH.'includes/libs/Stripe/init.php');
            
$secret_key = ($system['stripe_mode'] == "live")? $system['stripe_live_secret'] : $system['stripe_test_secret'];
            
StripeStripe::setApiKey($secret_key);
            
$customer StripeCustomer::create(array(
                
'source' => $_POST['token']
            ));
            
$charge   StripeCharge::create(array(
                
'customer' => $customer->id,
                
'receipt_email' => $_POST['email'],
                
'amount' => $package['price']*100,
                
'currency' => $system['system_currency']
            ));
            if(
$charge) {
                
// update user package
                
$user->update_user_package($package['package_id'], $package['name'], $package['price'], $package['verification_badge_enabled']);
            }

            
// return
            
return_json( array('callback' => 'window.location.href = "'.$system['system_url'].'";') );
            break;

        case 
'wallet':
            
// valid inputs
            
if(!isset($_POST['price']) || !is_numeric($_POST['price'])) {
                
_error(400);
            }
            if(!isset(
$_POST['token'])) {
                
_error(400);
            }

            
// process
            
require_once(ABSPATH.'includes/libs/Stripe/init.php');
            
$secret_key = ($system['stripe_mode'] == "live")? $system['stripe_live_secret'] : $system['stripe_test_secret'];
            
StripeStripe::setApiKey($secret_key);
            
$customer StripeCustomer::create(array(
                
'source' => $_POST['token']
            ));
            
$charge   StripeCharge::create(array(
                
'customer' => $customer->id,
                
'receipt_email' => $_POST['email'],
                
'amount' => $_POST['price']*100,
                
'currency' => $system['system_currency']
            ));
            if(
$charge) {
                
// update user wallet balance
                
$_SESSION['wallet_replenish_amount'] = $_POST['price'];
                
$db->query(sprintf("UPDATE users SET user_wallet_balance = user_wallet_balance + %s WHERE user_id = %s"secure($_SESSION['wallet_replenish_amount']), secure($user->_data['user_id'], 'int'))) or _error("SQL_ERROR_THROWEN");
                
/* wallet transaction */
                
$user->wallet_set_transaction($user->_data['user_id'], 'recharge'0$_SESSION['wallet_replenish_amount'], 'in');
            }

            
// return
            
return_json( array('callback' => 'window.location.href = "'.$system['system_url'].'/wallet?replenish_succeed";') );
            break;
        
        default:
            
_error(400);
            break;
    }

} catch (
Exception $e) {
    
modal("ERROR"__("Error"), $e->getMessage());
}

?>
Онлайн: 1
Реклама