Closed. This question needs debugging details。它当前不接受答案。












想要改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。

在12个月前关闭。



Improve this question




我正在创建一个PHP网站,并且需要将MONEYBOOKERs集成为支付网关。

在将MoneyBookers网关嵌入到我的网站时需要帮助。当我使用测试链接(沙盒URL)时,它是:



我面临的问题是,MONEYBOOKERs在测试时没有显示任何转换。

请帮忙!

最佳答案

我在我最近的博客文章 How to automate Moneybookers (Skrill) using status_url (IPN) 上详细介绍了此主题。有PHP和C#的示例代码以及说明要点的图片:

  • 注册Moneybookers测试帐户
  • 创建一个“ secret 单词”
  • 创建您自己的付款表格(在Moneybookers结帐页面上带有您的徽标)
  • 验证Moneybookers订单

  • 我不会在这里介绍所有步骤,因为如果我回答了,那么它将占用几页。但是,我将介绍第四个主题(验证Moneybookers的订单),因为当前此页面上的答案充满了问题(SQL注入(inject)等)。如果您需要每个步骤的详细说明,请 read my article

    您网站上的简单付款表格

    我将详细介绍in the article,但这是一个简单的付款表格。将粗体值替换为正确的价格,应用名称和Moneybookers电子邮件:
    
    <form action="https://www.moneybookers.com/app/payment.pl" method="post">
      <input type="hidden" name="pay_to_email" value="[email protected]"/>
      <input type="hidden" name="status_url" value="http://example.com/verify.php"/>
      <input type="hidden" name="language" value="EN"/>
      <input type="hidden" name="amount" value="Total amount (e.g. 39.60)"/>
      <input type="hidden" name="currency" value="Currency code (e.g. USD)"/>
      <input type="hidden" name="detail1_description" value="YourApp"/>
      <input type="hidden" name="detail1_text" value="License"/>
      <input type="submit" value="Pay!"/>
    </form>
    

    验证Moneybookers订单

    用户为您的软件,电子书或其他数字内容付款后,您将需要自动验证订单并将其订购的商品发送到他们的电子邮件地址。在此示例中,我提到了 creating a product key using LimeLM ,但是您实际上可以做任何事情。

    在上面的示例表单中,您设置了将验证Moneybookers订单的脚本的位置:
    
    <input type="hidden" name="status_url" value="http://example.com/verify.php"/>
    

    脚本的相关部分是这样的:
    
    // Validate the Moneybookers signature
    $concatFields = $_POST['merchant_id']
        .$_POST['transaction_id']
        .strtoupper(md5('Paste your secret word here'))
        .$_POST['mb_amount']
        .$_POST['mb_currency']
        .$_POST['status'];
    
    $MBEmail = '[email protected]';
    
    // Ensure the signature is valid, the status code == 2,
    // and that the money is going to you
    if (strtoupper(md5($concatFields)) == $_POST['md5sig']
        && $_POST['status'] == 2
        && $_POST['pay_to_email'] == $MBEmail)
    {
        // Valid transaction.
    
        //TODO: generate the product keys and
        //      send them to your customer.
    }
    else
    {
        // Invalid transaction. Bail out
        exit;
    }
    

    如果您不知道如何在Moneybookers中设置您的 secret 单词,我将在“ How to automate Moneybookers (Skrill) using status_url (IPN) ”文章中解释如何执行此操作。

    全额付款示例

    如果您不希望自己编写此代码,那么我们为 LimeLM 客户提供了完整的付款表格。它是为PHP,C#和VB.NET编写的,并且对我们所有客户(甚至我们的自由用户)都是免费的。因此,您可以下载它,将其集成到您的网站中,然后使用它,而无需支付我们任何费用。

    这是payment selection page的样子:

    10-04 12:02