我正在尝试让PayPal REST API使用存储在保险库中的信用卡创建付款.但是,每当我尝试使用保险箱中的卡付款时,PayPal的API将挂起大约半分钟,然后给我以下500错误:
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('43210'); $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,它似乎和我有同样的问题(我到了第4步,它打印出内部服务错误已经发生
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。