Rishi Gupta
99506b486a
billing: Add backend for paying by invoice.
2018-11-17 23:08:48 -08:00
Rishi Gupta
61e0c2693d
billing: Use Subscription.save() instead of calling save on instances.
...
Continuation of 03d77bc
.
2018-11-17 18:59:21 -08:00
Vishnu Ks
2e04cdbe5e
billing: Show estimated subscription revenue on /activity.
...
[Substantial edits by Rishi Gupta]
2018-11-16 13:30:16 -08:00
Vishnu Ks
b527c3c4ef
billing: Make mock_stripe handle StripeErrors.
2018-10-30 09:55:13 -07:00
Rishi Gupta
03d77bc6af
billing: Replace instance.save() Stripe API calls with class.save(instance).
...
This will make it easier to mock the calls in our new stripe mocking
framework. I believe the two forms are equivalent, assuming the Stripe
Python bindings aren't doing anything crazy. And if not, well hopefully our
new testing framework will catch it :).
[Idea originally from Vishnu KS.]
2018-10-18 11:16:00 -07:00
Vishnu Ks
50de59102d
billing: Add system to generate fixture data from the billing tests.
...
This will improve both the maintainability and accuracy of the fixture
data. It also makes it less scary to upgrade Stripe API versions.
[With significant changes by Rishi Gupta.]
2018-10-17 20:35:42 -07:00
Vishnu Ks
5a6b2ebb1f
billing: Add ability for users to change their card.
2018-09-24 19:25:26 -07:00
Rishi Gupta
bd0487d503
billing: Fix mypy stubs to use keyword args instead of positional args.
2018-08-31 17:51:16 -07:00
Rishi Gupta
31ed4492ce
billing: Add backend for downgrading.
2018-08-31 17:49:34 -07:00
Rishi Gupta
eec07072ee
billing: Add coupons.
2018-08-24 17:27:26 -07:00
Rishi Gupta
d229948a43
billing: Make source optional when creating stripe customer.
2018-08-24 16:40:34 -07:00
Rishi Gupta
3cf9cd00d6
billing: Remove idempotency key from upgrade process.
...
This would be relevant if we retried on network failure, but we don't.
2018-08-22 19:18:32 -07:00
Rishi Gupta
56d4034db4
billing: Require successful charge to establish billing relationship.
...
There are several situations in which we want to create a Customer and
stripe.Customer object before we really have a billing relationship with a
customer. The main one is giving non-profit or educational discounts.
2018-08-13 20:24:08 -07:00
Rishi Gupta
27d4b1a5f0
billing: Add RealmAuditLogProcessor.
2018-08-13 17:12:50 -07:00
Vishnu Ks
132480c031
billing: Pass email to stripe.Customer.create.
2018-08-10 13:52:35 -07:00
Vishnu Ks
fa7b98030b
billing: Add mock for cancel at period end subscriptions.
2018-08-04 19:17:34 -04:00
Vishnu Ks
d89e07b8a7
billing: Add mock and test for extracting canceled subscription.
2018-08-04 19:17:34 -04:00
Vishnu Ks
c2023eaaa8
billing: Mention the exact type of stripe.Customers subscriptions attribute.
2018-08-04 19:17:34 -04:00
Vishnu Ks
abf485bfcb
billing: Add mypy stubs to stripe imports.
...
Tweaked by tabbott to add an extra type: ignore.
2018-07-26 16:31:32 -07:00