【问题标题】:Generating Signatures for the Authentication Header in PHP - Paypal在 PHP 中为身份验证标头生成签名 - Paypal
【发布时间】:2014-03-06 04:42:54
【问题描述】:

最近完成了process 创建从帐户持有人那里检索权限的脚本,我现在发现我必须将检索到的access tokentoken secret(来自GetAccessToken 响应)转换为API 签名,以便创建X-PAYPAL-AUTHORIZATION 标头。

X-PAYPAL-AUTHORIZATION 标头包含:

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

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

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

PayPal 提供 SDK,您可以使用这些 SDK 为 Java、PHP 和 .NET 生成身份验证标头签名。使用 SDK 时,会得到两个值,如下所示:

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

任何帮助将不胜感激!

【问题讨论】:

    标签: php paypal oauth


    【解决方案1】:

    这个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;
    }
    

    【讨论】:

    • 谢谢!没找到。但这会做。
    猜你喜欢
    • 2015-12-03
    • 2013-08-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-03
    • 1970-01-01
    • 1970-01-01
    • 2021-08-11
    • 2012-10-22
    相关资源
    最近更新 更多