Recently I've been trying to implement recurring payments with Skrill (Moneybookers), following this guide and this tutorial.
But I came to a point where I submit my http/post data via a html form but the Skrill website replies with an error message:
Sorry, we cannot complete your payment at this time This payment cannot be completed due to insufficient or invalid transaction information. Message to merchant: Please check the parameter values submitted
Here is my form code:
<!-- Skrill submit form -->
<form id="skrillForm" action="https://www.moneybookers.com/app/payment.pl" method="post">
<input type="hidden" name="pay_to_email" value="my_merchant_user@gmail.com"/>
<input type="hidden" name="status_url" value="http://my.website.com/ipnlistener?payment_type=skrill"/>
<input type="hidden" name="language" value="EN"/>
<input type="hidden" name="amount" id="skrillAmount" value="1"/>
<input type="hidden" name="currency" value="EUR"/>
<input type="hidden" name="detail1_description" value="Subscription"/>
<input type="hidden" name="detail1_text" value="Test"/>
<input type="hidden" name="merchant_fields" value="cust_user_id"/>
<input type="hidden" name="cust_user_id" value="1"/>
<input type="hidden" name="rec_amount" value="1"/>
<input type="hidden" name="rec_period" value="1"/>
<input type="hidden" name="rec_cycle" value="day"/>
<input type="hidden" name="rec_status_url" value="http://my.website.com/ipnlistener?payment_type=skrill"/>
<input type="hidden" name="rec_start_date" value="08/03/2014"/>
</form><!-- End of Skrill submit form -->
I can't figure out which field (or absence of) may cause this error.
I will appreciate any suggestions.
Thanks
To implement recurring payments, on your initial payment, provide these parameters as per Skrill 1‐Tap Guide 1.4: ondemand_max_amount, ondemand_max_currency, ondemand_note
You'll be redirected on Skrill Checkout page, fill out the details just like on normal skrill transaction. If successful, Skrill will send the response to your status_url. The response will contain the 'rec_payment_id' (in xml format, just extract the details) and you should save this because it will be used on the recurring payments request.
During the recurring payment request, you need to send a 'prepare' request first (use the Skrill 1‐Tap Guide 1.4 and verify the required parameters) and this request will give you the session id(sid) in XML format, just extract and it will be used for the second request 'execution'. If success, skrill will give you the response (in xml) with the details of your transaction.
*Take note that URL for this request will be different from the URL used in initial payment and the content-type is application/x-www-form-urlencoded
Example: Initial Payment
<form action="https://pay.skrill.com" method="post" target="_blank">
<input type="hidden" name="pay_to_email" value="contact@merchant.com">
<input type="hidden" name="status_url" value="https://www.merchant.com/status">
<input type="hidden" name="language" value="EN">
<input type="hidden" name="amount" value="39.60">
<input type="hidden" name="currency" value="GBP">
<input type="hidden" name="detail1_description" value="Description:">
<input type="hidden" name="detail1_text" value="Romeo and Juliet">
<input type="hidden" name="recipient_description" value="ACME Solutions">
<input type="hidden" name="ondemand_max_amount" value="150.00">
<input type="hidden" name="ondemand_max_currency" value="EUR">
<input type="hidden" name="ondemand_note" value="Your 1‐Tap Payment">
<input type="hidden" name="ondemand_status_url"
value="www.merchant.com/ondemandstatus1">
<input type="hidden" name="ondemand_status_url2"
value="www.merchant.com/ondemandstatus2">
<input type="submit" value="Pay!">
</form>
Prepare request
POST https://www.skrill.com/app/ondemand_request.pl
Content-Type: application/x-www-form-urlencoded
email=sample.merchant%40sunfish.com&password=fb0dc09bd0989fe975afd3e4ddabb926&action=prepare&amount=1.23¤cy=EUR&ondemand_note=ondemand+note&frn_trn_id=12341990&rec_payment_id=1668618647
Successful response will look like this:
<?xml version="1.0" encoding="UTF-8"?>
<response>
<sid>4414c2a969c744c27bd674a0b0a5ba8a</sid>
</response>
Execution request
POST https://www.skrill.com/app/ondemand_request.pl
Content-Type: application/x-www-form-urlencoded
sid=84034fe3e5c9f6ef54e51efbbe9f2767&action=request
Successful response will look like this:
<?xml version="1.0" encoding="UTF-8"?>
<response>
<transaction>
<amount>10.34</amount>
<currency>EUR</currency>
<id>1668624876</id>
<status>2</status>
<status_msg>processed</status_msg>
</transaction>
</response>
</div>