Comments (5)
The API does not accept an empty string for coupon, the correct way to delete a coupon as per the docs is to do customer.delete_discount()
, this obviously doesn't work if the coupon hasn't been saved and you are just trying to remove it from the local object.
Originally I thought that customer._retrieve_params
held the attributes that were returned from the API and you could therefore use this to distinguish between a property which is being changed and a property which is being added but this was wrong (after retrieving a customer it is empty).
I'm not sure of a good way of fixing this, everything I think of I can think of a case where it won't work or another issue it will introduce. IMO the issue stems from the delete_discount()
method and really to delete the discount you should be setting it to None not calling a method but I don't see that changing as it is the same with the other client libraries.
from stripe-python.
@danielchatfield is correct. Setting the coupon to None
or ""
will not unset the coupon. You'll need to use the delete_discount
method.
from stripe-python.
@kyleconroy the issue here is that the coupon was not valid and thus was not saved on the stripe servers. delete_discount
fails here.
This is a valid bug.
from stripe-python.
Whoops, thanks @danielchatfield. I misread the beginning of the issue. Yes, this is a valid bug, as it shouldn't be possible to get a customer object into a state where it cannot be saved.
What if we added del
support to Stripe objects?
customer.coupon = "invalid"
customer.save()
# InvalidRequestError: No such coupon: invalid
del customer.coupon
customer.save()
from stripe-python.
I haven't tested it, but does delattr
work? https://docs.python.org/2/c-api/object.html#c.PyObject_DelAttr
from stripe-python.
Related Issues (20)
- AttributeError: service_agreement HOT 14
- AttributeError: 'CustomerService' object has no attribute 'modify' with StripeClient HOT 1
- Incorrect annotation on `ErrorOrbject.code` HOT 3
- Unable to remove metadata from PaymentIntent.modify HOT 2
- Missing `convert_to_dict` export HOT 3
- Typing issue: `CreateParams` for `StripeObject`s should allow for Optional values HOT 3
- `HTTPXClient` `allow_sync_requests` != `allow_sync_methods` HOT 1
- Quote PDF endpoint does not work HOT 4
- Typing issue: additional_verifications missing in `stripe.Account.CreateParams` HOT 1
- Create a type alias for `stripe.TaxId.type` and others HOT 3
- unknown parameter: stripe_acccount when creating subscription for a connected account HOT 2
- calling stripe.treasury.Transaction.list Method raises Unrecognized request URL exception HOT 1
- OSS-Fuzz Integration HOT 1
- There doesn't seem to be a way of robustly relying on library's types for API responses HOT 2
- Expading list-items doesn't work with retrieve_async HOT 2
- Ability to query for previous API requests HOT 1
- Can't expand invoice from quote HOT 2
- TaxRate.list does not return any TaxRates, even when I can look them up with TaxRate.retrieve HOT 1
- Webhook "Unable to connect" even though it connects successfully
- Prioritize requests as preferred HTTP library HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from stripe-python.