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¤cy=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:创建定期计费配置文件的正确方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章