Commit Graph
122 Commits
Author SHA1 Message Date
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 GrossandRaphael Michel 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
Raphael Michel e645a350f2 Stripe: Support for pretix.eu 2018-08-11 12:31:44 +02:00
Raphael MichelandGitHub afd766999c Upgrade to Django 2.1 (#710)
* Upgrade to Django 2.0

* more models

* i18n foo

* Update setup.py

* Fix Sentry exception PRETIXEU-JC

* Enforce slug uniqueness

* Import sorting

* Upgrade to Django 2.1

* Travis config

* Try to fix PostgreSQL failure

* Smaller test matrix

* staticfiles→static

* Include request in all authenticate() calls
2018-08-06 12:48:46 +02:00
Raphael Michel 18a378976b Fix #571 -- Partial payments and refunds 2018-08-06 12:24:36 +02:00
Jakob SchnellandRaphael Michel 1689925508 Fix #707 -- Setup automated spell-checking for translations (#896)
This will:
  * set up potypo
  * add wordlists, edgecases and phrases
  * fix english typos across the codebase
  * fix german typos and translation
2018-05-27 11:59:10 +02:00
Raphael MichelandGitHub 7bccd62a4f Fix #678 -- Data shredders for personally identifiable information (#817)
* Add data shredders for PII

* First working shredder

* Add more shredders

* Add new shredders and download confirmation

* tmp

* PayPal, Stripe, banktransfer

* Add icon to logs

* Untested payment log shredders

* Add waiting list shredder

* First tests

* Add tests for shredders

* Improve templats, link to shredder

* Test payment info shredders

* More tests

* Documentation

* Fix enabled flag in payment provider overview

* Fix minor issues
2018-05-02 15:59:59 +02:00
Raphael Michel 32a89d3895 Stripe: Fix another statement error 2018-04-27 12:19:48 +02:00
Raphael Michel 7d518df13c Limit all stripe statement_descriptors to 22 characters 2018-04-25 18:17:37 +02:00
Raphael Michel abbc403f73 Stripe: Fix Bancontact payments 2018-04-25 08:46:33 +02:00
Raphael Michel 96a880b5ae Warn more strongly about Stripe Sofort 2018-04-18 14:39:35 +02:00
Raphael Michel bfedcde978 Fix #852 -- Stripe: Set statement_descriptor on all payment methods 2018-04-18 14:36:43 +02:00
Raphael Michel 4ef63d026e Stripe and PayPal: Issue warning on payments for paid orders 2018-04-12 12:55:15 +02:00
Raphael Michel 7baabcef96 Require correct permission for refunds in all cases 2018-04-04 12:52:36 +02:00
Raphael Michel 0ad3ec444c Widget: Add a compatibility mode for Jimdo 2018-04-04 10:07:26 +02:00
Raphael Michel 558c920181 Stripe: Business name detection 2018-03-28 13:34:51 +02:00
Raphael Michel 58d10fac84 Stripe Connect error handling 2018-03-27 11:55:56 +02:00
Raphael Michel f75fbc3744 Stripe connect: Fix issues with test keys 2018-03-26 23:36:11 +02:00
Raphael Michel 07750c1f8c Fix #805 -- Handling of 3D secure payments 2018-03-26 23:22:30 +02:00
Raphael Michel 9ae0d9b0a1 Fix bug with Stripe 3DS 2018-03-26 23:16:06 +02:00
Raphael Michel c9f5828eb9 Stripe: Support for restricted keys 2018-03-26 23:02:23 +02:00
Raphael MichelandGitHub 28506538a3 Add quick-start assistant for new users (#833)
* First draft for quick-setup

* Add payment

* Fix stripe w/o connect

* cols

* Add tests
2018-03-26 20:52:24 +02:00
Raphael MichelandGitHub 938c7df28a Fix #103 -- Implement Stripe Connect (#836)
* ...

* Upgrade Stripe API client

* Implement account choice

* Add disconnect and fix tests
2018-03-26 10:05:34 +02:00
Raphael Michel 3a7e0da80b Backend UX: Restructure payment settings 2018-03-24 18:18:28 +01:00
Raphael Michel 2db1e6b596 Stripe: Open payment gateways in new window when shown in widget 2018-03-20 12:27:17 +01:00
Raphael Michel 162f37e00f Support for inofficial languages 2018-03-08 13:19:57 +01:00
Raphael MichelandGitHub 3c3e59e932 Refs #99 -- Improve support for currencies with less than 2 decimal places (#783)
* Refs #99 -- Fix stripe support for zero-decimal currencies

* Add new money formatting method

* Force decimal places in many places

* Locale-aware currency rendering

* Fix currencies in more places

* More currency fixes
2018-02-26 10:46:07 +01:00
Felix RindtandRaphael Michel 78b31149b5 Fix #751 -- calculate payment fees in OrderChangeManager (#752)
* check for payment method instead of order total

* incorporate payment fee diff in totaldiff at oder change

* use fee from model and the correct order total

* add error handling

* do not change paid orders

* OrderChangedManager can only be committed once

* remove prints of stripe secrets

* add tests

* an OrderChangeManager must not be committed multiple times
* A pending free order stays pending after being changed

* comments on paid_to_free logic
2018-01-22 12:53:46 +01:00
Raphael Michel a62105fa28 Stripe Elements: Fix incorrect JavaScript and display loading indicator 2017-11-24 09:42:26 +01:00
Raphael Michel 3a345c0d7f Stripe webhook: Schedule retry on lock timeout 2017-11-24 09:32:41 +01:00
Tobias KunzeandRaphael Michel e7f38abd77 Use rel="noopener" with target="_blank". (#682)
Required reading: https://mathiasbynens.github.io/rel-noopener/
2017-11-13 18:52:15 +01:00
Raphael Michel 01585877d7 Fix retrying Stripe checkout payments 2017-11-11 22:38:49 +01:00
Raphael Michel decc8b9141 Fix TypeError on retrying stripe sofort payments 2017-11-04 15:03:43 +01:00
Raphael Michel 1c7df4d9f7 Manually merge changes from #672 (thanks @koebi!) 2017-11-04 11:29:02 +01:00
Raphael MichelandGitHub 9767243a6d Fix #277 -- Embeddable shop (#622)
* Vendor vue.js

* Refactor item_group_by_category to support vouchers

* Widget: Show product list

* Widget: free prices

* Widget: pictures and loading indicator

* Widget: First iframe steps

* Widget: Do not rerender iframe

* Widget: Error handling

* Improve widget

* Widget: localization tech

* Fix invoice style

* Voucher attribute and waiting list

* Add some iframe chrome

* First step to namespaced carts

* More isolation steps

* More cart isolation things

* More cart isolation things

* Mobile stuff

* Show cart on checkout pages

* PayPal and Stripe support

* Enable downloads

* Locale handling

* change text "save URL to this exact page"

* Widget: voucher redemption

* Widget: CSS

* CSS: Responsive

* Widget: CSS improvements

* Widget: Add embedding code generator

* Widget: Error messages and SSL check

* First tests

* Widget: tests

* Don't use IDs in widgets

* Widget: static files caching
2017-10-28 21:54:27 +02:00
Raphael Michel e57ab7f030 Allow filtering by payment provider in order search 2017-10-18 13:53:11 +02:00
lutoandRaphael Michel 119fea3379 Fix #619 -- Check format of stripe API keys in settings (#620)
* stripe tests: add settings URL to fixture, as it will be needed later

* Fix #619 -- Stripe: add basic validation for secret and publishable keys
2017-09-05 10:26:03 +03:00
Raphael MichelandGitHub 43b5140754 New handling of plugin URLs (#609) 2017-08-29 10:01:50 +03:00
Raphael Michel f02ec8b24b Improve Stripe.js loading 2017-08-09 13:56:52 +02:00
Raphael Michel 92d4566a54 Make stripe refund call optional, add request parameter to order_control_refund_render 2017-07-25 16:11:42 +02:00
Raphael Michel 5f529817ef Stripe: Event-independent webhooks 2017-07-23 12:22:48 +02:00
Raphael Michel 79562e7ad9 Add logdisplay for charge.pending 2017-07-12 18:02:56 +02:00