3. Provided backends

3.1. Dummy

class payments.dummy.DummyProvider

This is a dummy backend suitable for testing your store without contacting any payment gateways. Instead of using an external service it will simply show you a form that allows you to confirm or reject the payment.

Example:

PAYMENT_VARIANTS = {
    'dummy': ('payments.dummy.DummyProvider', {})}

3.2. Authorize.Net

class payments.authorizenet.AuthorizeNetProvider(login_id, transaction_key[, endpoint='https://secure.authorize.net/gateway/transact.dll'])

This backend implements payments using the Advanced Integration Method (AIM) from Authorize.Net.

Parameters:
  • login_id – Your API Login ID assigned by Authorize.net
  • transaction_key – Your unique Transaction Key assigned by Authorize.net
  • endpoint – The API endpoint to use. To test using staging environment, use 'https://test.authorize.net/gateway/transact.dll' instead

Example:

# use staging environment
PAYMENT_VARIANTS = {
    'authorizenet': ('payments.authorizenet.AuthorizeNetProvider', {
        'login_id': '1234login',
        'transaction_key': '1234567890abcdef',
        'endpoint': 'https://test.authorize.net/gateway/transact.dll'})}

3.3. Braintree (Python 2 only)

class payments.braintree.BraintreeProvider(merchant_id, public_key, private_key)

This backend implements payments using Braintree.

Parameters:
  • merchant_id – Merchant ID assigned by Braintree
  • public_key – Public key assigned by Braintree
  • private_key – Private key assigned by Braintree

Example:

# use sandbox
PAYMENT_VARIANTS = {
    'braintree': ('payments.braintree.BraintreeProvider', {
        'merchant_id': '112233445566',
        'public_key': '1234567890abcdef',
        'private_key': 'abcdef123456'})}

3.4. Dotpay

class payments.dotpay.DotpayProvider(seller_id, pin[, channel=0[, lock=False], lang='pl'])

This backend implements payments using a popular Polish gateway, Dotpay.pl.

Due to API limitations there is no support for transferring purchased items.

Parameters:
  • seller_id – Seller ID assigned by Dotpay
  • pin – PIN assigned by Dotpay
  • channel – Default payment channel (consult reference guide)
  • lang – UI language
  • lock – Whether to disable channels other than the default selected above

Example:

# use defaults for channel and lang but lock available channels
PAYMENT_VARIANTS = {
    'dotpay': ('payments.dotpay.DotpayProvider', {
        'seller_id': '123',
        'pin': '0000',
        'lock': True})}

3.5. Google Wallet

class payments.wallet.GoogleWalletProvider(seller_id, seller_secret[, library='https://wallet.google.com/inapp/lib/buy.js'])

This backend implements payments using Google Wallet for digital goods API.

Parameters:
  • seller_id – Seller ID assigned by Google Wallet
  • seller_secret – Seller secret assigned by Google Wallet
  • library – The API library to use. To test using sandbox, use 'https://sandbox.google.com/checkout/inapp/lib/buy.js' instead

Example:

# use sandbox
PAYMENT_VARIANTS = {
    'wallet': ('payments.wallet.GoogleWalletProvider', {
        'seller_id': '112233445566',
        'seller_secret': '1234567890abcdef',
        'library': 'https://sandbox.google.com/checkout/inapp/lib/buy.js'})}

This backend requires js files that should be added to the template using {{ form.media }} e.g:

<!-- templates/payment.html -->
<form action="{{ form.action }}" method="{{ form.method }}">
    {{ form.as_p }}
    <p><input type="submit" value="Proceed" /></p>
</form>
{{ form.media }}

To specify the postback URL at the Merchant Settings page use direct url to process payment view in conjunction with your variant name:

E.g: https://example.com/payments/process/wallet

3.6. PayPal

class payments.paypal.PaypalProvider(client_id, secret[, endpoint='https://api.paypal.com'])

This backend implements payments using PayPal.com.

Parameters:
  • client_id – Client ID assigned by PayPal or your email address
  • secret – Secret assigned by PayPal
  • endpoint – The API endpoint to use. To test using sandbox, use 'https://api.sandbox.paypal.com' instead

Example:

# use sandbox
PAYMENT_VARIANTS = {
    'paypal': ('payments.paypal.PaypalProvider', {
        'client_id': 'user@example.com',
        'secret': 'iseedeadpeople',
        'endpoint': 'https://api.sandbox.paypal.com'})}
class payments.paypal.PaypalCardProvider(client_id, secret[, endpoint='https://api.paypal.com'])

This backend implements payments using PayPal.com but the credit card data is collected by your site.

Parameters are identical to those of payments.paypal.PaypalProvider.

Example:

PAYMENT_VARIANTS = {
    'paypal': ('payments.paypal.PaypalCardProvider', {
        'client_id': 'user@example.com',
        'secret': 'iseedeadpeople'})}

3.7. Sage Pay

class payments.sagepay.SagepayProvider(vendor, encryption_key[, endpoint='https://live.sagepay.com/gateway/service/vspform-register.vsp'])

This backend implements payments using SagePay.com Form API.

Purchased items are not currently transferred.

Parameters:
  • vendor – Your vendor code
  • encryption_key – Encryption key assigned by Sage Pay
  • endpoint – The API endpoint to use. To test using simulator, use 'https://test.sagepay.com/Simulator/VSPFormGateway.asp' instead

Example:

# use simulator
PAYMENT_VARIANTS = {
    'sage': ('payments.sagepay.SagepayProvider', {
        'vendor': 'example',
        'encryption_key': '1234567890abcdef',
        'endpoint': 'https://test.sagepay.com/Simulator/VSPFormGateway.asp'})}

3.8. Stripe

class payments.stripe.StripeProvider(secret_key, public_key)

This backend implements payments using Stripe.

Parameters:
  • secret_key – Secret key assigned by Stripe.
  • public_key – Public key assigned by Stripe.

Example:

# use sandbox
PAYMENT_VARIANTS = {
    'stripe': ('payments.stripe.StripeProvider', {
        'secret_key': 'sk_test_123456',
        'public_key': 'pk_test_123456'})}

This backend requires js files that should be added to the template using {{ form.media }} e.g:

<!-- templates/payment.html -->
<form action="{{ form.action }}" method="{{ form.method }}">
    {{ form.as_p }}
    <p><input type="submit" value="Proceed" /></p>
</form>
{{ form.media }}