Shopify/active_merchant — pull request #994 by bizla (2014-01-11 23:10:13+00:00)
Title: 2Checkout Notifications and Return Process

Based on @craigchristenson's updates in https://github.com/Shopify/active_merchant/pull/783.
The only change is mapping `return_url` to 2Checkout's `x_receipt_link_url`, since notification URLs are statically defined in the 2Checkout admin, and the return process used with Shopify requires a generated URL with every checkout.
If there exists a more suitable mapping analogous to `x_receipt_link_url` but for 2Checkout INS, that can be tweaked here.

From the original PR:
> 2Checkout provides 2 different types of notifications.
* The [initial passback](https://www.2checkout.com/documentation/checkout/passback/) where the buyer and sale parameters are returned.
* [INS messages](https://www.2checkout.com/documentation/notifications/) that are sent after the sale is placed throughout the life cycle of the sale

> It is important to support both methods because the initial passback is used to provide the buyer with immediate feedback and the INS messages are used to handle post sale actions such as fraud status changes, invoice status changes or recurring notifications. To handle both I propose that we move the return passback logic from notifications to return. This will free up notifications to be used to handle INS messages.

> Also, some things have changed with 2Checkout parameters in the past year.

> * The `fixed` parameter is not used anymore with the third party cart and pass through products parameter sets.
* removed fixed from helper

> * Tangible sales placed with the pass through products parameter set now settle automatically just like third party cart parameter sales.
* renamed `auto_settle` method to `third_party_cart` to better identify the parameter set being used)

> * 2Checkout no longer recommends using the Third Party Cart parameter set as it has limited functionality (no coupon support, no shipping method support, no recurring support)
* make merchant_order_id the default order identifier since it is used with Pass Through Products and it is what INS messages require to populate the `vendor_order_id`
* leave the cart_order_id as optional by specifying the :invoice

> Thanks and please let me know of anything else I can provide.

/cc @odorcicd