Я использую PayPal SDK для PHP, пытаюсь отменить счет-фактуру, возвращенный результат — «истина», исключение не возвращается, но счет-фактура не отменяется. Пожалуйста, не могли бы вы сказать мне, если есть ошибка в моем коде?
$Invoice = new Invoice();
try {
$invoice = $Invoice->get($id_invoice, $apiContext);
$notify = new CancelNotification();
$notify->setSubject("Past due")
->setNote("Canceling invoice")
->setSendToMerchant(true)
->setSendToPayer(true);
$result = $Invoice->cancel($notify, $apiContext);
} catch (Exception $ex) {
$result = self::getException($ex);
}
return $result;
Сначала получите объект счета как это:
$invoice = Invoice::get($invoiceId, $apiContext);
Затем вы можете сделать следующее, чтобы отменить его.
// ### Cancel Notification Object
// This would send a notification to both merchant as well
// the payer about the cancellation. The information of
// merchant and payer is retrieved from the invoice details
$notify = new CancelNotification();
$notify
->setSubject("Past due")
->setNote("Canceling invoice")
->setSendToMerchant(true)
->setSendToPayer(true);
// ### Cancel Invoice
// Cancel invoice object by calling the
// static `cancel` method
// on the Invoice class by passing a valid
// notification object
// (See bootstrap.php for more on `ApiContext`)
$cancelStatus = $invoice->cancel($notify, $apiContext);
Кроме того, чтобы проверить код, вы всегда можете запустить образцы, и проверить это самостоятельно, просто нажав кнопку.
Я управлял образец для отмены счет-фактура, а затем использовать аналогичную информацию, предоставленную обратно при получении ответа на счет-фактуру:
"metadata": {
"created_date": "2015-02-04 13:12:33 PST",
"first_sent_date": "2015-02-04 13:12:34 PST",
"last_sent_date": "2015-02-04 13:12:34 PST",
"payer_view_url": "https://www.sandbox.paypal.com/cgi_bin/webscr?cmd=_pay-inv&viewtype=altview&id=INV2-6S46-MLLN-3FEA-VLZE"}
Открытие URL показало мне, что счет был отменен, как показано ниже:
Других решений пока нет …