function paymentwallbrick_storeremote($params) { $email = $params['clientdetails']['email']; global $CONFIG; $systemurl = $CONFIG['SystemSSLURL'] ? $CONFIG['SystemSSLURL'] . '/' : $CONFIG['SystemURL'] . '/'; if (!class_exists("Paymentwall_Config")) { require_once dirname(__FILE__) . "/paymentwallbrick/lib/paymentwall.php"; } if ($params["test_mode"] == "on") { Paymentwall_Config::getInstance()->set(array('api_type' => Paymentwall_Config::API_GOODS, 'public_key' => $params['test_public_key'], 'private_key' => $params['test_private_key'])); } else { Paymentwall_Config::getInstance()->set(array('api_type' => Paymentwall_Config::API_GOODS, 'public_key' => $params['public_key'], 'private_key' => $params['private_key'])); } if ($params["action"] == "delete") { return array('status' => 'success'); } if (isset($_POST['brick_token'])) { if (isset($_POST['ccupdate'])) { $charge = new Paymentwall_Charge(); $charge->create(array('fingerprint' => $_POST['brick_fingerprint'], 'token' => $_POST['brick_token'], 'email' => $email, 'capture' => false, 'currency' => $params['currency'], 'amount' => 1, 'description' => 'Card Update - This charge will be automatically voided')); if ($charge->isSuccessful()) { $gatewayid = $charge->card->token; $_SESSION['paymentwall_card'] = $charge->card; $charge->void(); return array('status' => 'success', 'gatewayid' => $gatewayid); } else { $response = $charge->getPublicData(); $errors = json_decode($response, true); return array('status' => 'error', 'rawdata' => $errors['error']['message']); } } else { return array('status' => 'success', 'gatewayid' => "brickjs"); } } elseif (isset($params['cardnum'])) { $tokenModel = new Paymentwall_OneTimeToken(); $token = $tokenModel->create(array('public_key' => Paymentwall_Config::getInstance()->getPublicKey(), 'card[number]' => $params['cardnum'], 'card[exp_month]' => substr($params['cardexp'], 0, 2), 'card[exp_year]' => substr($params['cardexp'], 2, 2), 'card[cvv]' => $params['cardcvv'])); $charge = new Paymentwall_Charge(); $charge->create(array('token' => $token->getToken(), 'email' => $email, 'capture' => false, 'currency' => $params['currency'], 'amount' => 1, 'browser_ip' => $_SERVER['REMOTE_ADDR'], 'browser_domain' => $_SERVER['HTTP_HOST'], 'description' => 'Card Update - This charge will be automatically voided')); if ($charge->isSuccessful()) { $gatewayid = $charge->card->token; $charge->void(); return array('status' => 'success', 'gatewayid' => $gatewayid); } else { $response = $charge->getPublicData(); $errors = json_decode($response, true); return array('status' => 'error', 'rawdata' => $errors['error']['message']); } } }