2015-02-04 6 views
0

PHP 용 PayPal SDK를 사용 중입니다. 인보이스를 취소하려고합니다. 반환되는 결과는 "true"이며 예외는 반환되지 않지만 인보이스는 취소되지 않습니다. . 내 코드에 오류가 있는지 말해 줄 수 있습니까?PayPal PHP SDK - 인보이스 취소 기능이 작동하지 않음

$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; 

답변

0

첫 번째는 다음과 같이 송장 개체를 얻을 :

$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); 

, 당신은 항상 samples를 실행할 수, 코드를 테스트, 단지 버튼을 클릭하여, 스스로를 테스트합니다.

은 내가 sample to cancel 송장을 실행 한 후 송장의 GET 응답에 다시 제공되는 유사한 정보를 사용하십시오 URL 열기

"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" 
} 

enter image description here

아래 그림과 같이 송장이 취소 된 것을 나에게 보여 주었다을 :

enter image description here

+0

멋진! 고마워! – Roilld

+0

위대한 !! 이 설명을 답으로 표시 할 수 있는지 확인하십시오. 비슷한 문제가있는 다른 개발자에게 도움이 될 수 있습니다. –