wagtail-longclaw/docs/guide/payments.md

2.7 KiB

title sidebar_label
Payment Backends Integrations

Payment Backends

Longclaw supports payment capture through Stripe, Braintree and Paypal (Using the Braintree VZero SDK).

To select the payment gateway to use, you must specify the PAYMENT_GATEWAY attribute in your settings.py.

The options are:

  • longclaw.checkout.gateways.base.BasePayment. A do-nothing base implementation
  • longclaw.checkout.gateways.stripe.StripePayment. Capture payments using Stripe.
  • longclaw.checkout.gateways.braintree.BraintreePayment. Capture payments using Braintree.
  • longclaw.checkout.gateways.braintree.PaypalVZeroPayment. Capture Paypal payments using the braintree v.zero SDK.

Additional Settings and dependencies

To use payment gateways it is necessary to specify API keys and install client SDK's for the chosen payment provider.

:Stripe: STRIPE_PUBLISHABLE - Your public api key STRIPE_SECRET - Your secret api key You will need to install the stripe python sdk (pip install stripe)

:Braintree: BRAINTREE_MERCHANT_ID - Your braintree merchant account ID. BRAINTREE_PUBLIC_KEY - Your public api key BRAINTREE_PRIVATE_KEY - Your secret api key

:Paypal: VZERO_ACCESS_TOKEN - Your access token for the v.zero SDK.

Paypal and braintree require the braintree python SDK (pip install braintree)

.. _custom-integrations:

Custom Integrations

To implement your own payment integration, you must implement the payment gateway interface. This is simple:

  • Inherit from longclaw.checkout.gateways.base.BasePayment
  • Implement create_payment. This should take a request object, an amount and optionally a description. It should use these to capture the payment using your chosen provider. For examples see the implementations in longclaw.checkout.gateways
  • Implement the get_token method. This method should generate tokens used by the payment provider. It accepts a request object containing post data (request.data). Tokens returned may represent different things depending on the payment provider - e.g. it may be used to tokenize payment details or generate authentication tokens.

You can define your own requirements for the request data to be submitted to the functions. create_payment is called in a POST request to the checkout/ api. get_token is similarly called in a POST request to the checkout/token/ api.

Longclaw aims to be as minimal as possible in order to get the job done. This is why longclaw currently only offers the barest minimum support necessary to directly create payments with the backend payment provider.