Provided backends ================= 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', {})} Authorize.Net ------------- .. class:: payments.authorizenet.AuthorizeNetProvider(login_id, transaction_key[, endpoint='https://test.authorize.net/gateway/transact.dll']) This backend implements payments using the Advanced Integration Method (AIM) from `Authorize.Net `_. :param login_id: Your API Login ID assigned by Authorize.net :param transaction_key: Your unique Transaction Key assigned by Authorize.net :param endpoint: The API endpoint to use. For the production environment, use ``'https://secure.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'})} This backend does not support fraud detection. Braintree --------- .. class:: payments.braintree.BraintreeProvider(merchant_id, public_key, private_key[, sandbox=True]) This backend implements payments using `Braintree `_. :param merchant_id: Merchant ID assigned by Braintree :param public_key: Public key assigned by Braintree :param private_key: Private key assigned by Braintree :param sandbox: Whether to use a sandbox environment for testing Example:: # use sandbox PAYMENT_VARIANTS = { 'braintree': ('payments.braintree.BraintreeProvider', { 'merchant_id': '112233445566', 'public_key': '1234567890abcdef', 'private_key': 'abcdef123456', 'sandbox': True})} This backend does not support fraud detection. Coinbase -------- .. class:: payments.coinbase.CoinbaseProvider(key, secret[, endpoint='sandbox.coinbase.com']) This backend implements payments using `Coinbase `_. :param key: Api key generated by Coinbase :param secret: Api secret generated by Coinbase :param endpoint: Coinbase endpoint domain to use. For the production environment, use ``'coinbase.com'`` instead Example:: # use sandbox PAYMENT_VARIANTS = { 'coinbase': ('payments.coinbase.CoinbaseProvider', { 'key': '123abcd', 'secret': 'abcd1234', 'endpoint': 'sandbox.coinbase.com'})} This backend does not support fraud detection. Cybersource ----------- .. class:: payments.cybersource.CyberSourceProvider(merchant_id, password[, org_id=None, fingerprint_url='https://h.online-metrix.net/fp/', sandbox=True, capture=True]) This backend implements payments using `Cybersource `_. :param merchant_id: Your Merchant ID :param password: Generated transaction security key for the SOAP toolkit :param org_id: Provide this parameter to enable Cybersource Device Fingerprinting :param fingerprint_url: Address of the fingerprint server :param sandbox: Whether to use a sandbox environment for testing :param capture: Whether to capture the payment automatically. See :ref:`capture-payments` for more details. Example:: # use sandbox PAYMENT_VARIANTS = { 'cybersource': ('payments.cybersource.CyberSourceProvider', { 'merchant_id': 'example', 'password': '1234567890abcdef', 'capture': False, 'sandbox': True})} This backend supports fraud detection. Merchant-Defined Data """"""""""""""""""""" Cybersource allows you to pass Merchant-Defined Data, which is additional information about the payment or the order, such as an order number, additional customer information, or a special comment or request from the customer. This can be accomplished by passing your data to the :class:`Payment` instance:: >>> payment.attrs.merchant_defined_data = {'01': 'foo', '02': 'bar'} Dotpay ------ .. class:: payments.dotpay.DotpayProvider(seller_id, pin[, channel=0, lock=False, lang='pl', endpoint='https://ssl.dotpay.pl/test_payment/']) This backend implements payments using a popular Polish gateway, `Dotpay.pl `_. Due to API limitations there is no support for transferring purchased items. :param seller_id: Seller ID assigned by Dotpay :param pin: PIN assigned by Dotpay :param channel: Default payment channel (consult reference guide) :param lang: UI language :param lock: Whether to disable channels other than the default selected above :param endpoint: The API endpoint to use. For the production environment, use ``'https://ssl.dotpay.pl/'`` instead Example:: # use defaults for channel and lang but lock available channels PAYMENT_VARIANTS = { 'dotpay': ('payments.dotpay.DotpayProvider', { 'seller_id': '123', 'pin': '0000', 'lock': True, 'endpoint': 'https://ssl.dotpay.pl/test_payment/'})} This backend does not support fraud detection. Google Wallet ------------- .. class:: payments.wallet.GoogleWalletProvider(seller_id, seller_secret[, library='https://sandbox.google.com/checkout/inapp/lib/buy.js']) This backend implements payments using `Google Wallet `_ for digital goods API. :param seller_id: Seller ID assigned by Google Wallet :param seller_secret: Seller secret assigned by Google Wallet :param library: The API library to use. For the production environment, use ``'https://wallet.google.com/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: .. code-block:: html
{{ form.as_p }}

