We gladly accept new gateways or bugfixes to this library. Please read the guidelines for reporting issues and submitting pull requests below.
- Please make clear in the subject what gateway the issue is about.
- Include the version of ActiveMerchant, Ruby, ActiveSupport, and Nokogiri you are using.
- Fork it and clone your new repo
- Create a branch (
git checkout -b my_awesome_feature
) - Commit your changes (
git add my/awesome/file.rb; git commit -m "Added my awesome feature"
) - Push your changes to your fork (
git push origin my_awesome_feature
) - Open a Pull Request
Please see the ActiveMerchant Guide to Contributing for information on adding a new gateway to ActiveMerchant.
The most important guidelines:
- All new integrations must have unit tests and functional remote tests.
- Remote tests for a gateway should cover all supported transaction methods (auth, capture, refund, void) and validate critical response formats such as charge amounts.
- Your code should support all the Ruby versions and ActiveSupport versions we have enabled on Travis CI.
- No new gem dependencies will be accepted.
- XML: use Nokogiri for generating and parsing XML.
- JSON: use
JSON
in the standard library to parse and generate JSON. - HTTP: use
ActiveMerchant::PostsData
to do HTTP requests. - Do not update the CHANGELOG, or the
ActiveMerchant::VERSION
constant.
The addition of your gateway to active_merchant does not guarantee placement within Shopify. In order to have your gateway considered, please send an email to payment-integrations@shopify.com with Active_Merchant Integration in the subject. Be sure to include:
- Name, URL & description of the payment provider you wish to integrate
- Markets served by this integration
- List of major supported payment methods
- Your most recent Certificate of PCI Compliance
- Check the semantic versioning page for info on how to version the new release.
- Update the
ActiveMerchant::VERSION
constant in lib/active_merchant/version.rb. - Add a
CHANGELOG
entry for the new release with the date - Tag the release commit on GitHub:
bundle exec rake tag_release
- Release the gem to rubygems using ShipIt