javascript — Stripe установил сумму как переменную $

Я работаю с чередованием платежей и пытаюсь установить сумму в переменную. Я вижу, что есть много вопросов по этому поводу, но я не смог найти ответа.

В верхней части страницы я запрашиваю число в своей базе данных и делаю некоторые основные математические расчеты, чтобы установить сумму. Я повторяю Стоимость просто чтобы убедиться, что это работает, и это так. Вот код для этого

require_once('../stripe/lib/Stripe.php');
require_once("../auth/config.class.php");
require_once("../auth/auth.class.php");

$config = new Config;

$dbh = new PDO("mysql:host={$config->dbhost};dbname={$config->dbname}", $config->dbuser,     $config->dbpass);
$auth = new Auth($dbh, $config);

$id= $_GET['rid'];

$query = $dbh->prepare("SELECT hours FROM svcrequest WHERE id=? ");
$query->execute(array($id));
$rslt = $query->fetch(PDO::FETCH_ASSOC);
$cost    = ($rslt[hours] * 27)*100;
echo $cost;

Затем я пытаюсь назначить Стоимость в другую переменную количество внутри некоторых оператора if и исключения, и я пытаюсь повторить количество но я ничего не получаю.

// Set the order amount somehow:
$amount  = $cost; //  in cents
echo $amount;
$email       = "[email protected]";
$description = "Jane Doe"; //customer

Когда я echo $amount ничего не показывает Здесь полный код страницы. Я мог бы помочь с этим.

<?php
// Created by Larry Ullman, www.larryullman.com, @LarryUllman
// Posted as part of the series "Processing Payments with Stripe"// http://www.larryullman.com / series / processing - payments - with - stripe /
// Last updated February 20, 2013
// The class names are based upon Twitter Bootstrap (http://twitter.github.com / bootstrap / )

// This page is used to make a purchase.

// Every page needs the configuration file:// Uses sessions to test for duplicate submissions:
session_start();

?><!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>
IntelyCare
</title>
<script type="text/javascript" src="https://js.stripe.com/v2/"> </script>
<script src="http://code.jquery.com/jquery-1.11.1.min.js">  </script>
<script src="http://code.jquery.com/mobile/1.4.3/jquery.mobile-1.4.3.min.js"> </script>
</head>
<body>
<?php
require_once('../stripe/lib/Stripe.php');
require_once("../auth/config.class.php");
require_once("../auth/auth.class.php");

$config = new Config;

$dbh = new PDO("mysql:host={$config->dbhost};dbname={$config->dbname}", $config->dbuser,     $config->dbpass);
$auth = new Auth($dbh, $config);

$id= $_GET['rid'];

$query = $dbh->prepare("SELECT hours FROM svcrequest WHERE id=? ");
$query->execute(array($id));
$rslt = $query->fetch(PDO::FETCH_ASSOC);
$cost    = ($rslt[hours] * 27)*100;
echo $cost;// Set the Stripe key:
// Uses STRIPE_PUBLIC_KEY from the config file.
echo '<script type="text/javascript">Stripe.setPublishableKey("' . STRIPE_PUBLIC_KEY . '");</script>';

