Commit Graph

162 Commits

Author SHA1 Message Date
Martin Gross
a1da2eafdc Reinstate MOTO-Flagging for Reseller Scheme-TX (#1570) 2020-02-12 09:49:33 +01:00
Raphael Michel
21dcb4f43d Revert "Optional MOTO-Flagging for Reseller Scheme-TXs (#1570)"
This reverts commit 0a920ac21c.
2020-02-12 08:01:24 +01:00
Martin Gross
0a920ac21c Optional MOTO-Flagging for Reseller Scheme-TXs (#1570)
* Optional MOTO-Flagging for Reseller Scheme-TXs

* Update src/pretix/plugins/stripe/payment.py

Co-Authored-By: Raphael Michel <michel@rami.io>

* Update src/pretix/plugins/stripe/payment.py

Co-Authored-By: Raphael Michel <michel@rami.io>

* Manually rebase again...

* Fix a single whitespace for style...

Co-authored-by: Raphael Michel <mail@raphaelmichel.de>
2020-02-11 11:08:28 +01:00
Raphael Michel
bb5c7c5ad7 Re-introduce plugin categories 2020-02-08 12:38:43 +01:00
Raphael Michel
9984fe97ba Add OrderPayment.fail() to prevent race conditions (#1572) 2020-02-07 09:00:35 +01:00
Martin Gross
b3e3d427cb Add more Stripe Payment Methods, simplify forms (#1571)
* Add more Stripe Payment Methods, simplify forms

* Revert accidential commit of boxoffice control renderer...

* Use existing QR-Code encoding in presale
2020-02-05 09:50:29 +01:00
Martin Gross
0f826a6f76 Show payment card information for Stripe PaymentIntents 2020-02-04 15:09:34 +01:00
Raphael Michel
889dd651ef Add BasePaymentProvider.matching_id() 2020-01-27 21:46:36 +01:00
Raphael Michel
56cfdfc5b3 Stripe: Only use alphanumeric characters in statement descriptors 2019-11-18 10:47:43 +01:00
Raphael Michel
3a0aaa3f92 Stripe: Relax same-session requirement for iDEAL payments
This security mechanism caused problems with banking apps who open the
return view in a separate browser session inside the banking app.
2019-10-30 17:23:11 +01:00
Raphael Michel
97fbec804b Stripe: Include event name in statement descriptors 2019-10-25 16:49:13 +02:00
Raphael Michel
a4d8c810ce Support for right-to-left languages (#1438)
* play around

* Flip things in presale

* Convert backend

* Remove test settings

* Safe getattr
2019-10-15 11:41:23 +02:00
Raphael Michel
02c81e0fa7 Stripe connect: Allow to set application fee 2019-10-13 13:30:58 +02:00
Martin Gross
81b6188777 New ApplePay domain association file for Stripe 2019-10-02 21:31:40 +02:00
Raphael Michel
248493dbf2 Stripe plugin: Fix AttributeError 2019-09-29 18:32:19 +02:00
Raphael Michel
59b7f0a03d Fix a new bug in Stripe webhooks PRETIXEU-64 2019-09-19 10:36:33 +02:00
Raphael Michel
ad3369b059 Fix issue on old-style webhook URLs (#1385)
* Fix issue on old-style webhook URLs

* Fix test issue
2019-09-17 13:59:57 +02:00
Martin Gross
ab0709558d Fix #1389: PaymentIntents are 'processing' and not 'pending' 2019-09-17 13:03:22 +02:00
Raphael Michel
aa99dbc830 Add payment provider specific details to the API 2019-08-30 17:04:22 +02:00
Raphael Michel
191729c07a Remove "3DS mode" setting as it no longer has an effect 2019-08-08 19:25:31 +02:00
Martin Gross
a0e3bbcc82 Fix payment cancelation of Stripe sources 2019-08-07 10:11:07 +02:00
Martin Gross
5a216b7be9 Fix Stripe refunds for PaymentIntents 2019-07-24 15:37:39 +02:00
Raphael Michel
9886f22b83 Add pretix' Stripe partner ID 2019-07-23 09:50:23 +02:00
Martin Gross
a5ba7440fe Fix #1345 - Only enable payment button once Stripe Elements are ready 2019-07-16 15:41:37 +02:00
Raphael Michel
020122b44f Fix missing words 2019-07-15 11:01:33 +02:00
Raphael Michel
2eb5adb6c1 Stripe: Improve exception handling
PRETIXEU-17Y
2019-07-11 08:56:01 +02:00
Martin Gross
9fbb8fa781 Do not _handle_payment_intent() in Stripe's pending order view 2019-07-03 19:19:40 +02:00
Raphael Michel
5eeba88283 Stripe: Robust webhook recognition 2019-07-03 10:57:36 +02:00
Martin Gross
446cf68377 Stripe SCA (#1275)
* Stripe SCA
- Upgrade to latest Stripe API
- Deprecate Stripe Checkout for CC
- Migrate CC payments to Payment Intents

* Move SCA to its own view

* Handle CardErrors for PaymentIntents

* Abilty to handle charge webhooks with PaymentIntents

* Better handling of Stripe References

* Fix Stripe Tests

* Move SCA page into orderlayout; perform iFrame SCA

* Handle disputes and pi-webhooks better, fill more into ReferencedStripeObject

* Optionally pass prefetched PaymentIntent to handle-func

* Fix style

* Send message to window.parent not window.top (widget compatibility)

* More accurate loading message

* Show a cog on sca_return.html. On a good internet connection, you barely see it, but on a bad one…

* Robust error handling

* If it's a method and used like a method, let's actually call it like a method!

* Remove logging statement

* Fix JavaScript interference with other frame events

* Use 4:3 aspect ratio, but at least 600px

* Adjust to django_scopes
2019-07-02 12:37:07 +02:00
Raphael Michel
e29c8a1708 Stripe: disable scopes for oauth return 2019-06-20 13:57:15 +02:00
Raphael Michel
d85ddb5bda Integrate django-scopes (#1319)
* Install django-scopes

* Fix tests.api

* Update tasks and cronjobs

* Fix remaining tests

* Remove unused import

* Fix tests after rebase

* Disable scopes for get_Events_with_any_permission

* Disable scopes for a management command
2019-06-17 10:46:55 +02:00
Raphael Michel
2da93eba26 Fix #1230 -- Stripe: Recognize canceled sources in webhook 2019-05-01 14:01:26 +02:00
Martin Gross
04465393b2 Set explicit description for Stripe Charges 2019-04-03 19:30:56 +02:00
Raphael Michel
d4eac76a8d Fix template typo 2019-02-27 09:30:43 +01:00
Raphael Michel
8889607d1c Stripe: Fix test mode recognition 2019-02-27 09:12:04 +01:00
Raphael Michel
67059fe323 Add a simple test mode (#1181)
- [x] Provide data model and configuration toggle
- [x] Allow to delete individual test orders
- [x] Add tests
- [x] Add a prominent warning message to the backend if test mode orders exist (even though test mode is off), as this leads to wrong statistics
- [x] Decide if and how to generate invoices for test orders as invoice numbers cannot be repeated or should not have gaps.
- [x] Decide if and how we expose test orders through the API, since our difference pull mechanism relies on the fact that orders cannot be deleted.
- [x] Decide if and how we want to couple test modes of payment providers?
- [ ] pretix.eu: Ignore test orders for billing
- [ ] Adjust payment providers: Mollie, bitpay, cash, fakepayment, sepadebit

![download](https://user-images.githubusercontent.com/64280/53009081-fe420d80-343a-11e9-8361-b8511c988598.png)
2019-02-20 17:51:26 +01:00
Raphael Michel
d680937a6c Work around flake8 issues 2019-01-30 08:59:58 +01:00
Raphael Michel
687c85eb58 Stripe: Full source state handling 2019-01-03 09:43:07 +01:00
Raphael Michel
90ffdbdfa3 Stripe: Allow failed payments to succeed 2019-01-03 09:37:31 +01:00
Raphael Michel
654be0db34 Stripe: Prevent race condition between ReturnView and webhook 2019-01-03 09:34:15 +01:00
Raphael Michel
14db654681 Fix Apple Pay for custom domains 2018-10-05 09:31:23 +02:00
Raphael Michel
f78ec830b5 Fix pretix-stripe.js 2018-10-03 17:31:06 +02:00
Raphael Michel
efbddc2486 Log failed payments 2018-10-01 13:48:47 +02:00
Raphael Michel
5b7a578307 Improve display of stripe transaction data 2018-10-01 12:47:36 +02:00
Raphael Michel
6c5cff6162 Stripe: Do not duplicate refunds of migrated payments 2018-09-03 15:20:05 +02:00
Raphael Michel
cf6b6c129a Stripe: Store refund details 2018-09-03 15:19:56 +02:00
Raphael Michel
4536f96493 Only mark apple pay domains as stored in live mode 2018-08-15 14:14:35 +02:00
Raphael Michel
a598c3e7a8 Stripe: Catch exceptions when filling countries 2018-08-15 11:25:47 +02:00
Raphael Michel
d9f5ee9d76 Stripe: Smoother animation 2018-08-15 09:55:39 +02:00
Martin Gross
a4ced609cd Stripe: ApplePay/Payment Request Button (#988)
As discussed, this is a WIP for integrating Stripe's Payment Request Buttons (with also includes the ApplePay-Button on iOS-devices).

Todos:
- [x] Payment Request Button is still displayed, even when a card has already been tokenized (when going back in the order-flow)
- [x] The domains used need to be verified using the Stripe API to enable ApplePay: https://stripe.com/docs/stripe-js/elements/payment-request-button#verifying-your-domain-with-apple-pay
- [x] Migration: Get the account-country for existing Stripe Connect users
- [x] Migration: Verify the domains using the above mentioned API for existing users
- [x] Converting the chargeable amount is not right for non-decimal currencies like JPY

Other considerations:
- On iOS-devices using Safari (probably also on MacBooks, etc. - not tested), the [regular payment request button](https://user-images.githubusercontent.com/157270/38515749-f53f8392-3be9-11e8-8917-61ef78dd354a.png) is automatically replaced with a [buy with Apple Pay button](https://docs-assets.developer.apple.com/published/094d0eb90e/988c36a8-a43c-4ff9-85ef-beda16c4b7c9.png).
- On all other platforms, the generic payment request button is displayed. Even if the device supports a specific payment provider like Google Pay, Microsoft Wallet, Samsung Pay, etc., the generic button will first offer the cards saved within the webbrowser in addition to the other payment methods. Only upon selecting the specific payment provider like GPay, the corresponding payment flow is started.
- Right now, the rendering of the payment button is completely in the hands of Stripe. Once pretix takes on the task of doing this, we should try to detect if the browser supports well known payment methods like GPay in addition to the browser-saved cards. If that's the case, we should add the corresponding marks onto the "Pay Now"-Button (like [this](https://developers.google.com/pay/api/images/brand-guidelines/google-pay-mark.png), [this](https://assets.pcmag.com/media/images/490984-samsung-pay.png?width=1600&height=900), or [this](https://www.firstffcu.com/images/MS-Wallet_stacked_rgb_grey.png)), so the customer can identify the purpose of the button easier.

- [x] Also, all of this is still based against the pretix 1.x codebase ;-)
2018-08-15 09:22:31 +02:00