Skrill:创建定期计费配置文件的正确方法是啥?

Posted

技术标签:

【中文标题】Skrill:创建定期计费配置文件的正确方法是啥?【英文标题】:Skrill: What is correct way to create recurring billing profile?Skrill:创建定期计费配置文件的正确方法是什么? 【发布时间】:2014-04-12 01:35:41 【问题描述】:

最近我一直在尝试使用 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】:

要实施定期付款,在您的初始付款中,按照 Skrill 1-Tap Guide 1.4 提供以下参数: ondemand_max_amount, ondemand_max_currency, ondemand_note

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

在重复付款请求期间,您需要先发送“准备”请求(使用 Skrill 1-Tap 指南 1.4 并验证所需参数),该请求将为您提供 XML 格式的会话 id(sid),只需提取,它将用于第二个请求“执行”。如果成功,skrill 将为您提供包含交易详细信息的响应(以 xml 格式)。

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

示例: 首期付款

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

准备请求

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>

【讨论】:

以上是关于Skrill:创建定期计费配置文件的正确方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

Paypal 定期计费 - 专业人士?标准?

如何使用 SDK 对 PayPal 定期付款配置文件进行计费

Skrill 测试结帐的测试 URL 是啥?

管理具有不同价格的多个并发订阅的计费周期的最佳方法是啥?

自动定期计费真的是自动化的吗?

是啥导致 Skrill 汇款时出现错误 LOCK_LEVEL_9?