{{ 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`` This backend does not support fraud detection. PayPal ------ .. class:: payments.paypal.PaypalProvider(client_id, secret[, endpoint='https://api.sandbox.paypal.com', capture=True]) This backend implements payments using `PayPal.com `_. :param client_id: Client ID assigned by PayPal or your email address :param secret: Secret assigned by PayPal :param endpoint: The API endpoint to use. For the production environment, use ``'https://api.paypal.com'`` instead :param capture: Whether to capture the payment automatically. See :ref:`capture-payments` for more details. Example:: # use sandbox PAYMENT_VARIANTS = { 'paypal': ('payments.paypal.PaypalProvider', { 'client_id': 'user@example.com', 'secret': 'iseedeadpeople', 'endpoint': 'https://api.sandbox.paypal.com', 'capture': False})} .. class:: payments.paypal.PaypalCardProvider(client_id, secret[, endpoint='https://api.sandbox.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 :class:`payments.paypal.PaypalProvider`. Example:: PAYMENT_VARIANTS = { 'paypal': ('payments.paypal.PaypalCardProvider', { 'client_id': 'user@example.com', 'secret': 'iseedeadpeople'})} This backend does not support fraud detection. Sage Pay -------- .. class:: payments.sagepay.SagepayProvider(vendor, encryption_key[, endpoint='https://test.sagepay.com/Simulator/VSPFormGateway.asp']) This backend implements payments using `SagePay.com `_ Form API. Purchased items are not currently transferred. :param vendor: Your vendor code :param encryption_key: Encryption key assigned by Sage Pay :param endpoint: The API endpoint to use. For the production environment, use ``'https://live.sagepay.com/gateway/service/vspform-register.vsp'`` instead Example:: # use simulator PAYMENT_VARIANTS = { 'sage': ('payments.sagepay.SagepayProvider', { 'vendor': 'example', 'encryption_key': '1234567890abcdef', 'endpoint': 'https://test.sagepay.com/Simulator/VSPFormGateway.asp'})} This backend does not support fraud detection. Sofort.com ---------- .. class:: payments.sofort.SofortProvider(key, id, project_id[, endpoint='https://api.sofort.com/api/xml']) This backend implements payments using `sofort.com ` API. :param id: Your sofort.com user id :param key: Your secret key :param project_id: Your sofort.com project id :param endpoint: The API endpoint to use. Example:: PAYMENT_VARIANTS = { 'sage': ('payments.sofort.SofortProvider', { 'id': '123456', 'key': '1234567890abcdef', 'project_id': '654321', 'endpoint': 'https://api.sofort.com/api/xml'})} This backend does not support fraud detection. Stripe ------ .. class:: payments.stripe.StripeProvider(secret_key, public_key) This backend implements payments using `Stripe `_. :param secret_key: Secret key assigned by Stripe. :param public_key: Public key assigned by Stripe. :param name: A friendly name for your store. :param image: Your logo. Example:: # use sandbox PAYMENT_VARIANTS = { 'stripe': ('payments.stripe.StripeProvider', { 'secret_key': 'sk_test_123456', 'public_key': 'pk_test_123456'})} This backend does not support fraud detection. Taler ----- .. class:: payments.taler.TalerProvider(self, backend_url, address, name, jurisdiction, instance=None) This backend implements payments using `Taler `_. :param backend_url: Backend's base URL. :param instance: Merchant instance. :param address: Merchant physical address. :param name: Merchant/shop name. :param jurisdiction: Jurisdiction where the merchant operates. Example:: PAYMENT_VARIANTS = { 'taler': ('payments.taler.TalerProvider', {'backend_url': 'http://backend.test.taler.net/', 'address': 'US', 'jurisdiction': 'US', 'name': 'Taler tester shop'}) } .. This backend does not report fraud to Saleor, as fraud in the classical sense is not possible with Taler. Naturally, protocol failures are detected and reported (to the wallet).