PayPal integration for django-oscar. Can be used without Oscar too.

Overview

PayPal package for django-oscar

This package provides integration between django-oscar and both PayPal REST API, PayPal Express (NVP) and PayPal Payflow Pro.

These payment options can be used individually or together. Further, the package is structured so that it can be used without Oscar if you so wish.

License

The package is released under the New BSD license.

Support

Having problems or got a question?

  • Have a look at the sandbox site as this is a sample Oscar project integrated with both PayPal options. See the contributing guide within the docs for instructions on how to set up the sandbox locally.
  • Ping @django_oscar with quick queries.
  • Ask more detailed questions on the Oscar mailing list: [email protected]
  • Use Github for submitting issues and pull requests.

Tests

Coverage

Changelog

2.0.0 (released December 20th, 2019)

  • Add support for Oscar 2.0 and Django 2.2.
  • Drop support for Oscar 1.6 and lower and Django 2.0 and lower.
  • Drop support for Python 2.

1.0.0 (released May 30th, 2018)

  • Add support for Oscar 1.6 and Django 2.
  • Drop support for Oscar 1.4 and lower and Django 1.10 and lower.

0.9.7 (released January 12th, 2016)

  • Fix breakage when using Oscar's DeferredTaxMixin. #98 #121

0.9.6 (released November 13th, 2015)

  • Add support for Oscar 1.1 and Django 1.8.
  • Drop support for Django 1.6 and Oscar 0.7.
  • Store submitted shipping method instead of falling back to FixedPrice. #107
  • Display original Paypal error message instead of generic error message. #101
  • Bugfix: Hide form buttons as expected. #94
  • Bugfix: Correct signature for call to get_shipping_methods. #99
  • Bugfix: Don't fail in countries without postcode. #100

0.9.5

  • Fix issue with missing templates in PyPI package.

0.9.4

  • Use Bankcard.number instead of the deprecated Bankcard.card_number attribute.
  • Add support for Django 1.7 and Oscar 1.0.
  • Drop support for Oscar 0.6 and Django 1.5.

0.9.3

  • Use the correct key to look up a previous transaction ID (for refund/capture/void operations). #81

0.9.2

  • Include templates in package (they were missing from 0.9.1)
  • Dynamically load view classes in Express views module

0.9.1

  • Add support for Python 3.3 and 3.4
  • Add preliminary support for (unreleased) Oscar 0.8

0.9

  • Support Oscar 0.7 (note that this release only works with 0.7.1 onwards)
  • Drop support for Oscar 0.5
  • Fix bug around unicode handling
  • Allow scheme of callback URL to be specified in a setting

0.8.1

  • Ensure sandbox demo site works correctly with Oscar 0.6
  • Fix a bug with Payflow Pro using wrong bankcard attribute for expiry dates.
  • Remove Oscar version verification in setup.py
  • Use content-type text/namevalue when submitting key-value pairs to PayPal.

0.8

  • Support Oscar 0.6
  • Fix bug with offers not being applied to basket on return from PayPal site.

0.7

  • Remove Oscar from install_requires

0.6.1

  • Persist shipping method name when using PayPal Express as a payment method only.

0.6

  • Add support for NO_SHIPPING option with PayPal Express.

0.5

  • Addresses a security issue where baskets could be manipulated while the customer was on the PayPal site. This would cause the final order to contain more items that were paid for.

0.4.1

  • Fixes a bug where the second line of a user's address was not being used to create the order shipping address.

0.4

  • We now require Oscar >= 0.5
  • Full i18 support
  • New dashboard views for PayPal Express

0.3.3

  • Restrict to Oscar < 0.5

0.3.2

  • Pass shipping address name when using Express checkout
  • Docs update

0.3.1

  • Fix issue with currency formatting
  • Fix issue with i18n proxies being passed to PayPal

0.3

  • Order discounts are now passed correctly to PayPal as separate lines
  • Fix unicode issue when reading data back from PayPal
  • Use Tox for testsuite

0.2.5

  • Fix silly bug with reference transactions

0.2.4

  • Fix bug with installing templates

0.2.3

  • Fix bug with amount formats not being validated properly
  • Adjust txn model to allow virtually everything to be nullable

0.2.2

  • Add support for specifying transaction currency

0.2.1

  • Fix packaging issues
  • Remove dead templates
  • With API docs

0.2

Includes support for Payflow Pro.

0.1

Includes support for Express Checkout.

