integrar developer apicontext php rest paypal

developer - Servicio Paypal PHP REST-"token de acceso no tiene alcance requerido"



paypal/rest-api-sdk-php laravel (1)

Estoy codificando en PHP usando Paypal REST SDK. Configuré mi cuenta de Sandbox para usar AUD. Lo resolví después de darme cuenta de que mis transacciones iniciales estaban en USD y que las transacciones se estaban realizando.

Al usar mi código revisado, intento crear un pago. Supongo que recibiré una URL que me permitirá redirigir al usuario para que apruebe el pago.

Recibo un mensaje que dice:

Excepción: Obtuve el código de respuesta Http 403 al acceder a https://api.sandbox.paypal.com/v1/payments/payment . Repetido 0 veces. string (215) "{" name ":" REQUIRED_SCOPE_MISSING "," message ":" El token de acceso no tiene alcance obligatorio "," information_link ":" https://developer.paypal.com/webapps/developer/docs/api / # REQUIRED_SCOPE_MISSING "," debug_id ":" 34683601f5dcd "}"

Mi código es: $ apiContext = new ApiContext (nuevo OAuthTokenCredential (''xxxxxx'', ''xxxxxx''));

//### FundingInstrument // A resource representing a Payer''s funding instrument. // For direct credit card payments, set the CreditCard // field on this object. $fi = new FundingInstrument(); $creditCardToken = new CreditCardToken(); $creditCardToken->setCreditCardId($creditcard->cardToken); $fi->setCreditCardToken($creditCardToken); // ### Payer // A resource representing a Payer that funds a payment // For direct credit card payments, set payment method // to ''credit_card'' and add an array of funding instruments. $payer = new Payer(); $payer->setPaymentMethod("credit_card") ->setFundingInstruments(array($fi)); // ### Itemized information // (Optional) Lets you specify item wise // information $paymentItems=Yii::app()->session[''paymentitems'']; $items=array(); $total=0; foreach ($paymentItems as $item) { $pp_item = new Item(); $pp_item->setName("Donation to ".$item->organisation->organisationName) ->setCurrency(''AUD'') ->setQuantity(1) ->setPrice($item->amount); array_push($items,$pp_item); $total+=(float)$item->amount; } $itemList = new ItemList(); $itemList->setItems($items); // ### Amount // Lets you specify a payment amount. // You can also specify additional details // such as shipping, tax. $amount = new Amount(); $amount->setCurrency("AUD") ->setTotal($total); // ### Transaction // A transaction defines the contract of a // payment - what is the payment for and who // is fulfilling it. $transaction = new Transaction(); $transaction->setAmount($amount) ->setItemList($itemList) ->setDescription("Payment description"); // ### Payment // A Payment Resource; create one using // the above types and intent set to sale ''sale'' $payment = new Payment(); $payment->setIntent("sale") ->setPayer($payer) ->setTransactions(array($transaction)); // ### Create Payment // Create a payment by calling the payment->create() method // with a valid ApiContext (See bootstrap.php for more on `ApiContext`) href // The return object contains the state. try { $response=$payment->create($apiContext); var_dump($response); //$this->redirect($response->links[0]->href); } catch (PayPal/Exception/PPConnectionException $ex) { echo "Exception: " . $ex->getMessage() . PHP_EOL; var_dump($ex->getData()); exit(1); }

Cualquier idea sobre lo que significa este mensaje. Parece que PayPal no admite pagos directos con tarjeta de crédito en Australia, pero no creo que ese sea el problema.


En su cuenta de desarrollador Paypal, en Mis aplicaciones> [Su aplicación], asegúrese de que la función que está tratando de usar esté habilitada en la sección CONFIGURACIÓN DE LA APLICACIÓN.