wemakecustom / stripe-bundle
Symfony 2 StripeBundle, a wrapper for Stripe Api
Installs: 32 588
Dependents: 0
Suggesters: 0
Security: 0
Stars: 7
Watchers: 7
Forks: 8
Open Issues: 1
Type:symfony-bundle
Requires
- php: >=5.4
- stripe/stripe-php: ^2.0
- symfony/framework-bundle: ^2.3
This package is not auto-updated.
Last update: 2024-10-26 16:23:12 UTC
README
Provides a simple Symfony 2 Bundle to Wrap the Stripe PHP SDK - https://github.com/stripe/stripe-php
Installation
composer.json
{ "require": { "wemakecustom/stripe-bundle": "dev-master" } }
app/AppKernel.php
public function registerBundles() { $bundles = array( // ... new WMC\StripeBundle\WMCStripeBundle(), ); }
Configuration
Edit your symfony config.yml file and add, at a minimum, the following lines:
wmc_stripe:
api_secret_key: stripe_secret_key
api_publishable_key: stripe_publishable_key
Utilisation
Authentification
In Stripe you have two form of authentication. The one by your server and the one by your client.
To authenticate your server with the stripe secret key
$this->container->get('wmc_stripe.stripe')->auth(); // Instead of : Stripe::setApiKey("sk_somekey");
To authenticate your client with the stripe publishable key
Include all js at once in twig
{% include "WMCStripeBundle::stripe.js.html.twig" %}
If you want to do it manually you have a twig extension to get the stripe_publishable_key
<script type="text/javascript">Stripe.setPublishableKey('{{stripe_publishable_key}}');</script>
Example
If you want to do a basic card submission https://stripe.com/docs/tutorials/forms https://stripe.com/docs/tutorials/charges#saving-credit-card-details-for-later
Basic saving of clients (card details), controller and a view :
public function newPaymentMethodAction(Request $request) { $this->container->get('wmc_stripe.stripe')->auth(); $form = $this->createForm(new CardFormType()); $formHandler = new CardFormHandler($form, $request, $stripeClientDescription); if($formHandler->process()){ //Persist flush the customerId somewhere $stripeCustomerId = $formHandler->getCustomer()->id; } return array('form' => $form->createView()); }
{% extends "::base.html.twig" %} {% block content %} {{ form_start(form) }} {{ form_errors(form) }} {{ form_widget(form) }} <button type="submit">Submit</button> {{ form_end(form) }} {% endblock %} {% block foot_script %} {{ parent() }} {% include "WMCStripeBundle::stripe.js.html.twig" %} {% endblock %}
Charge a client
\Stripe\Charge::create(array( "amount" => round($price * 100), "currency" => "usd", "customer" => $customerId) );
##TODO:
- Declare Form type and Handler as services