如何在PHP中将MoneyBookers集成到Web应用程序中?

时间:2009-10-09 14:08:51

标签: php payment-gateway skrill moneybookers payment-integration

我正在构建一个PHP网站,我们需要一个基于MONEYBOOKER的支付网关。

任何人都可以帮助将MoneyBookers网关嵌入我的网站。因为我正在使用测试链接:

  

https://www.moneybookers.com/app/test_payment.pl

但它没有显示任何汇款。

请帮助!

3 个答案:

答案 0 :(得分:36)

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

  1. 注册Moneybookers测试帐户
  2. 创建一个“秘密词”
  3. 创建您自己的付款表单(在Moneybookers结帐页面上显示您的徽标)
  4. 验证Moneybookers订单
  5. 我不会涵盖这里的每一步,因为如果我做了我的答案会占用几页。但是,我将介绍第4个主题(验证Moneybookers订单),因为此页面上的答案存在问题(SQL注入等)。如果您需要每个步骤的详细说明,请 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="merchant-email@example.com"/>
      <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 = 'merchant-email@example.com';
    
    // 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中设置您的秘密词,我会在“ How to automate Moneybookers (Skrill) using status_url (IPN) ”文章中解释如何执行此操作。

    完整付款示例

    如果您不想自己编写此代码,我们会为 LimeLM 客户提供完整构建的付款表单。它是为PHP,C#和VB.NET编写的,它对所有客户(甚至是我们的免费用户)都是免费的。所以你可以下载它,将它集成到你的网站,并使用它而无需支付我们一分钱。

    以下是payment selection page的样子:

    enter image description here

答案 1 :(得分:3)

您需要从MoneyBookers获取文档,例如:商家网关的http://www.moneybookers.com/app/help.pl?s=m_manual和测试帐户。然后彻底阅读几次并理解流程。然后转到该页面的演示部分,看看。最后,开始编码,并使用您的测试帐户进行测试。

答案 2 :(得分:0)

Skrill没有使用Moneybooker,现在它已经改变了它的测试支付方式。记录在这里第13页(2.3.2):https://www.skrill.com/fileadmin/content/pdf/Skrill_Quick_Checkout_Guide.pdf

使用Skrill提供的商家测试帐户:

enter image description here

C#代码:

string url = "https://pay.skrill.com/?";

// Merchant Details
url += "pay_to_email=" + "demoqco@sun-fish.com";
url += "&recipient_description=" + "Your Project Title";
url += "&language=" + "EN";
url += "&transaction_id=" + "Your Transaction ID";
url += "&return_url=" + "Your Return URL After Successful Payment";

// Payment Details
url += "&amount=" + "Your Total Amount";
url += "&currency=" + "USD";
url += "&amount2_description=" + "Item Price:"; // item name
url += "&amount2=" + "Your Price Here"; // place price 
url += "&amount3_description=" + "Quantity:";
url += "&amount3=" + "Your Quantity Here";
url += "&amount4_description=" + "Tax:";
url += "&amount4=" + "Your Tax Here";
url += "&detail1_description=" + "Order ID:";
url += "&detail1_text=" + "Your Order_ID Here";
url += "&detail2_description=" + "Description:";
url += "&detail2_text=" + "Description of product";
url += "&detail3_description=" + "Product ID:";
url += "&detail3_text=" + "Your Product_ID here";
url += "&detail4_description=" + "Order Date:";
url += "&detail4_text=" + "Order Date here";

// Split Gateway
// If Payment method not set then skrill will automatically select methods in your country
//url += "&payment_methods=" + "WLT,ACC"; // Skrill, Credit/Debit Cards

// redirects to Skrill
Response.Redirect(url)

对于测试付款,在重定向到Skrill后使用测试卡号以下:

enter image description here 注意: Amex使用四位数测试CVV