Skrill:创建定期结算资料的正确方法是什么?

时间:2014-03-08 20:52:37

标签: php html api payment-gateway

最近,我一直在尝试使用Skrill(Moneybookers)按照this指南和this教程实施定期付款。

但我来到了一个点,我通过html表单提交我的http / post数据,但Skrill网站回复时收到错误消息:

  

抱歉,我们目前无法完成您的付款此付款   由于交易不足或无效,无法完成   信息。给商家的消息:请检查参数值   提交

这是我的表单代码:

<!-- 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 -->   

我无法弄清楚哪个字段(或缺少)可能导致此错误。

我将不胜感激。

由于

1 个答案:

答案 0 :(得分:0)

要实施定期付款,请在初始付款时按照Skrill 1-Tap Guide 1.4提供这些参数: ondemand_max_amount,ondemand_max_currency,ondemand_note

您将被重定向到Skrill Checkout页面,就像正常的skrill交易一样填写详细信息。如果成功,Skrill会将响应发送到您的status_url。该回复将包含&#39; rec_payment_id&#39; (以xml格式,只提取详细信息),您应该保存它,因为它将用于定期付款请求。

在定期付款申请期间,您需要发送“准备”付款申请。首先请求(使用Skrill 1-Tap Guide 1.4并验证所需的参数),此请求将以XML格式提供会话ID(sid),只需提取,它将用于第二个请求&#39;执行&# 39 ;.如果成功,skrill会给你回复(用xml表示)你的交易细节。

*请注意,此请求的网址与初始付款时使用的网址不同,内容类型为application / x-www-form-urlencoded

实施例: 初始付款

&#13;
&#13;
<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>
&#13;
&#13;
&#13;

准备请求

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&currency=EUR&ondemand_note=ondemand+note&frn_trn_id=12341990&rec_payment_id=1668618647

成功的回复将如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<response>
<sid>4414c2a969c744c27bd674a0b0a5ba8a</sid>
</response>

执行请求

POST https://www.skrill.com/app/ondemand_request.pl
Content-Type: application/x-www-form-urlencoded

sid=84034fe3e5c9f6ef54e51efbbe9f2767&action=request

成功的回复将如下所示:

<?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>