Fundraising tech/Testing

= Fundraising Testing = There are many different software stacks and configurations involved with testing WMF fundraising code and its interactions with external services. These instructions assume you are using Mediawiki-vagrant.

Resources
Fundraising tech/Queue testing

Fundraising_tech

Logging
All fundraising related logging can be found in /var/log/syslog

Test Card Details
https://docs.adyen.com/development-resources/test-cards/test-card-numbers

Vagrant Users
Test URL: https://payments.wiki.local.wmftest.net:4430/w/index.php?title=Special:AdyenGateway&appeal=JimmyQuote&payment_method=cc&recurring=&uselang=en&language=en&currency=USD&amount=10&country=US&ffname=adyen&first_name=Jimmy&last_name=Wales&street_address=1+Montgomery+Street&city=San+Francisco&state_province=CA&postal_code=94104&email=jwales%40example.com

Testing out Ayden Instant Payment Notifications(IPN) Messages
Adyen allows you to specify an endpoint to receive IPN messages generated in relation to transactions put through their https://test.adyen.com payment gateway. To allow Adyen to send IPNs to your local vagrant web server you need to give it a publicly accessible URL. You can do this with ngrok and capture the IPN messages locally using the following steps:


 * 1) Confirm your local payments-listener endpoint is working as expected by browsing to https://payments-listener.local.wmftest.net:4430/adyen on your host machine (you should see a SOAP Bad Request warning when hitting that endpoint via a browser - which means the SoapServer is working)
 * 2) Signup, download & unzip ngrok to a location in your $PATH (e.g. /usr/local/bin)
 * 3) Launch ngrok on your host machine and point it to your local payments-listener endpoint using the following:
 * 1) Log into the Adyen Test console here https://ca-test.adyen.com/ca/ca/login.shtml
 * 2) Go to Accounts > Server Communication
 * 3) Add a new 'Standard Notification' profile (you should see existing profiles with URLs pointing to other test endpoints)
 * 4) Drop in your ngrok generated URL with the route for Adyen (e.g. http://6bb27a9c.ngrok.io/adyen)
 * 5) Set method to SOAP
 * 6) At this point you can scroll to the bottom and click the 'Test Configuration' button which should trigger a bunch of SOAP calls to your local payments listener via the ngrok URL. Check out the ngrok terminal display to see a list of received incoming requests e.g:  Ngrok_adyen_terminal_display.png
 * 7) If the above worked as expected. Save the configuration. You can also tweak the profile settings to suit your needs.
 * 8) Submit an Adyen test donation via your local Paymentswiki using the Test URL for vagrant users above. If you want to see the raw SOAP XML Adyen sends in the IPN after you donate, open a terminal window on your vagrant vm and drop in:
 * 1) You should now have a message in your local redis jobs-adyen queue as a result of the IPN being received and processed. You can read more about the job messages generated and data flow of Adyen here
 * 2) (Optional Step) If the messages disappear from your queues too quickly for your liking it's because your Smashpig Adyen QueueJobRunner cron is processing those for you. Head over to /etc/cron.d/SmashPig and comment out the Adyen QueueJobRunner cron if you'd like to run it yourself and debug further. You can then run it manually by using:

Amazon
TODO

Astropay
TODO

Test URL: http://payments.wiki.local.wmftest.net:8080/wiki/Special:AstroPayGateway?appeal=JimmyQuote&payment_method=cc&recurring=&uselang=en&language=en&currency_code=BRL&amount=100&country=BR&ffname=astropay

GlobalCollect (Legacy Ingenico)
You must use the full vpn because they whitelist the source IP. $wgGlobalCollectGatewayMerchantID must be set to the correct value and the API endpoint should be the one with the .nl TLD.

Test URL: http://payments.wiki.local.wmftest.net:8080/wiki/Special:GlobalCollectGateway?appeal=JimmyQuote&ffname=cc-vmad&recurring=&payment_method=cc&utm_key=&referrer=&language=en&country=US&returnto=Thank_You%2525252Fen&amountGiven=&currency_code=USD&frequency=onetime&amount=3&uselang=en

IDEAL BPay Test URL (Netherlands bank transfer): http://payments.wiki.local.wmftest.net:8080/wiki/Special:GlobalCollectGateway?appeal=JimmyQuote&recurring=&payment_method=obt&utm_key=&language=en&country=AU&returnto=Thank_You%252Fen&amountGiven=&currency_code=AUD&frequency=onetime&amount=3&uselang=en

Ingenico Connect
No VPN needed! Note that account configuration lives in the SmashPig yaml files rather than in LocalSettings.php.

PayPal Express Checkout
TODO

Test URL: http://payments.wiki.local.wmftest.net:8080/wiki/Special:PaypalExpressGateway?country=JP&amount=500&payment_method=paypal