私は、単一の支払いを扱うクラスです彼らはいくつかのレベル に到達したときに、ユーザーへの支払いを送信するWebアプリケーションがあります。私は支払いをしようとするとペイパルの支払いは常に403エラーを返す
public function pagaSingoloAction(Request $request, $id_richiesta)
{
$richiesta_pagamento = $this->getDoctrine()->getRepository("AppBundle:RichiestaPagamento")->find($id_richiesta);
if ($richiesta_pagamento)
{
$logger = $this->get('logger');
$em = $this->getDoctrine()->getManager();
$tassa = $this->get('application.settings')->ritornaImpostazioneDaNome("percentuale_tasse_pagamenti_richieste");
if (!$tassa)
$tassa = 0;
$totale_richiesta_aggiornato = $richiesta_pagamento->getTotale();
$totale_tassa_decurtata_network = 0;
if ($tassa != 0)
{
$totale_tassa_decurtata_network = (($tassa/100) * $totale_richiesta_aggiornato);
$totale_richiesta_aggiornato = $totale_richiesta_aggiornato - $totale_tassa_decurtata_network;
}
$imp = new ImpostazioniApplicazione($this->getDoctrine());
$apiContext = new ApiContext(new OAuthTokenCredential(
$imp->getPaypalAppId(),
$imp->getPaypalAppSecret()
));
$apiContext->setConfig(array(
'mode' => $this->getParameter('paypal_mode'),
'log.LogEnabled' => true,
'log.FileName' => 'PayPal.log',
'log.LogLevel' => 'FINE'
));
$logger->info("SETTATA CONFIGURAZIONE API CONTEXT");
$payouts = new Payout();
$sender_batch_header = new PayoutSenderBatchHeader();
$sender_batch_header->setSenderBatchId(uniqid())
->setEmailSubject("New payment from request!");
$sender_item = new PayoutItem();
$sender_item->setRecipientType('EMAIL')
->setNote("Payment request n. " . $richiesta_pagamento->getId())
->setReceiver($richiesta_pagamento->getEmailPaypal())
->setSenderItemId(uniqid())
->setAmount(new Currency('{
"value" : "'. $totale_richiesta_aggiornato .'",
"currency" : "EUR"
}'));
$payouts->setSenderBatchHeader($sender_batch_header)
->addItem($sender_item);
$output = "";
try{
$output = $payouts->createSynchronous($apiContext, null);
$logger->error(var_export($output, true));
}catch (Exception $ex){
$logger->error($ex->getMessage());
}
$payout_item = $output->getItems()[0];
if ($payout_item->getTransactionStatus() == "SUCCESS")
{
//ITS ALL OK
}
return $this->render('pagamento_singolo_richiesta/singolo_pagamento_dettagli.html.twig', array(
'pagamento' => $pagamento_singolo,
));
}
else{
return $this->render('pagamento_singolo_richiesta/pagamento_errore.html.twig');
}
}
を:
try{
$output = $payouts->createSynchronous($apiContext, null);
$logger->error(var_export($output, true));
}catch (Exception $ex){
$logger->error($ex->getMessage());
}
私はいつも403 AUTORIZHATIONを取得しますが、1ヶ月前にはすべて素晴らしいです!
私は何が問題なのか理解できません...私はpaypalのドキュメントにphpサンプルコードでチェックしてあり、それは私のコードのように大丈夫です。
私のアプリケーションではsymfonyフレームワークを使用しています。 私は問題なく支払いを受けるが、私はお金を送ることはできない。
私はまた、すべてのバンドルとsymfony自体をアップグレードしようとしましたが、同じ問題は変わっていません。 PayPalのエラーログです :
[25-10-2016午前11時21分08秒]ペイパル\コア\ PayPalHttpConnection:INFO:応答ステータス:403 [25-10-2016午前11時21分08秒] PayPalの\ Core \ PayPalHttpConnection:エラー:https://api.paypal.com/v1/payments/payouts?sync_mode=trueにアクセスすると、HTTP応答コード403が表示されます。 {"name": "AUTHORIZATION_ERROR"、 "message": "承認エラーが発生しました"、 "debug_id": "3676075eac96e"、 "information_link": "https://developer.paypal.com/docs/api/payments.payouts-batch/#errors"}
返信ありがとうございます。 はい、私はチェックして、それはすべてOKです 私はまだ支払いを受け取ります –