Commit Graph

388 Commits (master)

Author SHA1 Message Date
Andromeda Yelton 2563dda3e5 creating signal for pledge_modified and moving you_have_pledged to signals framework so they interact properly -- at most one sent 2012-05-29 08:54:57 -04:00
Raymond Yee 272d795ded Renaming the current functionality that has been named "cancel" to be "nevermind" because that functionality arose to support users changing their mind
The new PledgeCancel is a placeholder for the functionality I will build next to let users actually cancel existing transactions
Finally, I use  the setting.PAYMENT_PROCESSOR to set the default value of Transaction.host ('paypal' or 'amazon')
2012-05-18 16:59:48 -07:00
Raymond Yee 93aa8d54f2 The selenium test is now working again 2012-05-18 15:06:35 -07:00
Raymond Yee 1ca930440c certain test views that should be on only if DEBUG = True 2012-05-17 13:54:09 -07:00
Raymond Yee 3a6b6e038d First pass at handling the situation in which user interrupts Amazon pledge 2012-05-16 18:16:06 -07:00
eric a6e685618c resolve conflicts 2012-05-15 22:54:23 -04:00
eric 8fd4edbe42 wired pledged_charged notice [finish #28493739] 2012-05-15 22:47:57 -04:00
Raymond Yee 4d9873ccb5 Get rid of an FPS key 2012-05-15 17:46:01 -07:00
Jason 65a7df298d Adding secure IPN url for amazon payments 2012-05-15 16:52:05 -04:00
Jason 7a38bdf91c Merging master -> fps 2012-05-15 16:16:39 -04:00
Raymond Yee b07d6c267d Customize paymentReason for amazon -- in Paypal, we don't have it wired up anywhere yet 2012-05-14 10:15:40 -07:00
Raymond Yee 10db4d0e60 a fab command for pushing keys to ry-dev
corrected a typo in payment/manager.py
2012-05-11 18:54:21 -07:00
Raymond Yee 7b5c2feb35 Added logging on whether loading of FPS keys successful 2012-05-11 11:14:43 -07:00
Jason 55e388b4a3 Adding dynamic module selection for payment modules. Dynamic IPN selection for amazon payments. Bug Fixes 2012-05-11 07:19:13 -04:00
Raymond Yee 9aa586181e Wrapping the import of FPS keys in amazon.py so that things won't die if it gets imported before the database gets set up -- these changes don't break amazon functionality on ry's laptop and hopefully will be ok for jenkins. 2012-05-10 08:08:58 -07:00
Raymond Yee 090d36de66 [#29272807] implemented storage of FPS_* keys in the db 2012-05-09 17:16:49 -07:00
Jason e09418a7a2 Updating paypal code to use common global transaciton status, fixing bugs in paypal interface with abstract payment manager class 2012-05-04 10:30:05 -04:00
Raymond Yee c83aa8615a Removing django-merchant dependency 2012-05-03 10:58:08 -07:00
Raymond Yee 4219149132 Small tweaks to get rid of remnants of PayPal IPN_* variables -- I can now use campaign_admin to actually move fake amazon bucks. Still some IPN_* stuff remaining to clean up. 2012-04-26 19:31:55 +00:00
Raymond Yee 061f656e63 Merge branch 'jkace' of github.com:Gluejar/regluit into fps
Also fixed things so that regluit.test.campaigntest.support_campaign runs for Amazon without error -- though I still need to confirm that the status of transactions properly handled
Next up:  see whether this works for PayPal too.

Conflicts:
	frontend/views.py
2012-04-25 13:10:53 -07:00
Raymond Yee 709cb4ce41 now stuck on the status of an ACTIVE transaction in amazon in campaign_test 2012-04-24 18:03:57 -07:00
Raymond Yee 85797b11a7 incorporating host settings for FPSConnection 2012-04-23 17:12:36 -07:00
Raymond Yee b6e0369b1c Attempting to do a real testpayment 2012-04-23 13:54:37 -07:00
icellama21 df2dc3a8ca Fixing bugs where amazon transaction status REFUNDED was not being set, or was overwriten by PaymentDetails 2012-04-23 15:37:25 -04:00
icellama21 337a692995 Adding redirect to pledge cancel and complete URLs when using amazon payment API 2012-04-23 15:24:16 -04:00
icellama21 b4e424b9f5 Cleaning up amazon IPN logging messages 2012-04-23 15:09:43 -04:00
icellama21 883ec1ce56 Adding uniform logging and boto exception handling to amazon payment code 2012-04-23 15:03:32 -04:00
icellama21 931599f831 Adding PreapprovalDetails for amazon FPS payment system 2012-04-23 14:34:51 -04:00
Raymond Yee 0d3765aa27 Fixed spelling of TRANSACITON_STATUS_COMPLETE_PRIMARY 2012-04-21 16:10:13 -07:00
icellama21 b1dbf8642f Adding payment amazon module - IPN, Refund, Cancel, PaymentDetails support 2012-04-21 01:11:16 -04:00
icellama21 05fa8d83a8 Updating payment manager update_payment for amazon compatibility, fixing status code bugs 2012-04-21 01:10:56 -04:00
icellama21 cf5bb82b23 Adding payment transaction CREATED, FAILED status, fixing typo 2012-04-21 01:09:33 -04:00
icellama21 3796002824 Adding amazon ipn to payment URLs 2012-04-21 01:09:03 -04:00
icellama21 91090c60ac Updating test views to use amazon return URL 2012-04-21 01:08:49 -04:00
icellama21 8ffbd49230 Adding stub for local status in paypal-paymentdetails 2012-04-21 01:08:29 -04:00
icellama21 e8b2619207 Adding payment transaction local_status, local IPN functions, separating payment execute and finish, and updates to the amazon FPS payment system 2012-04-20 15:59:08 -04:00
icellama21 d370091db7 Adding amazon FPS return view, execute and preapproval support 2012-04-18 16:22:00 -04:00
icellama21 125582eebd Adding new amazon payment module 2012-04-18 12:51:54 -04:00
icellama21 03e9947189 Adding basic amazon FPS Pay function 2012-04-18 11:53:13 -04:00
Raymond Yee 697fb826b4 Continuing to take apart the responses from Amazon FPS in response to a PAY operation 2012-04-16 20:58:00 -07:00
Raymond Yee f012f011d2 More RY figuring out basics of FPS 2012-04-16 07:00:46 -07:00
Raymond Yee 86ed171cf3 Now I understand more of the status message that comes back after an attempted authorization at Amazon 2012-04-11 16:02:28 -07:00
Raymond Yee 491bad5c14 Simplified structure of URLs for testfps to:
urlpatterns += patterns('',
         (r'^fps/', include(amazon_fps_obj.urls)),
         url(r'^testfps/$', 'regluit.payment.views.testfps', name='app_offsite_amazon_fps'),
    )
2012-04-11 13:51:20 -07:00
Raymond Yee b808ddbed0 Added URLs needed for the return from Amazon authorization.
Also forgot to put keys in prod.py
2012-04-11 10:37:41 -07:00
Raymond Yee 00511e4730 First pass at trying to integrate Amazon fps 2012-04-11 09:51:18 -07:00
Raymond Yee 723f329e20 PayPal doesn't like iso formatted times using offsets if the offsets are different, as when the two timestamps are on the opposite side of a daylight savings shift. --> switch to sending Zulu time (time formatted in UTC with Z suffix) 2012-03-26 15:02:26 -07:00
Raymond Yee 0e61d7477a [#22756079] Changed name of constants (e.g., IPN_PAY_STATUS_ACTIVE to IPN_PREAPPROVAL_STATUS_ACTIVE to make the meaning of these constants clearer
Also fixed an error in how I'm using transaction management in regluit.test.campaigntest.support_campaign
2012-03-23 11:28:09 -07:00
Raymond Yee ffb7c8cd33 [#23019867] I believe this commit implements the rest of the pledge changing functionality and works as far as I can tell so far.
The one part I don't get yet is why the regluit.test.campaigntest.support_campaign script can successfully drive the browser to create a transction and then
change that pledge to create 2 transactions in total -- and yet until regluit.payment.manager.PaymentManager.check_status is run twice, there seems to be only
one transaction visible to the script.

Does this have to do with Django transactions?  I don't know yet.
2012-03-21 15:06:56 -07:00
Raymond Yee 9629e23b21 [#22755723] First step: adding premium field to Transaction model.
MIGRATION REQUIRED
2012-03-20 15:05:29 -07:00
Raymond Yee 5823c0e2de [#23019867] At this point, a supporter can change the pledge amount to a smaller amount (no new PayPal transaction required) or a larger amount (a new PayPal transaction is required and the old transaction is canceled.)
I've not implemented the storage of the premium yet -- that's coming next.
I've not implemented straight out cancellation of a pledge yet.
More UI refinement needed, especially around encouraging supporters not to decrease (or cancel) a pledge and refinements to help people know that they have made a modification.
2012-03-20 14:10:21 -07:00
Raymond Yee 46ca784030 [#23019867] First pass at allow for pledges to be modified 2012-03-19 16:32:37 -07:00
Raymond Yee 744693f178 1) Fix an error in which I wasn't checking properly that the pledge_complete page should allow only the pledging user to see the results.
2) Now tests.campaigntest.support_campaign takes us all the way through pledging for the first campaign
2012-03-19 11:46:41 -07:00
Raymond Yee 9199f78606 test/campaigntests.py has a BasicGuiTest.testFrontPage, which tests whether the Learn More link will toggle the description panel.
paypal/tests.py:  made loginSandbox drop the test parameter and callable from outside of paypal/tests.py -- now, for example, from test/campaigntests.py
settings/dev.py:  added LIVE_SERVER_TEST_URL, UNGLUEIT_TEST_USER, UNGLUEIT_TEST_PASSWORD -- parameters useful for selenium-based live server testing
the beginnings of test/campaigntests.support_campaign() -- a selenium script to drive automated pledging to campaign for testing purposes
2012-03-14 15:06:29 -07:00
Raymond Yee 29ff11af94 Missed a datetime import needed for timedelta 2012-03-12 15:55:14 -07:00
Raymond Yee 6bd003b0c6 It turns out that we were sending "naive" timestamps to PayPal....now passing isoformat() of timezone aware versions of timestamp to PayPal
Added a isoformat method to regluit.utils.localdatetime to handle both naive and aware datetimes
2012-03-12 15:42:20 -07:00
Raymond Yee a252f9d173 [#22561067] Implemented regluit.utils.localdatetime.now is by default datetime.datetime.now() (in Django 1.3) and django.utils.timezone.now() in Django 1.4+
One overrides regluit.utils.localdatetime._now to do "time travel" -- useful for testing scenarios requiring time changes (such as Campaigns)
Get rid of call references to datetime.datetime.now() or utcnow() and datetime.date.today() in favor of regluit.utils.localdatetime.now() and date_today().
2012-03-09 00:45:39 +00:00
Ubuntu 727580e330 Adding explicit waits to selenium payment tests in order to wait for very slow js when running headless on ec2 2012-01-26 19:50:14 +00:00
Ubuntu cf3ff26306 Adding screen to payment selenium tests 2012-01-26 17:44:00 +00:00
icellama21 8b6b038fe3 Merge branch 'master' into jkace 2012-01-26 11:23:10 -05:00
icellama21 a51d4c14e0 Changing payment tests to use webdriver, updating to use explicit waits instead of sleep, adding logging granularoty while running tests 2012-01-26 11:21:49 -05:00
Raymond Yee f7e8e41c71 First round of having debug URLs available only if not in preview mode 2012-01-18 09:08:34 -08:00
Raymond Yee 51cc7d4389 IMPORTANT: Transactions that are ACTIVE status must also have approved=True to be counted as an effectlvely active Transaction.
Changes in two tests are made to reflect this change.
2012-01-11 15:31:26 -08:00
Raymond Yee 9130aa8b4a The approved flag from IPNs for Preapprovals now captured properly. 2012-01-11 22:46:59 +00:00
Raymond Yee 9d7be4849a BUG FIX: must use request.POST.get("approved", 'None') to get approved attribute in IPN 2012-01-11 13:58:29 -08:00
Raymond Yee 712b803334 PreapprovalDetails now capturing approved flag
partial work on IPN to capture approved flag
2012-01-11 13:47:56 -08:00
Raymond Yee 7202e97f19 Allow for PaymentManager.checkStatus() to receive specific list of Transaction to process 2012-01-11 11:50:08 -08:00
Raymond Yee 25bc05050a Starting to refactor PaymentManager.checkStatus() to be able to handle transactions we pass in....first step is to factor out methods to handle Preapprovals vs Payments 2012-01-11 11:12:12 -08:00
Raymond Yee c5c9951c3d Fixed a bug in PaymentManager.checkStatus() -- I was appending statuses for recipients in the wrong place 2012-01-11 10:43:12 -08:00
Raymond Yee 0c7c912200 Adding Transaction.approved field (migration needed!) 2012-01-11 09:40:51 -08:00
Raymond Yee 54f2411ab9 Put in a basic page for a pledge completion. 2012-01-10 17:15:39 -08:00
Raymond Yee 01f5664bf5 Some very basic functionality associated with cancel_url, including the ability to try again on the pledge. 2012-01-10 15:26:04 -08:00
Raymond Yee 3abd29f225 First pass at passing in campaign id into cancel_url (which is now calculated in payment/manager.py) 2012-01-10 12:16:04 -08:00
Raymond Yee be67d9e14f Allow modifications if the amount is equal to max amount (not just less)
Fixed a small typo in the comments for payment.views
2012-01-06 10:32:52 -05:00
Raymond Yee 7012039aef Merge branch 'jkace' of github.com:Gluejar/regluit into payment 2012-01-05 15:21:45 -05:00
icellama21 e9d293199c Fixing bug in paypal checkStatus to separate preapproval max_amount from current amount 2012-01-05 12:56:20 -05:00
Raymond Yee 5e91827366 addition of max_amount to payment.models.Transaction 2012-01-05 09:55:18 -05:00
icellama21 b0b6d83f75 Adding payment code for refund and modification of existing transactions 2012-01-05 01:42:05 -05:00
Raymond Yee d106ff6f3d Run only TransactionTest right now in payment.tests because others require selenium to run 2012-01-04 11:04:18 -05:00
Raymond Yee c5e84d7006 Moved campaigntest.py to test/campaigntest.py
Added a simple selenium test to campaigntest to illustrate how to do a google search and test for the presence of text
Updated payment.tests to use the right settings for PayPal sandbox accounts
payment.tests.AuthorizeTest working for RY on laptop.  PledgeTest is going through the motions but not quite working yet
2012-01-04 10:52:19 -05:00
Raymond Yee eb147b3cd4 Added support for incomplete and completed payments in the PaymentManger query function 2012-01-03 14:49:37 -05:00
Raymond Yee d3f25cd788 Added Receiver and PaymentResponse to admin interface
Dropping all Receiver and PaymentResponse in campaigntest.drop_all_transactions
Added a __unicode__ method to Receiver and PaymentResponse
Added some more documentation of PayPal status parameters
2012-01-03 13:37:20 -05:00
Raymond Yee 81fc04ef12 Merge branch 'master' of github.com:Gluejar/regluit into payment 2012-01-03 09:53:51 -05:00
Raymond Yee 4292e1be0a whitespace change 2012-01-03 09:53:29 -05:00
Andromeda Yelton 1f29f7538d authorized_list was scanning ALL transactions, not just those in the transaction list passed into the function 2012-01-02 10:47:36 -05:00
Raymond Yee 56787c3c7b Adjust transaction test to have a deadline 6 months in the future 2011-12-29 10:17:11 -05:00
Raymond Yee a757f6f99b Versions that include movement to utcnow() and changing what comes out PaymentManager.checkStatus() -- but payment to primary recipient is now broken. Need to investigate 2011-12-22 20:34:24 -05:00
Raymond Yee 21c009998a Starting to display more information about recipients tied to transactions 2011-12-21 18:33:36 -05:00
Raymond Yee 17d4acceab changed PaymentManager.cancel to PaymentManager.cancel_transaction and added PaymentManager.cancel_campaign to parallel other methods in PaymentManager
morphing the campaign_admin view towards being able to push all the campaigns through the various states
2011-12-21 17:32:08 -05:00
Raymond Yee 1872615f2a Added a signal to handle the deletion of a transaction. Don't expect to delete transactions in production but for testing, it's important to get the current Campaign tally right based on transactions 2011-12-21 15:28:31 -05:00
Raymond Yee 4c9bf21ce8 Got rid of a bunch of print statements 2011-12-21 13:49:24 -05:00
Raymond Yee c3c0249b42 Added a PaymentManager.finish_campaign()
Fixed a small bug in which r['status'] is None and being attached as a text node in PaymentManager.checkStatus()
2011-12-21 12:31:58 -05:00
Raymond Yee 75fceed7c5 Now display the campaigns with three different types of transactions: ACTIVE, INCOMPLETE, COMPLETED on the campaign_admin view 2011-12-20 20:36:27 -05:00
Raymond Yee c055767173 set the expiry date based on the campaign deadline. There is a setting PREAPPROVAL_PERIOD_AFTER_CAMPAIGN for specifying how many days after the campaign deadline should we ask for a preapproval deadline. I've put in 90 days. 2011-12-20 14:56:01 -05:00
Raymond Yee bad343e3d2 views.py: wiring in the email address of partnering non-profit
payment/manager.py: wire in the email address of the campaign recipient and the Gluejar commission rate
move the Gluejar commission rate to dev.py/prod.py
2011-12-19 18:34:30 -05:00
Raymond Yee 09a0e5ba8b Merging jkace's changes into payment en route to integrating into master 2011-12-14 08:52:48 -08:00
Jason c2c3168e5a Updating payment code to support delayed chained payments. Adding entry points for delayed execution of payments. Creating common parent class for all paypal transactions to more accurately track metadata 2011-12-14 08:30:37 -05:00
eric 7bfc4849a4 added a column to track amount remaining on a campaign; updated by the Transaction change signal 2011-12-14 00:53:03 -05:00
Raymond Yee 5a27dae1d1 Allow the number of days in the past to be configured for PaymentManager.checkStatus (while keeping default of 3 days for now) 2011-12-08 09:13:23 -08:00
Jason 0d6bc2f68a Adding prepaymentdetails api, enhanced error checking for paymentdetails API 2011-12-06 09:36:18 -05:00
eric 34dd5237af merged with raymond's commit 2011-12-02 19:37:27 -05:00
Raymond Yee 48666339a9 Some documentation of paypal/Transaction model 2011-11-28 17:33:49 -08:00
Raymond Yee 2cbdd797d5 Stripped some parameters from payment/parameters that belong in settings 2011-11-28 16:38:28 -08:00
Raymond Yee 57640ec7b2 First pass at unwiring campaign_detail from the real pledge view. 2011-11-28 15:39:06 -08:00
Raymond Yee b6d9f7463d More debugging messages 2011-11-23 11:39:51 -08:00
Raymond Yee a9ab0e45e6 adding more debugging info about Paypal PAY and PREAPPROVAL
Getting rid of final '/' in prod.py: BASE_URL
2011-11-23 09:41:11 -08:00
Raymond Yee e526c1c3c2 Forot to import sys! 2011-11-23 09:12:37 -08:00
Raymond Yee 5494b282cf Trying to print out ipn info to stderr to see it in the Apache log 2011-11-23 09:07:07 -08:00
Raymond Yee 979a403a06 Merge branch 'jkace' of github.com:Gluejar/regluit into payment
Conflicts:
	frontend/templates/campaign_detail.html
	frontend/views.py
2011-11-22 11:30:45 -08:00
Jason 58eb67e0aa Adding code to support embedded payments 2011-11-22 06:14:58 -05:00
Ed Summers d57f93f6f2 added new migrations 2011-11-21 11:29:37 -05:00
Ed Summers a98ce5373c removing migrations 2011-11-21 11:26:31 -05:00
Ed Summers 186823942f new initial migrations 2011-11-17 23:05:27 +00:00
Ed Summers f119c7f3a7 starting fresh with migrations 2011-11-17 23:05:01 +00:00
Andromeda Yelton 2c6a7e6f94 book panel view of supporter page now half-done; visible at /supporter2/username 2011-11-03 16:28:53 -04:00
Raymond Yee 6102b03c36 Allow Transaction.secret to be null. Created migration for payment/models 2011-11-01 14:16:27 -07:00
Andromeda Yelton c139e4dcfc adding option for supporters to pledge anonymously 2011-11-01 17:08:09 -04:00
Jason f049e5ec91 Implementing check of paypal PAY transaction using PaymentDetails 2011-10-27 04:05:21 -04:00
Jason 9a6a3d260a Adding unique tracking ID to paypal payments 2011-10-27 02:35:46 -04:00
Ed Summers 55af98b05f artifact of some download? 2011-10-18 21:33:22 -04:00
Raymond Yee 8cab4dc425 First pass integration of preapproval into campaign pledge form 2011-10-18 16:27:20 -07:00
Raymond Yee fa3dfe19a0 getting basic comparison of current status of a transaction with that in the database 2011-10-18 07:42:56 -07:00
Raymond Yee 38166177c4 First cut of PaymentDetails
small fix to explicitly calculate URI of PayPalIPN url pattern
update status of a PAY transaction to CREATED instead of leaving as None
2011-10-14 10:52:17 -07:00
Raymond Yee 47a17e6888 The receiver status should be IPN_TXN_STATUS_COMPLETED if the transaction is complete,, I think. 2011-10-13 15:12:11 -07:00
Raymond Yee e0f1ef50cc Rewrote pledging to a campaign to integrate the testview into logic of CampaignFormView directly.
Allow configuration of where PayPal should return after transaction is completed.
2011-10-13 14:13:37 -07:00
Raymond Yee c0bd998732 First attempt to write out transactions associated with Campaign 2011-10-13 10:28:23 -07:00
Raymond Yee 7e4f0a222b Ooops....forgot some files in previous commit 2011-10-11 10:03:40 -07:00
Raymond Yee 711546f414 First pass at incorporating status into Campaign 2011-10-07 20:11:57 -07:00
Raymond Yee 68b94f768f Changes in progress to the model 2011-10-07 14:17:54 -07:00
Raymond Yee ac7deebf9a I had missed some settings that needed to be obtained from django.conf.settings 2011-10-07 09:53:30 -07:00
Raymond Yee cdc02e8c6e Some parameters defined in django.conf.settings had to set accordingly 2011-10-06 16:10:20 -07:00
Ed Summers 6e53fd409f wrote a script to look for what main settings variables are used in payment app, and couldn't find any. 2011-10-05 23:53:06 -04:00
Ed Summers 8f9a03c94f django.conf.settings should be used to get at the settings, not regluit.settings.me which could very well change depending on what environment regluit is configured to run in 2011-10-05 22:53:51 -04:00
Raymond Yee d67d77a9a0 Changed currency amounts to DecimalField in core and payment
Added south migrations to payment
Changed print statements to logger.info in payment
Added primitive paymentcomplete page in payment
2011-10-05 17:56:20 -07:00
Jason 59ba9db4f6 Adding basic selenium powered unit tests for payments 2011-10-04 07:55:39 -04:00
Jason ed1732b4ec Adding cancel,dispute,chargeback support, chained payments, user/list APIs, bug fixes 2011-10-01 08:01:40 -04:00
Jason 42cf499a6c Adding Pre-approved payments 2011-09-29 03:50:07 -04:00
Jason 7e9517ead2 Adding missing README 2011-09-27 08:56:50 -04:00
Jason 37b46d01c2 Adding pledge payment support 2011-09-27 08:48:11 -04:00