在PHP中生成身份验证标头的签名 - Paypal

时间:2014-02-08 18:48:33

标签: php paypal oauth

最近完成了process创建了从帐户持有者检索权限的脚本后,我现在发现我必须转换检索到的access tokentoken secret(来自{{ 1}}响应) API签名,以便创建GetAccessToken标题。

X-PAYPAL-AUTHORIZATION标头包含:

  • 时间戳
  • 来自GetAccessToken响应的访问令牌
  • 根据以下信息生成签名
    • 您的API用户名
    • 您的API密码
    • 来自GetAccessToken响应的访问令牌
    • GetAccessToken响应中的令牌密钥
    • PayPal API操作请求的端点,例如https://api.paypal.com/nvp
    • HTTPS投放方式,例如POST
    • 请求与请求相关联的参数

问题是我找不到如何生成签名。 PHP中没有指南(JAVARuby)。

然而,我确实注意到我所遵循的指南(第一个链接)中的行以检索权限:

  

PayPal提供的SDK可用于为Java,PHP和.NET生成身份验证标头签名。使用SDK时,您将获得两个值,例如:

但接下来是JAVA指南,我在Paypal的SDK中找不到任何东西。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

这个documentation实际上从他们的PHP SDK中删除了应该为你做的功能。

private function generateAuthString($apiCred, $accessToken, $tokenSecret, $endpoint)
{
$callerUid = $apiCred->getUserName();
$callerPswd = $apiCred->getPassword();
$auth = new AuthSignature();
$response = $auth->genSign($callerUid,$callerPswd,$accessToken,$tokenSecret,'POST',$endpoint);
$authString =
"token=".$accessToken.
",signature=".$response['oauth_signature'].
",timestamp=".$response['oauth_timestamp'];
return $authString;
}