Comments
  • Express Checkout -  Buyer Pays on PayPal

    Express Checkout - Buyer Pays on PayPal

    PayPal gives the possibility to skip the confirm-order page on your website.

    My company had a request about this so I had a quick look but then the client was happy with the current implementation.

    I'll try to handle this when I have a bit of free time.

    In the meantime, if anyone needs this Express Checkout feature this is the place to start.

    documentation here

    Buyer Pays on PayPal With Express Checkout, you can shorten your checkout flow to let buyers complete their purchases on PayPal. Then, you can skip your order confirmation page.

    Generally, buyers select payment methods as the last step before they complete their purchases. If you collect no additional information after buyers return from PayPal, you can skip the confirm-order page on your website. If you collect additional information that does not affect the payment, PayPal recommends that you collect it after buyers complete their purchases.

    The useraction URL parameter in your redirect to PayPal determines whether buyers complete their purchases on PayPal or on your website. If you set useraction to commit, PayPal sets the button text to Pay Now on the PayPal Review your information page. This text lets buyers know that they complete their purchases if they click the button.

    After PayPal redirects buyers to your site, call GetExpressCheckoutDetails and DoExpressCheckoutPayment to have PayPal complete the payment successfully. Call DoExpressCheckoutPayment without waiting for buyer interaction. Use information in the GetExpressCheckoutDetails response to fill out your order confirmation page.

    opened by itbabu 14
  • Grab basket object from build_submission(), not from request

    Grab basket object from build_submission(), not from request

    When the RedirectView is used in combination with another CheckoutSessionMixin defined for a DeferredTax taxation strategy, then submission's basket object has critical tax information, whereas request.basket does not. Change RedirectView's basket reference to point to build_submission()['basket'].

    Fixes django-oscar/django-oscar-paypal#98, reported by Nigel Fletton.

    opened by fghaas 13
  • Any plan to upgrade to nvp to new api?

    Any plan to upgrade to nvp to new api?

    I'm really happy to use oscar-paypal, but I've just found that nvp api is deprecated.

    I just wonder that there is any plan to upgrade this nvp api to a new rest api, if not I may consider to upgrade.

    opened by jk7g14 7
  • :sunny: Remove from future html template tags for 1.9 compatibility.

    :sunny: Remove from future html template tags for 1.9 compatibility.

    With last django version we have to remove from future tags. In addition, with last django-oscar version we don't need use append function, and shop was removed from oscar.apps. So, in the documentation we change the paypal urls importing way for once more adequate.

    opened by SalahAdDin 6
  • 'PayPalError' object has no attribute 'message'

    'PayPalError' object has no attribute 'message'

    Exception Type: AttributeError Exception Value: 'PayPalError' object has no attribute 'message' Exception Location: paypal/express/views.py in get_redirect_url, line 68 66: except PayPalError as ppe: 67: messages.error( 68: self.request, ppe.message)

    Maybe it would be 68: self.request, str(ppe)) Or PayPalError would be added message attribute.

    opened by dragonjun 6
  • Can't install django-oscar-paypal without django-oscar coming too (and Django 1.4)

    Can't install django-oscar-paypal without django-oscar coming too (and Django 1.4)

    rachel$ pip install django-oscar-paypal Downloading/unpacking django-oscar-paypal Downloading django-oscar-paypal-0.6.1.tar.gz Running setup.py egg_info for package django-oscar-paypal

    Downloading/unpacking django-oscar>=0.5,<0.6 (from django-oscar-paypal) Downloading django-oscar-0.5.1.tar.gz (1.5MB): 1.5MB downloaded Running setup.py egg_info for package django-oscar

    opened by rwillmer 6
  • Templates try to load `url` from `future`, which causes error in Django 1.9

    Templates try to load `url` from `future`, which causes error in Django 1.9

    I'm using Django==1.9.10, so I'm getting such errors.

    TemplateSyntaxError at /checkout/paypal/preview/2/ 'url' is not a valid tag or filter in tag library 'future'

    All because of {% load url from future %} line e.g. here and here.

    Do you intend to remove those lines according to stackoverflow?

    Edit: I'm using django-oscar-paypal==0.9.7.

    opened by shnela 5
  • The Basket Offers are disappeared after Paypal payment (in preview step and in the Dashboard orders)

    The Basket Offers are disappeared after Paypal payment (in preview step and in the Dashboard orders)

    I'm using Django-Oscar VERSION = 0.6 pre-alpha Django-Oscar-Paypal branch #34 fo compatibility with Django-Oscar

    The problem is that, after i have done a payment with Paypal, i lose offers on my frozen basket? Anyone has resolved this issue? If it has been resolved in in the default branch could anyone tell me how to monkey patch in this Django-Oscar-Paypal version? @codeinthehole can you help me? I attach an image in which you can see at the top the cost with the discount and in the bottom the form with the price without discount. In the dashboad, then, i see the order of that basket without the offers, too. paypal_bug

    Here the difference in dashboard:orders and dashboard:paypal views paypal_bug2 paypal_bug3

    opened by madEng84 5
  • Add dashboard views for PayPal Express transactions

    Add dashboard views for PayPal Express transactions

    See how this is handled for PayFlow Pro. You just need very simple views that are registered for the dashboard.

    See me for sandbox creds for performing Express transactions within the sandbox.

    opened by codeinthehole 5
  • Update address field names to NVP API v63

    Update address field names to NVP API v63

    Updated paypal.express.gateway address fields according to: https://developer.paypal.com/docs/nvp-soap-api/set-express-checkout-nvp/#deprecated-fields

    opened by rodrigoegimenez 4
  • Adding user=self.request.user to resolve discount issue

    Adding user=self.request.user to resolve discount issue

    Fix to a voucher/coupon issue present on the preview details page, confirmation page and the entry in the dashboard.

    Up until the Paypal redirect everything is fine, but on return from Paypal the discount isn't coming through at all to these pages.

    Noted as an issue here: https://github.com/django-oscar/django-oscar-paypal/issues/144

    opened by mountdeluxe 4
  • Update django-oscar requirement from <3.2,>=2.0 to >=2.0,<3.3

    Update django-oscar requirement from <3.2,>=2.0 to >=2.0,<3.3

    Updates the requirements on django-oscar to permit the latest version.

    Release notes

    Sourced from django-oscar's releases.

    3.2

    Welcome to Oscar 3.2!

    Please read the release notes to find out what's new in Oscar 3.2.

    Commits
    • 151dc05 Release 3.2 final LTS
    • 40ca677 Update translations
    • fe1a823 Add 3.2 LTS to Readme
    • 41efb27 Merge pull request #4025 from django-oscar/320b1
    • 5cc1238 Prepare for 3.2.0b1 release
    • c4ebfa6 Deepcopy should not cause a recursion error on the ProductAttributesC… (#4018)
    • 44ce5c3 Release 3.2.0-beta
    • 68b773a Update translations
    • 993e8a6 Specify translation context, so the value can be easily changed in a … (#4012)
    • 3dee0ae show boolean option value to yes/no in stead of true/false (#4005)
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • No support for REST API

    No support for REST API

    The documentation states:

    and both PayPal REST API, PayPal Express (NVP) and PayPal Payflow Pro.

    But there is no real support for the REST API i.e. using PayPal's Javascript SDK. Also, the word "both" doesn't match the content (3 items, not 2).

    Could you clarify and/or rectify?

    opened by ivaniclixx 0
  • Update django requirement from <3.3,>=2.2 to >=2.2,<4.2

    Update django requirement from <3.3,>=2.2 to >=2.2,<4.2

    Updates the requirements on django to permit the latest version.

    Commits
    • c8eb9a7 [4.1.x] Bumped version for 4.0 release.
    • 6cd2f97 [4.1.x] Updated release notes for Django 4.1 release.
    • c721b56 [4.1.x] Added CVE-2022-36359 to security archive.
    • 4691666 [4.1.x] Fixed CVE-2022-36359 -- Escaped filename in Content-Disposition header.
    • 5359607 [4.1.x] Adjusted version 4.0.7 release notes.
    • a3bab93 [4.1.x] Updated translations from Transifex.
    • 064c810 [4.1.x] Doc'd TextField.db_collation as optional.
    • 8aab03a [4.1.x] Fixed #33876, Refs #32229 -- Made management forms render with div.ht...
    • bdff4d5 [4.1.x] Fixed collation tests on MySQL 8.0.30+.
    • 70bd1d4 [4.1.x] Ignored d3f5782a335823401aa51cae02dd5e789029143a formatting changes i...
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • docs: Fix a few typos

    docs: Fix a few typos

    There are small typos in:

    • docs/express.rst
    • docs/payflow.rst
    • paypal/express/facade.py
    • paypal/payflow/facade.py
    • sandbox/settings.py

    Fixes:

    • Should read transactions rather than transations.
    • Should read smorgasbord rather than smorgasboard.
    • Should read refunded rather than refuneded.
    • Should read module rather than modulde.
    • Should read bridging rather than briding.

    Semi-automated pull request generated by https://github.com/timgates42/meticulous/blob/master/docs/NOTE.md

    opened by timgates42 1
  • Support and documentation for Oscar 3.0

    Support and documentation for Oscar 3.0

    Now the Django Oscar 3.0.0 is out in stable I'm trying to implement PayPal payments. The tips given in #216 were helpful, yet I'd need some help. The payment method isn't recognized by Oscar in the checkout/payment options step, which suggests installing one of the 4 payment gateways (along with Adyen, Docdata and Accounts). I'm clearly missing something.

    OSCAR_MAIN_TEMPLATE_DIR setting has been removed in Oscar 2.0. My template oscar/basket/partials/basket_content.html should be loaded as it extends the Oscar's one ({% extends 'oscar/basket/partials/basket_content.html' %}), but it isn't.

    Also, Oscar 3.0 uses Font Awesome icons, so now the Dashboard menu entry will get its icon with 'icon': 'fas fa-globe',

    opened by krzysztofjeziorny 5
Owner
Oscar
Flexible e-commerce for Django
Oscar
Adyen package for django-oscar

Adyen package for django-oscar This package provides integration with the Adyen payment gateway. It is designed to work with the e-commerce framework

Oscar 13 Jan 10, 2022
payu payment gateway integration for django projects

Django-PayU This package provides integration between Django and PayU Payment Gateway. Quick start Install 'django-payu' using the following command:

MicroPyramid 37 Nov 9, 2022
Django + Stripe Made Easy

dj-stripe Stripe Models for Django. Introduction dj-stripe implements all of the Stripe models, for Django. Set up your webhook endpoint and start rec

dj-stripe 1.3k Dec 28, 2022
A Django app to accept payments from various payment processors via Pluggable backends.

Django-Merchant Django-Merchant is a django application that enables you to use multiple payment processors from a single API. Gateways Following gate

Agiliq 997 Dec 24, 2022
Django library to simplify payment processing with pin

Maintainer Wanted I no longer have any side projects that use django-pinpayments and I don't have the time or headspace to maintain an important proje

Ross Poulton 25 May 25, 2022
Forms, widgets, template tags and examples that make Stripe + Django easier.

Overview Zebra is a library that makes using Stripe with Django even easier. It's made of: zebra, the core library, with forms, webhook handlers, abst

GoodCloud 189 Jan 1, 2023
Track your favorite minecraft servers' (too bee too tee) queue at any time at your own convenience!

2b2t Queue Monitor Track your favorite minecraft servers' (too bee too tee) queue at any time at your own convenience! Compiled Usage go to https://gi

Addi 1 Feb 5, 2022
Fully functional ecommerce website with user and guest checkout capabilities and Paypal payment integration.

ecommerce_website Fully functional ecommerce website with user and guest checkout capabilities and Paypal payment integration. pip install django pyth

null 2 Jan 5, 2022
A pluggable Django application for integrating PayPal Payments Standard or Payments Pro

Django PayPal Django PayPal is a pluggable application that integrates with PayPal Payments Standard and Payments Pro. See https://django-paypal.readt

Luke Plant 672 Dec 22, 2022
A pluggable Django application for integrating PayPal Payments Standard or Payments Pro

Django PayPal Django PayPal is a pluggable application that integrates with PayPal Payments Standard and Payments Pro. See https://django-paypal.readt

Luke Plant 672 Dec 22, 2022
A simple page with paypal payment and confiramtion in django

django-paypal a simple page with paypal payment and confiramtion in django Youtube Video : Paypal Smart Button : https://developer.paypal.com/demo/che

Mahmoud Ahmed 5 Feb 19, 2022
Adyen package for django-oscar

Adyen package for django-oscar This package provides integration with the Adyen payment gateway. It is designed to work with the e-commerce framework

Oscar 13 Jan 10, 2022
AI virtual gym is an AI program which can be used to exercise and can be used to see if we are doing the exercises

AI virtual gym is an AI program which can be used to exercise and can be used to see if we are doing the exercises

null 4 Feb 13, 2022
Complete Two-Factor Authentication for Django providing the easiest integration into most Django projects.

Django Two-Factor Authentication Complete Two-Factor Authentication for Django. Built on top of the one-time password framework django-otp and Django'

Bouke Haarsma 1.3k Jan 4, 2023
Strawberry-django-plus - Enhanced Strawberry GraphQL integration with Django

strawberry-django-plus Enhanced Strawberry integration with Django. Built on top

BLB Ventures 138 Dec 28, 2022
Pure Python 3 MTProto API Telegram client library, for bots too!

Telethon ⭐️ Thanks everyone who has starred the project, it means a lot! Telethon is an asyncio Python 3 MTProto library to interact with Telegram's A

LonamiWebs 7.3k Jan 1, 2023
A novel method to tune language models. Codes and datasets for paper ``GPT understands, too''.

P-tuning A novel method to tune language models. Codes and datasets for paper ``GPT understands, too''. How to use our code We have released the code

THUDM 562 Dec 27, 2022