如何使用api使用php注册和验证产品密钥?

时间:2011-03-11 23:25:18

标签: php validation licensing bluesnap

我创建了一个模块,我将使用ioncube进行加密。我将使用plimus使用http调用生成和验证产品密钥。 plimus说,“这个过程有两个步骤”:

  1. 通过致电

    注册许可证
    https://www.plimus.com/jsp/validateKey.jsp?action=REGISTER&productId=582710&key=XXX-XXXX-XXXX-XXXX[&uniqueMachineId=YYYYYYY]
    
  2. 通过调用

    验证许可证
    https://www.plimus.com/jsp/validateKey.jsp?action=VALIDATE&productId=582710&key=XXX-XXXX-XXXX-XXXX[&uniqueMachineId=YYYYYYY]
    
  3. 密钥将通过电子邮件发送给用户。我只需要一个PHP代码示例来做到这一点, 我还需要一个支票许可证代码才能添加到我的模块中。

1 个答案:

答案 0 :(得分:1)

虽然PHP可以非常简单地发出HTTP请求,但正确设置它可能会很麻烦。您最好的选择是使用第三方库来管理复杂性,这样您就不必设置千个卷曲选项,也不必处理流接口处理非200的HTTP代码的效果。

PEAR's HTTP_Request2是一个很好的起点。它在BSD许可下可用,这意味着您可以将其与您自己的专有代码捆绑在一起,而不会出现许可问题。这是一个非常基本的例子,应该适合你。首先,让我们收集有关实际请求的信息。

$endpoint_url = 'https://www.plimus.com/jsp/validateKey.jsp';
$params = array(
    'action' => 'REGISTER',
    'productId' = '582710',
    'key' => 'XXX-XXXX-XXXX-XXXX'
);

如果您有uniqueMachineId,也可以将其添加到数组中。

现在我们将构建请求对象。

$request = new HTTP_Request2($endpoint_url);
$request->setMethod(HTTP_Request2::GET);
$request->getUrl()->setQueryVariables($params);

如果您需要构建POST而不是GET,see the "Request Body" section in the docs。所以,我们已经设置了请求,让我们实际执行它。

$response = $request->send();
$http_code = $request->getStatus();
$body_of_document = $response->getBody();

多田。根据生成的HTTP响应代码或文档正文执行您需要执行的任何操作。

您也可以针对其他请求重复此过程,只需根据需要更改$params数组和$endpoint_url

你也应该read this manual section on the adapter options。默认配置很可能适合您,但您可能需要请求curl适配器而不是套接字适配器。

正如我所提到的,这不是唯一的选择。我是Zend_Http_Client的粉丝,也可以获得BSD许可。如果你感觉自虐,你也可以use the curl extension directly,如果你完全是蝙蝠 - 鸟粪,你可以使用我最喜欢的东西,streams

但严重的是,HTTP_Request2应该为你完成这项工作。