我使用Paypal REST SDK在PHP中编码。我已将我的Sandbox帐户设置为使用AUD。我意识到我的初始交易是美元并且交易被搁置后,我解决了这个问题。
使用我修改后的代码我正在尝试创建付款 - 我假设我会找回一个允许我重定向用户批准付款的网址。
我收到的消息是:
异常:访问https://api.sandbox.paypal.com/v1/payments/payment时获得Http响应代码403。重复0次。 string(215)“{”name“:”REQUIRED_SCOPE_MISSING“,”message“:”访问令牌没有必需的范围“,”information_link“:”https://developer.paypal.com/webapps/developer/docs/api/#REQUIRED_SCOPE_MISSING“,”debug_id“:”34683601f5dcd“}”< / p>
我的代码是: $ apiContext = new ApiContext(new 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);
}
关于此消息的含义的任何想法。 Paypal在澳大利亚似乎不支持直接信用卡付款,但我不认为这是问题所在。