Php and Javascript logic for taking payment using stripe api

To get started, ensure you have your Stripe account set up and obtain your Stripe publishable key and secret key. Replace 'YOUR_STRIPE_PUBLISHABLE_KEY' in the index.html file and 'YOUR_STRIPE_SECRET_KEY' in the process_payment.php file with your respective keys.

In the provided HTML form, users can enter their payment details, including the card number, expiry date, CVC, and the payment amount. When the form is submitted, JavaScript handles the form submission event, creates a token using the Stripe API, and sends it, along with the payment amount, to the server-side PHP script.

On the server side, the PHP script process_payment.php uses the Stripe PHP library to process the payment. It validates the token and amount, creates a charge using the Stripe API, and returns a response to the client-side JavaScript code.

The JavaScript code then displays appropriate success or error messages based on the response received from the server.

Remember to replace 'YOUR_SERVER_ENDPOINT' in script.js with the actual URL of your server endpoint where the process_payment.php file is located.

Please ensure that you have the Stripe PHP library installed by running composer install in your project directory, as specified in the provided composer.json file.

With this integration, you can securely process payments and provide a seamless payment experience for your customers.

Here’s an example of how you can implement payment processing using the Stripe API using both PHP and JavaScript:


<!DOCTYPE html>
  <script src=""></script>
  <form id="paymentForm">
    <div class="form-group">
      <label for="cardNumber">Card Number:</label>
      <input type="text" id="cardNumber" placeholder="Card Number">
    <div class="form-group">
      <label for="expiryDate">Expiry Date:</label>
      <input type="text" id="expiryDate" placeholder="MM/YY">
    <div class="form-group">
      <label for="cvc">CVC:</label>
      <input type="text" id="cvc" placeholder="CVC">
    <div class="form-group">
      <label for="amount">Amount:</label>
      <input type="text" id="amount" placeholder="Amount">
    <button type="submit">Pay</button>

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


// Set your Stripe publishable key
const stripe = Stripe('YOUR_STRIPE_PUBLISHABLE_KEY');

// Handle form submission
const form = document.getElementById('paymentForm');
form.addEventListener('submit', function(event) {

  // Disable the submit button to prevent multiple submissions
  form.querySelector('button').disabled = true;

  // Create a token when the form is submitted
  stripe.createToken('card', {
    number: document.getElementById('cardNumber').value,
    exp_month: document.getElementById('expiryDate').value.split('/')[0].trim(),
    exp_year: document.getElementById('expiryDate').value.split('/')[1].trim(),
    cvc: document.getElementById('cvc').value
  }).then(function(result) {
    if (result.error) {
      // Inform the user if there was an error
    } else {
      // Send the token to your server for processing
      const token = result.token;

// Function to display error messages
function displayError(message) {
  const errorElement = document.getElementById('error');
  errorElement.textContent = message;

// Function to process the payment on the server-side
function processPayment(token) {
  const amount = document.getElementById('amount').value;

  // Send the token and amount to your server using AJAX or fetch
  // Replace 'YOUR_SERVER_ENDPOINT' with your actual server endpoint URL
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    body: JSON.stringify({
      amount: amount
  .then(function(response) {
    return response.json();
  .then(function(data) {
    if (data.success) {
      // Payment successful, display success message
    } else {
      // Payment failed, display error message
  .catch(function(error) {
    // Handle errors
    displayError('An error occurred. Please try again.');

// Function to display success messages
function displaySuccess(message) {
  const successElement = document.getElementById('success');
  successElement.textContent = message;


require 'vendor/autoload.phpTo use the Stripe API for payment processing, you'll need to have the Stripe PHP library installed. Make sure you have Composer installed, and create a `composer.json` file in your project directory with the following content:

  "require": {
    "stripe/stripe-php": "^7.0"

Then run composer install to install the Stripe PHP library and its dependencies.

Here’s an example of the server-side PHP logic for processing the payment using the Stripe API:


require 'vendor/autoload.php';


$token = $_POST['token'];
$amount = $_POST['amount'];

try {
  $charge = \Stripe\Charge::create([
    'amount' => $amount,
    'currency' => 'usd',
    'source' => $token,
    'description' => 'Payment'

  // Payment successful, send response to the client
  $response = [
    'success' => true,
    'message' => 'Payment successful'
  echo json_encode($response);
} catch (\Stripe\Exception\CardException $e) {
  // Payment failed, send error response to the client
  $response = [
    'success' => false,
    'message' => $e->getMessage()
  echo json_encode($response);
} catch (Exception $e) {
  // Other error occurred, send error response to the client
  $response = [
    'success' => false,
    'message' => 'An error occurred. Please try again.'
  echo json_encode($response);

Replace 'YOUR_STRIPE_PUBLISHABLE_KEY' in index.html with your actual Stripe publishable key, and 'YOUR_STRIPE_SECRET_KEY' in process_payment.php with your actual Stripe secret key.

Make sure to replace 'YOUR_SERVER_ENDPOINT' in script.js with the actual URL of your server endpoint where you’ll handle the payment processing.

With this setup, when the user submits the payment form, the JavaScript code will handle the token creation using the Stripe API. It will then send the token and the payment amount to the server-side PHP script process_payment.php using AJAX or fetch. The server-side script will use the Stripe PHP library to process the payment and return a response to the client-side JavaScript code.

Note: Make sure to properly secure your server-side code and follow Stripe’s guidelines for handling payments securely.