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