Я решил проблему, передав строку xml следующим образом:
POST запрос по этой ссылке
https://esqa.moneris.com/gateway2/servlet/MpgRequest
Использование заголовка:
Content-Type: application/xml
Для PreAuthXML-запрос будет выглядеть примерно так:
<?xml version="1.0"?>
<request>
<store_id>yourstoreid</store_id>
<api_token>yourapitoken</api_token>
<purchase>
<crypt_type>1</crypt_type>
<order_id>a863eed8-9a79-4e92-892b-06f1bd23c68a</order_id>
<cust_id>testclient1</cust_id>
<amount>11.00</amount>
<pan>4111111111111111</pan>
<expdate>2709</expdate>
<cust_info>
<first_name>eselectplus</first_name>
<last_name>test</last_name>
<address>address1</address>
<city>Mississauga</city>
<country>Canada</country>
<postal_code>ABC 123</postal_code>
<phone_number>123456789</phone_number>
<email>test@test.com</email>
</cust_info>
</purchase>
</request>
Для завершения этого запроса отправьте запрос на завершение POST по тому же URL-адресу, например:
<?xml version="1.0"?>
<request>
<store_id>yourstoreid</store_id>
<api_token>yourapitoken</api_token>
<completion>
<order_id>a863eed8-9a79-4e92-892b-06f1bd23c68a</order_id>
<txn_number>24-0_14</txn_number>
<comp_amount>11.00</comp_amount>
<crypt_type>1</crypt_type>
<cust_info>
</cust_info>
</completion>
</request>
Надеюсь, это кому-нибудь когда-нибудь поможет.