代表第三方调用Paypal API

代表第三方调用Paypal API,paypal,paypal-rest-sdk,paypal-permissions,Paypal,Paypal Rest Sdk,Paypal Permissions,我找不到如何代表第三方使用PayPal SDK进行API调用。我找到了这个和这个,但是我在Paypal权限sdk php或rest api sdk php中没有看到任何方法可以做到这一点。有人知道如何使用用户访问令牌进行API调用吗?我实际上也在问同样的问题。但通过查看JavaSDK上的示例代码,我最终找到了答案 由于我在代码中使用PHP,我需要简单地将其转换如下: use PayPal\Auth\IPPThirdPartyAuthorization; use PayPal\Auth\PPSig

我找不到如何代表第三方使用PayPal SDK进行API调用。我找到了这个和这个,但是我在Paypal权限sdk php或rest api sdk php中没有看到任何方法可以做到这一点。有人知道如何使用用户访问令牌进行API调用吗?

我实际上也在问同样的问题。但通过查看JavaSDK上的示例代码,我最终找到了答案

由于我在代码中使用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,那么这些类应该自动包括在内。

我需要使用PayPal API权限从一个用户向另一个用户发送资金。您要使用Express Checkout吗?如果是这样,您只需将PAYMENTREQUEST\u n\u SellerPayPalaccounted参数设置为收件人的电子邮件地址或帐户ID,甚至不必修改权限。只需使用您自己的API凭据。不,我将来需要从第一个用户向第二个用户汇款。您在这里使用的几个类在使用REST API的
Paypal\Auth
目录中不存在。@AlexMcCabe谢谢,我已经更新了答案。请检查:这更有意义,但是您如何直接将其与REST API集成,以代表第三方付款。这太令人困惑了。忘了说这不是RESTAPI。这是针对PayPal经典API的。OP最初特别询问权限服务。RESTAPI有不同的方法。