贝宝权限API. PHP中的GetBasicPersonalData [英] Paypal Permission API. GetBasicPersonalData in php

查看:73
本文介绍了贝宝权限API. PHP中的GetBasicPersonalData的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经收到"tokenSecret"和"response token".

I have received "tokenSecret" and "response token".

    $apiCred_user = "XXXX.com";
    $apiCred_pass = "XXXX";
    $accessToken = "XXXXXXXXXXXXXXKl8OlQ";
    $tokenSecret = "XXXXXXXXXXXXXsRg6ULs";
    $url = "https://api.sandbox.paypal.com/nvp";

    $auth = new AuthSignature();
    $response = $auth->genSign($apiCred_user ,$apiCred_pass ,$accessToken,$tokenSecret,'POST',$url);

    $authString =
    "token=".$accessToken.
    ",signature=".$response['oauth_signature'].
    ",timestamp=".$response['oauth_timestamp'];

使用此调用,将接收签名.我的疑问是,给定的URL用于生成信号.通话正确吗?

Using this call, the signature is received. My doubt, The given url is used to generate the signautre. The call is correct?

要从"GetBasicPersonalData"中获取结果,我在下面的代码中使用了此

To get result from "GetBasicPersonalData" , I have used this below code

$headers = array(
"X-PAYPAL-REQUEST-DATA-FORMAT:NV",
"X-PAYPAL-APPLICATION-ID: APP-80W284485P519543T",
"X-PP-AUTHORIZATION: " .$authString,
"X-PAYPAL-RESPONSE-DATA-FORMAT:json");

$url_api = "https://svcs.paypal.com/Permissions/GetBasicPersonalData";
$post_array = array(
    "attributeList"=>array("attribute"=>"http://axschema.org/contact/email"),
    "requestEnvelope.errorLanguage"=>"en_US");
$curl_session =  curl_init();
    curl_setopt($curl_session, CURLOPT_URL,$url_api );
    curl_setopt($curl_session, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($curl_session, CURLOPT_POST, 1);
    curl_setopt($curl_session, CURLOPT_POSTFIELDS, http_build_query($post_array));
    curl_setopt($curl_session, CURLOPT_CONNECTTIMEOUT,10); 
    curl_setopt($curl_session, CURLOPT_TIMEOUT, 10);                
    //curl_setopt($curl_session, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl_session, CURLOPT_SSL_VERIFYPEER, 0);
    $response = json_decode(curl_exec($curl_session));
    curl_close($curl_session);

响应结果为错误"

{"responseEnvelope":

{"timestamp":"2015-02-05T09:26:53.053-08:00","ack":"Failure","correlationId":

"c74e091e7944e","build":"2210301"},"error":

[{"errorId":"560022","domain":"PLATFORM","subdomain":"Application","severity":"Error","category":"Application","message":"The X-PAYPAL-APPLICATION-ID header contains an invalid value","parameter":["X-PAYPAL-APPLICATION-ID"]}]}

谢谢! 123456

Thanks ! 123456

推荐答案

您忘记了请求用户的许可以获取其个人数据.

you forgot to ask for user's permission to get his personal data.

让我们假设您想征得他的许可以发出退款,您的请求应如下所示:

let's suppose you want to ask his permission to issue refunds, your request should look like this:

$data = array(
    'scope' => array(
        '0' => 'REFUND',
        '1' => 'ACCESS_BASIC_PERSONAL_DATA'
    ),
    'callback' => 'http://yoursite.com/page.php',  // The success page
    'requestEnvelope' => array(
        'errorLanguage' => 'en_US'    // Language used to display errors
    )
);

然后您将获得正确的访问令牌和令牌密钥.

如果您仍然遇到问题,请询问完整的代码.

then you'll get the correct access token and token secret.

if you're still stuck, please ask for the complete code.

这篇关于贝宝权限API. PHP中的GetBasicPersonalData的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