0

我找不到如何代表第三方使用 PayPal SDK 进行 API 调用。我找到了这个https://developer.paypal.com/docs/classic/permissions-service/integration-guide/PermissionsAbout/和这个PayPal Permissions API,但我没有在 Paypal 权限-sdk-php 或休息中看到任何方法-api-sdk-php 来做到这一点。有人知道如何使用用户访问令牌进行 API 调用吗?

4

1 回答 1

0

我实际上在问同样的问题。但我终于通过查看此处的 JAVA SDK 上的示例代码找到了答案。

由于我在我的代码上使用 PHP,我需要简单地转换它,如下所示:

use PayPal\Auth\IPPThirdPartyAuthorization;
use PayPal\Auth\PPSignatureCredential;
use PayPal\Auth\PPTokenAuthorization;

require 'vendor/autoload.php';

$requestEnvelope = new RequestEnvelope("en_US");
$attributeList = new PersonalAttributeList();
$attributeList->attribute = array(
    'http://axschema.org/namePerson/first',
    'http://axschema.org/namePerson/last',
    'http://axschema.org/contact/email',
    'http://axschema.org/contact/fullname',
    'http://openid.net/schema/company/name',
    'http://axschema.org/contact/country/home',
    'https://www.paypal.com/webapps/auth/schema/payerID'
);

$request = new GetBasicPersonalDataRequest( $attributeList );
$request->requestEnvelope = $requestEnvelope;

$apiCredential = null;
if ( ! empty( $data['token'] ) && ! empty( $data['tokenSecret'] ) ) {
    $thirdPartyAuth = new PPTokenAuthorization( $data['token'], $data['tokenSecret'] );
    $apiCredential = new PPSignatureCredential( 'jb-us-seller_api1.paypal.com', 
        'WX4WTU3S8MY44S7F', 'AFcWxV21C7fd0v3bYYYRCpSSRl31A7yDhhsPUU2XhtMoZXsWHFxu' );

    $apiCredential->setApplicationId( 'APP-80W284485P519543T' );
    $apiCredential->setThirdPartyAuthorization( $thirdPartyAuth );
}

$service = new PermissionsService( $config );
try {

    /*
     *  ## Making API call
    Invoke the appropriate method corresponding to API in service
    wrapper object
    */
    if ( $apiCredential != null )
        $response = $service->GetBasicPersonalData( $request, $apiCredential );
    else 
        $response = $service->GetBasicPersonalData( $request );

    return $response;
} catch (Exception $ex) {}

我希望这可以帮助每个有同样问题的人。

编辑1:

感谢@Alex 指出这一点。对于命名空间下的类,PayPal\Auth请包括您可以在此处获取的 PayPal SDK 核心。如果您使用 composer 来使用 PayPal Adaptive SDK,那么应该自动包含这些类。

于 2016-01-15T08:35:38.460 回答