Fundraising tech/Testing

Fundraising TestingEdit

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.

ResourcesEdit

Fundraising tech/Queue testing

Fundraising_tech#Running_PHPUnit_tests_under_vagrant

LoggingEdit

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

PSP Specific InstructionsEdit

AdyenEdit

Test Card DetailsEdit

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

Vagrant UsersEdit

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) MessagesEdit

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:
    $ ngrok http -host-header=payments-listener.local.wmftest.net https://payments-listener.local.wmftest.net:4430/
    

  4. Log into the Adyen Test console here https://ca-test.adyen.com/ca/ca/login.shtml
    1. Go to Accounts > Server Communication
    2. Add a new 'Standard Notification' profile (you should see existing profiles with URLs pointing to other test endpoints)
    3. Drop in your ngrok generated URL with the route for Adyen (e.g. http://6bb27a9c.ngrok.io/adyen)
    4. Set method to SOAP
    5. 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:  
    6. If the above worked as expected. Save the configuration. You can also tweak the profile settings to suit your needs.
  5. 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:
    sudo tail -f /var/log/syslog | grep --color=always soap
    
  6. 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
  7. (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:
    /vagrant/srv/SmashPig$ php Maintenance/QueueJobRunner.php --queue jobs-adyen --config-node adyen
    

AmazonEdit

TODO

AstropayEdit

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)Edit

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 ConnectEdit

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

PayPal Express CheckoutEdit

TODO

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