// Check for a form submission:
if($_SERVER['REQUEST_METHOD'] == 'POST')
{

// Stores errors:
$errors = array();

// Need a payment token:
if(isset($_POST['stripeToken']))
{

$token = $_POST['stripeToken'];

// Check for a duplicate submission, just in case:
// Uses sessions, you could use a cookie instead.
if(isset($_SESSION['token']) && ($_SESSION['token'] == $token))
{
$errors['token'] = 'You have apparently resubmitted the form. Please do not do that.';
}
else
{
// New submission.
$_SESSION['token'] = $token;
}

}
else
{
$errors['token'] = 'The order cannot be processed. Please make sure you have JavaScript enabled and try again.';
}

// Set the order amount somehow:
$amount  = $cost; //  in cents
echo $amount;
$email       = "[email protected]";
$description = "Jane Doe"; //customer// Validate other form data!

// If no errors, process the order:
if(empty($errors))
{

// create the charge on Stripe's servers - this will charge the user's card
try
{// Include the Stripe library:// set your secret key: remember to change this to your live secret key in production
// see your keys here https://manage.stripe.com / account
Stripe::setApiKey(STRIPE_PRIVATE_KEY);

// Charge the order:
// Create a Customer
$customer = Stripe_Customer::create(array(
"card"       => $token,
"description"=> $description
)
);
// Charge the Customer instead of the card
Stripe_Charge::create(array(
"amount"  => $amount    ,# amount in cents, again
"currency"=> "usd",
"customer"=> $customer->id
)
);
// Save the customer ID in your database so you can use it later
//saveStripeCustomerId($user, $customer->id);

// Later...
//$customerId = getStripeCustomerId($user);

$charge = Stripe_Charge::create(array(
"amount"  => $amount,// amount in cents, again
"currency"=> "usd",
"customer"=> $customer
)
);

// Check that it was paid:
if($charge->paid == true)
{

// Store the order in the database.
// Send the email.
// Celebrate!

}
else
{
// Charge was not paid!
echo '<div class="alert alert-error"><h4>Payment System Error!</h4>Your payment could NOT be processed (i.e., you have not been charged) because the payment system rejected the transaction. You can try again or use another card.</div>';
}

} catch(Stripe_CardError $e)
{
// Card was declined.
$e_json = $e->getJsonBody();
$err    = $e_json['error'];
$errors['stripe'] = $err['message'];
} catch(Stripe_ApiConnectionError $e)
{
// Network problem, perhaps try again.
} catch(Stripe_InvalidRequestError $e)
{
// You screwed up in your programming. Shouldn't happen!
} catch(Stripe_ApiError $e)
{
// Stripe's servers are down!
} catch(Stripe_CardError $e)
{
// Something else that's not the customer's fault.
}

} // A user form submission error occurred, handled below.

} // Form submission.?>

<h1>
IntelyCare
</h1>

<form action="buy.php" method="POST" id="payment-form">

<?php // Show PHP errors, if they exist:
if(isset($errors) && !empty($errors) && is_array($errors))
{
echo '<div class="alert alert-error"><h4>Error!</h4>The following error(s) occurred:<ul>';
foreach($errors as $e)
{
echo "<li>$e</li>";
}
echo '</ul></div>';
}?>

<div id="payment-errors">
</div>

<span class="help-block">
Form of Payment accepted: Mastercard, Visa, American Express, JCB, Discover, and Diners Club.
</span>
<br />
<input type="text" name="clientid" value="<?php if(isset($_GET['rid'])) {echo $_GET['rid']; } ?>"   >
<br />
<label> Card Number </label>
<input type="text" size="20" autocomplete="off" class="card-number input-medium">
<span class="help-block">   Enter the number without spaces or hyphens.     </span>
<label> CVC     </label>
<input type="text" size="4" autocomplete="off" class="card-cvc input-mini">
<label> Expiration (MM/YYYY)    </label>
<input type="text" size="2" class="card-expiry-month input-mini">
<span>  /   </span>
<input type="text" size="4" class="card-expiry-year input-mini">
<button type="submit" class="btn" id="submitBtn">
Submit Payment
</button>

</form>

<script src="../stripe/buy.js">
</script>

</body>
</html>

-1

Решение

Я обратился к Stripe, и они дали мне пару рекомендаций, вот решение проблемы, надеюсь, это принесет пользу кому-то еще. Я могу передать переменную сумму за полосовой платеж. Ниже приведен мой файл charge.php, я пока не обрабатываю ошибки, но добавлю его позже.

<?php
require_once(dirname(__FILE__) . '/config.php');
require_once("../auth/config.class.php");
require_once("../auth/auth.class.php");

$config = new Config;

$dbh = new PDO("mysql:host={$config->dbhost};dbname={$config->dbname}", $config->dbuser,     $config->dbpass);
$auth = new Auth($dbh, $config);

$id= $_GET['rid'];

$query = $dbh->prepare("SELECT hours, cid FROM svcrequest WHERE id=? ");
$query->execute(array($id));
$rslt = $query->fetch(PDO::FETCH_ASSOC);
$cost    = ($rslt['hours'] * 23)*100;
echo $cost;
$cid = $rslt['cid'];

$query  = $dbh->prepare("SELECT email, fname, lname FROM client JOIN users ON client.uid = users.id WHERE uid =(SELECT uid FROM client WHERE id=?)");
$query->execute(array($cid));
$user =$query->fetch(PDO::FETCH_ASSOC);
$email = ($user['email']);
echo $email;$token = $_POST['stripeToken'];
$customer = Stripe_Customer::create(array(
'email' => $email,
'card' => $token
));

$charge = Stripe_Charge::create(array(
'customer' => $customer->id,
'amount' => $cost,
'currency' => 'usd'
));

echo '<h3>Charge today:</h3>' . $cost;
?>
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]