dj-stripe

dj-stripe automatically syncs your Stripe Data to your local database as pre-implemented Django Models allowing you to use the Django ORM, in your code, to work with the data making it easier and faster.

MIT License

Downloads
119.1K
Stars
1.5K
Committers
127
dj-stripe - dj-stripe 1.2.2

Published by kavdev almost 4 years ago

This is a bugfix-only version:

  • Fixed an error with request.urlconf in some setups (#562)
  • Always save text-type fields as empty strings in db instead of null (#713)
  • Fix support for DJSTRIPE_SUBSCRIBER_MODEL_MIGRATION_DEPENDENCY (#707)
  • Fix reactivate() with Stripe API 2018-02-28 and above
dj-stripe - dj-stripe 1.2.1

Published by kavdev almost 4 years ago

This is a bugfix-only version:

  • Fixed various Python 2.7 compatibility issues
  • Fixed issues with max_length of receipt_number
  • Fixed various fields incorrectly marked as required
  • Handle product webhook calls
  • Fix compatibility with stripe-python 2.0.0
dj-stripe - dj-stripe 1.1.1

Published by jleclanche almost 4 years ago

This is a bugfix-only release for Python 2 and migration issues found
in dj-stripe 1.1.0.

If you are on an older version of dj-stripe, you should upgrade to 1.1.x
first with pip install "djstripe<1.2" before upgrading to 1.2.x.

Please make sure to read the 1.1.0 release notes below.

dj-stripe - dj-stripe 2.2.0rc0

Published by kavdev almost 4 years ago

dj-stripe - dj-stripe 2.3.0rc0

Published by therefromhere almost 4 years ago

dj-stripe - dj-stripe 2.0.0

Published by jleclanche almost 4 years ago

  • The Python stripe library minimum version is now 2.3.0.
  • PaymentMethod has been renamed to DjstripePaymentMethod (#841). An alias remains
    but will be removed in the next version.
  • Dropped support for Django<2.0, Python<3.4.
  • Dropped previously-deprecated stripe_objects module.
  • Dropped previously-deprecated stripe_timestamp field.
  • Dropped previously-deprecated Charge.receipt_number field.
  • Dropped previously-deprecated StripeSource alias for Card
  • Dropped previously-deprecated SubscriptionView, CancelSubscriptionView and
    CancelSubscriptionForm.
  • Removed the default value from DJSTRIPE_SUBSCRIPTION_REDIRECT.
  • All stripe_id fields have been renamed id.
  • Charge.source_type has been deprecated. Use Charge.source.type.
  • Charge.source_stripe_id has been deprecated. Use Charge.source.id.
  • All deprecated Transfer fields (Stripe API 2017-04-06 and older), have been dropped.
    This includes date, destination_type (type), failure_code,
    failure_message, statement_descriptor and status.
  • Fixed IntegrityError when REMOTE_ADDR is missing (#640).
  • New models:
    • ApplicationFee
    • ApplicationFeeRefund
    • BalanceTransaction
    • CountrySpec
    • ScheduledQuery
    • SubscriptionItem
    • TransferReversal
    • UsageRecord
  • The fee and fee_details attributes of both the Charge and Transfer objects
    are no longer stored in the database. Instead, they access their respective new
    balance_transaction foreign key. Note that fee_details has been deprecated on
    both models.
  • The fraudulent attribute on Charge is now a property that checks the
    fraud_details field.
  • Object key validity is now always enforced (#503).
  • Customer.sources no longer refers to a Card queryset, but to a Source queryset. In
    order to correctly transition, you should change all your references to
    customer.sources to customer.legacy_cards instead. The legacy_cards attribute
    already exists in 1.2.0.
  • Customer.sources_v3 is now named Customer.sources.
  • A new property Customer.payment_methods is now available, which allows you to
    iterate over all of a customer's payment methods (sources then cards).
  • Card.customer is now nullable and cards are no longer deleted when their
    corresponding customer is deleted (#654).
  • Webhook signature verification is now available and is preferred. Set the
    DJSTRIPE_WEBHOOK_SECRET setting to your secret to start using it.
  • StripeObject has been renamed StripeModel. An alias remains but will be removed
    in the next version.
  • The metadata key used in the Customer object can now be configured by changing the
    DJSTRIPE_SUBSCRIBER_CUSTOMER_KEY setting. Setting this to None or an empty string
    now also disables the behaviour altogether.
  • Text-type fields in dj-stripe will no longer ever be None. Instead, any falsy text
    field will return an empty string.
  • Switched test runner to pytest-django
  • StripeModel.sync_from_stripe_data() will now automatically retrieve related
    objects and populate foreign keys (#681)
  • Added Coupon.name
  • Added Transfer.balance_transaction
  • Exceptions in webhooks are now re-raised as well as saved in the database (#833)
dj-stripe - dj-stripe 2.0.1

Published by jleclanche almost 4 years ago

This is a bugfix-only version:

  • Fixed an error on invoiceitem.updated (#848).
  • Handle test webhook properly in recent versions of Stripe API
    (#779). At some point 2018 Stripe silently changed the ID used for
    test events and evt_00000000000000 is not used anymore.
  • Fixed OperationalError seen in migration 0003 on postgres (#850).
  • Fixed issue with migration 0003 not being unapplied correctly (#882).
  • Fixed missing SubscriptionItem.quantity on metered Plans (#865).
  • Fixed Plan.create() (#870).
dj-stripe - dj-stripe 2.0.2

Published by jleclanche almost 4 years ago

This is a bugfix-only version:

  • Don't save event objects if the webhook processing fails (#832).
  • Fixed IntegrityError when REMOTE_ADDR is an empty string.
  • Deprecated field_name parameter to sync_from_stripe_data
dj-stripe - dj-stripe 2.0.3

Published by jleclanche almost 4 years ago

This is a bugfix-only version:

  • In _get_or_create_from_stripe_object, wrap create _create_from_stripe_object in
    transaction, fixes TransactionManagementError on race condition in webhook
    processing (#877, #903).
dj-stripe - dj-stripe 2.0.4

Published by jleclanche almost 4 years ago

This is a bugfix-only version:

  • Fixed irreversible migration (#909)
dj-stripe - dj-stripe 2.3.0

Published by therefromhere over 4 years ago

  • The minimum version of Django is now 2.1, and Python 3.6.
  • Changed JSONField dependency back to
    jsonfield from
    jsonfield2 (see Warning
    about safe uninstall of jsonfield2 on
    upgrade
    ).
  • Fixed handling of TaxRate events (#1094).
  • Fixed pagination issue in Invoice.sync_from_stripe_data (#1052).
  • Fixed pagination issues in Subscription & Charge
    .sync_from_stripe_data (#1054).
  • Tidyup _stripe_object_set_total_tax_amounts unique handling (#1139).
  • Dropped previously-deprecated Invoice fields (see https://stripe.com/docs/upgrades#2018-11-08 ):
    • .closed
    • .forgiven
    • .billing (renamed to .collection_method)
  • Dropped previously-deprecated enums.InvoiceStatus (#1020).
  • Deprecated the following fields - will be removed in 2.4 (#1087):
    • Subscription.billing (use .collection_method instead)
    • Subscription.start (use .start_date instead)
    • Subscription.tax_percent (use .default_tax_rates instead)
  • Added Invoice.status and enums.InvoiceStatus (#1020).
  • Added new Invoice fields (#1020, #1087):
    • .discount
    • .default_source
    • .status
  • Added new Subscription fields (#1087):
    • .default_payment_method
    • .default_source
    • .next_pending_invoice_item_invoice
    • .pending_invoice_item_interval
    • .pending_update
    • .start_date

Warning about safe uninstall of jsonfield2 on upgrade

Both jsonfield and jsonfield2 use the same import path, so if
upgrading from dj-stripe~=2.2.0 in an existing virtualenv, be sure to
uninstall jsonfield2 first. eg:

# ensure jsonfield is uninstalled before we install jsonfield2
pip uninstall jsonfield2 -y && pip install "dj-stripe>=2.3.0dev"

Otherwise, pip uninstall jsonfield2 will remove jsonfield's
jsonfield module from site-packages, which would cause errors like
ImportError: cannot import name 'JSONField' from 'jsonfield' (unknown location)

If you have hit this ImportError already after upgrading, running this
should resolve it:

# remove both jsonfield packages before reinstall to fix ImportError:
pip uninstall jsonfield jsonfield2 -y && pip install "dj-stripe>=2.3.0dev"

Note that this is only necessary if upgrading from dj-stripe 2.2.x,
which temporarily depended on jsonfield2. This process is not necessary
if upgrading from an earlier version of dj-stripe.

dj-stripe - dj-stripe 2.2.3

Published by therefromhere over 4 years ago

Changed JSONField dependency back to jsonfield from jsonfield2, since jsonfield2 has now been merged back into jsonfield (See #1118).

dj-stripe - dj-stripe 2.2.2

Published by therefromhere almost 5 years ago

This is a bugfix-only version:

  • Fixed handling of TaxRate events (#1094).
dj-stripe - dj-stripe 2.2.1

Published by therefromhere almost 5 years ago

This is a bugfix-only version:

  • Fixed bad package build.
dj-stripe - dj-stripe 2.2.0

Published by therefromhere almost 5 years ago

  • Changed JSONField dependency package from
    jsonfield to
    jsonfield2, for Django 3
    compatibility (see Warning about safe uninstall of jsonfield on
    upgrade
    ).
    Note that Django 2.1 requires jsonfield<3.1.
  • Added support for Django 3.0 (requires jsonfield2>=3.0.3).
  • Added support for python 3.8.
  • Refactored UpcomingInvoice, so it's no longer a subclass of
    Invoice (to allow Invoice to use ManyToManyFields).
  • Dropped previously-deprecated Account fields (see https://stripe.com/docs/upgrades#2019-02-19 ):
    • .business_name
    • .business_primary_color
    • .business_url (changed to a property)
    • .debit_negative_balances
    • .decline_charge_on
    • .display_name
    • .legal_entity
    • .payout_schedule
    • .payout_statement_descriptor
    • .statement_descriptor
    • .support_email
    • .support_phone
    • .support_url
    • .timezone
    • .verification
  • Dropped previously-deprecated Account.business_logo property
    (renamed to .branding_icon)
  • Dropped previously-deprecated Customer.account_balance property
    (renamed to .balance)
  • Dropped previously-deprecated properties Invoice.application_fee,
    Invoice.date
  • Dropped previously-deprecated enum PaymentMethodType (use
    DjstripePaymentMethodType instead)
  • Renamed Invoice.billing to .collection_method (added deprecated
    property for the old name).
  • Updated Invoice model to add missing fields.
  • Added TaxRate model, and Invoice.default_tax_rates,
    InvoiceItem.tax_rates, Invoice.total_tax_amounts,
    Subscription.default_tax_rates, SubscriptionItem.tax_rates
    (#1027).
  • Change urls.py to use the new style urls.
  • Update forward relation fields in the admin to be raw id fields.
  • Updated StripeQuantumCurrencyAmountField and
    StripeDecimalCurrencyAmountField to support Stripe Large Charges
    (#1045).
  • Update event handling so customer.subscription.deleted updates
    subscriptions to status="canceled" instead of deleting it from our
    database, to match Stripe's behaviour (#599).
  • Added missing Refund.reason value, increases field width (#1075).
  • Fixed Refund.status definition, reduces field width (#1076).
  • Deprecated non-standard Invoice.status (renamed to
    Invoice.legacy_status) to make way for the Stripe field
    (preparation for #1020).

Warning about safe uninstall of jsonfield on upgrade

Both jsonfield and jsonfield2 use the same import path, so if
upgrading to dj-stripe>=2.2 in an existing virtualenv, be sure to
uninstall jsonfield first. eg:

# ensure jsonfield is uninstalled before we install jsonfield2
pip uninstall jsonfield -y && pip install "dj-stripe>=2.2.0"

Otherwise, pip uninstall jsonfield will remove jsonfield2’s
jsonfield module from site-packages, which would cause errors like
ImportError: cannot import name 'JSONField' from 'jsonfield' (unknown location)

If you have hit this ImportError already after upgrading, running this
should resolve it:

# remove both jsonfield packages before reinstall to fix ImportError:
pip uninstall jsonfield jsonfield2 -y && pip install "dj-stripe>=2.2.0"

Note on usage of Stripe Elements JS

See Integrating Stripe Elements
for notes about usage of the Stripe Elements frontend JS library.

In summary: If you haven't yet migrated to PaymentIntents, prefer
stripe.createSource() to stripe.createToken().

dj-stripe - dj-stripe 2.1.1

Published by therefromhere about 5 years ago

This is a bugfix-only release:

  • Updated webhook signals list (#1000).
  • Fixed issue syncing PaymentIntent with destination charge (#960).
  • Fixed Customer.subscription and .valid_subscriptions() to ignore
    status=incomplete_expired (#1006).
  • Fixed error on paymentmethod.detached event with card_xxx
    payment methods (#967).
  • Added PaymentMethod.detach() (#943).
  • Updated help_text on all currency fields to make it clear if
    they're holding integer cents (StripeQuantumCurrencyAmountField)
    or decimal dollar (or euro, pound etc)
    (StripeDecimalCurrencyAmountField) (#999)
  • Documented our preferred Django model field types (#986)
dj-stripe - dj-stripe 2.0.5

Published by therefromhere about 5 years ago

This is a bugfix-only version:

  • Avoid stripe==2.36.0 due to regression (#991)
dj-stripe - dj-stripe 2.1.0rc0

Published by therefromhere about 5 years ago

As per our migration policy unreleased migrations on the master branch (migration numbers >=0004) have been squashed.

If you have been using the 2.1.0dev branch from master, you'll need to run the squashed migrations migrations before upgrading to >=2.1.0.

The simplest way to do this is to pip install dj-stripe==2.1.0rc0 and migrate, alternatively check out this tag (2.1.0rc0).

dj-stripe - dj-stripe 2.1.0

Published by therefromhere about 5 years ago

  • Dropped Django 2.0 support
  • The Python stripe library minimum version is now 2.32.0, also
    2.36.0 is excluded due to a regression (#991).
  • Dropped previously-deprecated Charge.fee_details property.
  • Dropped previously-deprecated Transfer.fee_details property.
  • Dropped previously-deprecated field_name parameter to
    sync_from_stripe_data
  • Dropped previously-deprecated alias StripeObject of StripeModel
  • Dropped previously-deprecated alias PaymentMethod of DjstripePaymentMethod
  • Dropped previously-deprecated properties Charge.source_type and
    Charge.source_stripe_id
  • enums.PaymentMethodType has been deprecated, use enums.DjstripePaymentMethodType
  • Made SubscriptionItem.quantity nullable as per Plans with
    usage_type="metered" (follow-up to #865)
  • Added manage commands djstripe_sync_models and
    djstripe_process_events (#727, #89)
  • Fixed issue with re-creating a customer after Customer.purge() (#916)
  • Fixed sync of Customer Bank Accounts (#829)
  • Fixed Subscription.is_status_temporarily_current() (#852)
  • New models
    • Payment Intent
    • Setup Intent
    • Payment Method
    • Session
  • Added fields to Customer model: address, invoice_prefix,
    invoice_settings, phone, preferred_locales, tax_exempt

Changes from API 2018-11-08:

Changes from API 2019-02-19:

  • Major changes to Account fields, see
    https://stripe.com/docs/upgrades#2019-02-19 , updated Account
    fields to match API 2019-02-19:

  • Added Account.business_profile, .business_type, .company,
    .individual, .requirements, .settings

  • Deprecated the existing fields, to be removed in 2.2

  • Special handling of the icon and logo fields:

    • Renamed Account.business_logo to Account.branding_icon
      (note that in Stripe's API Account.business_logo was renamed
      to Account.settings.branding_icon, and
      Account.business_logo_large (which we didn't have a field
      for) was renamed to Account.settings.branding_logo)
    • Added deprecated property for Account.business_logo
    • Added Account.branding_logo as a ForeignKey
    • Populate Account.branding_icon and .branding_logo from the
      new Account.settings.branding.icon and .logo

Changes from API 2019-03-14:

  • Renamed Invoice.application_fee to
    Invoice.application_fee_amount (added deprecated property for the
    old name)
  • Removed Invoice.date, in place of Invoice.created (added
    deprecated property for the old name)
  • Added Invoice.status_transitions
  • Renamed Customer.account_balance to Customer.balance (added
    deprecated property for the old name)
  • Renamed Customer.payment_methods to
    Customer.customer_payment_methods
  • Added new SubscriptionStatus.incomplete and
    SubscriptionStatus.incomplete_expired statuses (#974)
  • Added new BalanceTransactionType values (#983)

Squashed dev migrations

As per our migration policy, unreleased migrations on the master
branch have been squashed.

If you have been using the 2.1.0dev branch from master, you'll need to
run the squashed migrations migrations before upgrading to >=2.1.0.

The simplest way to do this is to pip install dj-stripe==2.1.0rc0 and
migrate, alternatively check out the 2.1.0rc0 git tag.

dj-stripe - dj-stripe 1.2.0 [Shedding some weight]

Published by kavdev over 6 years ago

Migration reset

This release resets all migrations to 0001_initial. Migrations were previously in an unmaintainable state, and this is an unavoidable step.

You will not be able to upgrade directly to dj-stripe 1.2.0 from dj-stripe < 1.1.0. You must go through 1.1.0 first, run manage.py migrate djstripe, then upgrade to 1.2.0. Once on 1.2.0, you'll need to clear your migrations table of dj-stripe entries and then run manage.py migrate djstripe --fake