6
我想讓PayPal REST API創建存儲在保險庫中的信用卡的付款。但是,每當我嘗試,並與在跳馬PayPal的API將掛起周邊半分鐘卡付款,然後給我下面的500錯誤:PayPal REST API返回信用卡令牌的服務器錯誤
Exception: Got Http response code 500 when accessing https://api.sandbox.paypal.com/v1/payments/payment.
{"name":"INTERNAL_SERVICE_ERROR","message":"An internal service error has occurred","information_link":"https://developer.paypal.com/webapps/developer/docs/api/#INTERNAL_SERVICE_ERROR","debug_id":"e3c779ea99f73"}
這是我使用的代碼(我很抱歉,如果這裏有太多的信息,我不知道什麼樣的信息是有關我的問題)
<?php
include("bootstrap.php"); //Sample bootstrap file configured with my clientId and Secret, creates $apiContext
use PayPal\Api\CreditCard;
use PayPal\Api\Payer;
use PayPal\Api\FundingInstrument;
use PayPal\Api\Details;
use PayPal\Api\Amount;
use PayPal\Api\Transaction;
use PayPal\Api\Payment;
use PayPal\Api\Address;
use PayPal\Api\CreditCardToken;
$useVault = true;
$addr = new Address();
$addr->setLine1('52 N Main ST');
$addr->setCity('Johnstown');
$addr->setCountry_code('US');
$addr->setPostal_code('');
$addr->setState('OH');
$card = new CreditCard();
//Also used PayPal Sandbox account number here
$card->setNumber('4111111111111111');
$card->setExpire_month('03');
$card->setExpire_year('2019');
$card->setCvv2('123');
$card->setFirst_name('Joe');
$card->setLast_name('Shopper');
$card->setType('visa');
$card->setBilling_address($addr);
$fi = new FundingInstrument();
//Setting $useVault to false here
// will attempt to make the payment without storing the CC in the vault
// Which works. having it use the vault will return a 500 error
if($useVault){
//use Store the CC in the vault
$response = $card->create($apiContext);
$ccToken = new CreditCartToken();
$ccToken->setCredit_card_id($response->id);
$fi->setCredit_card_token($creditCardToken);
}else{
$fi->setCredit_card($card);
}
$payer = new Payer();
$payer->setPayment_method('credit_card');
$payer->setFunding_instruments(array($fi));
$amountDetails = new Details();
$amountDetails->setSubtotal('7.41');
$amountDetails->setTax('0.03');
$amountDetails->setShipping('0.03');
$amount = new Amount();
$amount->setCurrency('USD');
$amount->setTotal('7.47');
$amount->setDetails($amountDetails);
$transaction = new Transaction();
$transaction->setAmount($amount);
$transaction->setDescription('This is the payment transaction description.');
$payment = new Payment();
$payment->setIntent('sale');
$payment->setPayer($payer);
$payment->setTransactions(array($transaction));
try {
var_dump($payment->create($apiContext));
} catch (PayPal\Exception\PPConnectionException $ex) {
echo "Exception: " . $ex->getMessage() . PHP_EOL;
var_dump($ex->getData());
exit(1);
}
如果我改變$useVault
到false
那麼付款將與交易將在開發者現身沙箱。 我用this guide at dev-tools.paypal.com,它似乎是具有相同的問題,因爲我(I獲得到步驟4 3,並將其打印出一個內部服務錯誤發生
相當正確。 API目前在沙箱中,它正在運行,但我沒有修復ETA。 – tomwhipple
謝謝。我不知道這是一個問題,只是貝寶沙箱API或什麼 –
謝謝,非常令人沮喪,貝寶至少沒有提供有用的答覆年齡! – RogerRoger