Send custom data via stripe.js

425 Views Asked by At

Path Custom data to stripe.js

I have three subscription courses, so I made three button as such.

index.html.twig

<form action="{{ path('acme_payment_charge') }}" method="POST">
<input type="hidden" name="plan" value="basic"><!-- I wish it works.-->
<script
  src="https://checkout.stripe.com/checkout.js" class="stripe-button"
  data-key="pk_test_FpfPjy1etetetetetete" 
  data-amount="2980" 
  data-name="basic"
  data-description="TESTTEST"
  data-image="https://stripe.com/img/documentation/checkout/marketplace.png"
  data-locale="ja"
  data-currency="jpy">
</script>

<form action="{{ path('acme_payment_charge') }}" method="POST">
<script
  src="https://checkout.stripe.com/checkout.js" class="stripe-button"
  data-key="pk_test_FpfPjy1etetetetetete" 
  data-amount="2980" 
  data-name="standard"
  data-description="TESTTEST"
  data-image="https://stripe.com/img/documentation/checkout/marketplace.png"
  data-locale="ja"
  data-currency="jpy">
</script>

<form action="{{ path('acme_payment_charge') }}" method="POST">
<script
  src="https://checkout.stripe.com/checkout.js" class="stripe-button"
  data-key="pk_test_FpfPjy1eRtetetetetete"
  data-amount="2980"
  data-name="professional"
  data-description="TESTTEST"
  data-image="https://stripe.com/img/documentation/checkout/marketplace.png"
  data-locale="ja">
  data-currency="jpy">
</script>

I catch the Request here in php, but I would like to know which button is selected.

Is it possible to send custom data via stripe.js??

(Or if I could get data-name which passed from index.html.twig to script.js in php.)

DefaultController.php

  public function chargeAction(Request $request){
        var_dump($request) // there is not either 'basic','standard' nor 'professional'. 
                           //only 'stripeToken','stripeTokenType','stripeEmail' are returned.


        \Stripe\Stripe::setApiKey("sk_test_Xltetetetetete");
        $token = $request->request->get('stripeToken');

        $customer = \Stripe\Customer::create(array(
                "email" => $request->request->get('stripeEmail'),
                "source" => $request->request->get('stripeToken'),
                "plan" => "professional" // I want to change here dynamically.
        ));
0

There are 0 best solutions below