Welcome!

By registering with us, you'll be able to discuss, share and private message with other members of our community.

SignUp Now!
  • Guest, before posting your code please take these rules into consideration:
    • It is required to use our BBCode feature to display your code. While within the editor click < / > or >_ and place your code within the BB Code prompt. This helps others with finding a solution by making it easier to read and easier to copy.
    • You can also use markdown to share your code. When using markdown your code will be automatically converted to BBCode. For help with markdown check out the markdown guide.
    • Don't share a wall of code. All we want is the problem area, the code related to your issue.


    To learn more about how to use our BBCode feature, please click here.

    Thank you, Code Forum.

PHP Received unknown parameter: name error in stripe php

Alien10

Coder
I am getting this error with stripe in PHP:

Fatal error: Uncaught (Status 400) (Request req_FcC4lDxNQOV5mV) Received unknown parameter: name thrown in C:\xampp\htdocs\subscription-use-cases\medium\vendor\stripe\stripe-php\lib\Exception\ApiErrorException.php on line 38

Here is my HTML code:

HTML:
<!DOCTYPE html>
<html>
    <head>
        <!-- The Styling File -->
        <link rel="stylesheet" href="style.css"/>
    </head>
    <body>
    <form action="./charge.php" method="post" id="payment-form">
        <div class="form-row">
            <label for="card-element">Credit or debit card</label>
            <div id="card-element">
            <!-- a Stripe Element will be inserted here. -->
            </div>
            <!-- Used to display form errors -->
            <div id="card-errors"></div>
        </div>
        <button>Submit Payment</button>
    </form>
    <!-- The needed JS files -->
    <!-- JQUERY File -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    <!-- Stripe JS -->
    <script src="https://js.stripe.com/v3/"></script>
    <!-- Your JS File -->
    <script src="charge.js"></script>
    </body>
</html>

javascript:

JavaScript:
// Stripe API Key
var stripe = Stripe('pk_test_key');
var elements = stripe.elements();
// Custom Styling
var style = {
    base: {
        color: '#32325d',
        lineHeight: '24px',
        fontFamily: '"Helvetica Neue", Helvetica, sans-serif',
        fontSmoothing: 'antialiased',
        fontSize: '16px',
        '::placeholder': {
            color: '#aab7c4'
        }
    },
    invalid: {
        color: '#fa755a',
        iconColor: '#fa755a'
    }
};
// Create an instance of the card Element
var card = elements.create('card', {style: style});
// Add an instance of the card Element into the `card-element` <div>
card.mount('#card-element');
// Handle real-time validation errors from the card Element.
card.addEventListener('change', function(event) {
    var displayError = document.getElementById('card-errors');
if (event.error) {
        displayError.textContent = event.error.message;
    } else {
        displayError.textContent = '';
    }
});
// Handle form submission
var form = document.getElementById('payment-form');
form.addEventListener('submit', function(event) {
    event.preventDefault();
stripe.createToken(card).then(function(result) {
        if (result.error) {
            // Inform the user if there was an error
            var errorElement = document.getElementById('card-errors');
            errorElement.textContent = result.error.message;
        } else {
            stripeTokenHandler(result.token);
        }
    });
});
// Send Stripe Token to Server
function stripeTokenHandler(token) {
    // Insert the token ID into the form so it gets submitted to the server
    var form = document.getElementById('payment-form');
// Add Stripe Token to hidden input
    var hiddenInput = document.createElement('input');
    hiddenInput.setAttribute('type', 'hidden');
    hiddenInput.setAttribute('name', 'stripeToken');
    hiddenInput.setAttribute('value', token.id);
    form.appendChild(hiddenInput);
// Submit form
    form.submit();
}

and PHP:

PHP:
<?php
    require_once('vendor/autoload.php');
    \Stripe\Stripe::setVerifySslCerts(false);
    \Stripe\Stripe::setApiKey('sk_test_key');
    // Get the token from the JS script
    $token = $_POST['stripeToken'];
    // Create a Customer
    $customer = \Stripe\Customer::create(array(
        "email" => "[email protected]",
        "source" => $token,
    ));
    // Creates a subscription plan. This can also be done through the Stripe dashboard.
    // You only need to create the plan once.
    $subscription = \Stripe\Plan::create(array(
        "amount" => 2000,
        "interval" => "month",
        "name" => "Gold large",
        "currency" => "aud",
        "id" => "gold"
    ));
    // Subscribe the customer to the plan
    $subscription = \Stripe\Subscription::create(array(
        "customer" => $customer->id,
        "plan" => "gold"
    ));
    print_r($subscription);
    print_r($customer);

What is the unknown parameter? How do I fix this?
 
Check out the stripe docs: https://stripe.com/docs/api/plans/create

I can see that "name" is not on the list of valid parameters for the request, which might be the reason you're getting this error. I can however, see that `product.name` is a required field - perhaps you can use this instead? (I'm not 100% on best practice here as I don't normally create the subscription programmatically, instead I tend to create in the stripe dashboard and use the price id in my application)
 
Check out the stripe docs: https://stripe.com/docs/api/plans/create

I can see that "name" is not on the list of valid parameters for the request, which might be the reason you're getting this error. I can however, see that `product.name` is a required field - perhaps you can use this instead? (I'm not 100% on best practice here as I don't normally create the subscription programmatically, instead I tend to create in the stripe dashboard and use the price id in my application)
Thank you. It is better to do it from the dashboard. I did find other errors but fixed them.
 

New Threads

Latest posts

Buy us a coffee!

Back
Top Bottom