public function createSendInvoice() { $logger = new PPLoggingManager('CreateAndSendInvoice'); // ##CreateAndSendInvoiceRequest // Use the CreateAndSendInvoiceRequest message to create and send a new // invoice. The requester should authenticate the caller and verify that // the merchant requesting the invoice has an existing PayPal account in // good standing. Once the invoice is created, PayPal sends it to the // specified payer, who is notified of the pending invoice. // The code for the language in which errors are returned, which must be // en_US. $requestEnvelope = new RequestEnvelope(); $requestEnvelope->ErrorLanguage = "en_US"; $invoiceItemList = array(); // InvoiceItemType which takes mandatory params: // // * `Item Name` - SKU or name of the item. // * `Quantity` - Item count. // * `Amount` - Price of the item, in the currency specified by the // invoice. $invoiceItem = new InvoiceItemType("Item", "2", "4.00"); $invoiceItemList[0] = $invoiceItem; // Invoice item. $itemList = new InvoiceItemListType($invoiceItemList); // InvoiceType which takes mandatory params: // // * `Merchant Email` - Merchant email address. // * `Personal Email` - Payer email address. // * `InvoiceItemList` - List of items included in this invoice. // * `CurrencyCode` - Currency used for all invoice item amounts and // totals. // * `PaymentTerms` - Terms by which the invoice payment is due. It is // one of the following values: // * DueOnReceipt - Payment is due when the payer receives the invoice. // * DueOnDateSpecified - Payment is due on the date specified in the // invoice. // * Net10 - Payment is due 10 days from the invoice date. // * Net15 - Payment is due 15 days from the invoice date. // * Net30 - Payment is due 30 days from the invoice date. // * Net45 - Payment is due 45 days from the invoice date. $invoice = new InvoiceType("*****@*****.**", "*****@*****.**", $itemList, "USD", "DueOnReceipt"); // CreateAndSendInvoiceRequest which takes mandatory params: // // * `Request Envelope` - Information common to each API operation, such // as the language in which an error message is returned. // * `Invoice` - Merchant, payer, and invoice information. $createAndSendInvoiceRequest = new CreateAndSendInvoiceRequest($requestEnvelope, $invoice); // ## Creating service wrapper object // Creating service wrapper object to make API call and loading // configuration file for your credentials and endpoint $service = new InvoiceService(); try { // ## Making API call // Invoke the appropriate method corresponding to API in service // wrapper object $response = $service->CreateAndSendInvoice($createAndSendInvoiceRequest); } catch (Exception $ex) { $logger->error("Error Message : " . $ex->getMessage()); } // ## Accessing response parameters // You can access the response parameters using variables in // response object as shown below // ### Success values if ($response->responseEnvelope->ack == "Success") { // ID of the created invoice. $logger->log("Invoice ID : " . $response->invoiceID); } else { $logger->error("API Error Message : " . $response->error[0]->message); } return $response; }
configuration file for your credentials and endpoint */ $invoiceService = new InvoiceService(Configuration::getAcctAndConfig()); // required in third party permissioning if ($_POST['accessToken'] != null && $_POST['tokenSecret'] != null) { $cred = new PPSignatureCredential(USERNAME, PASSWORD, SIGNATURE); $cred->setThirdPartyAuthorization(new PPTokenAuthorization($_POST['accessToken'], $_POST['tokenSecret'])); } try { /* * ## Making API call Invoke the appropriate method corresponding to API in service wrapper object */ if ($_POST['accessToken'] != null && $_POST['tokenSecret'] != null) { $createAndSendInvoiceResponse = $invoiceService->CreateAndSendInvoice($createAndSendInvoiceRequest, $cred); } else { $createAndSendInvoiceResponse = $invoiceService->CreateAndSendInvoice($createAndSendInvoiceRequest); } } catch (Exception $ex) { require_once 'error.php'; exit; } echo "<table>"; echo "<tr><td>Ack :</td><td><div id='Ack'>" . $createAndSendInvoiceResponse->responseEnvelope->ack . "</div> </td></tr>"; echo "<tr><td>InvoiceID :</td><td><div id='InvoiceID'>" . $createAndSendInvoiceResponse->invoiceID . "</div> </td></tr>"; echo "</table>"; require 'ShowAllResponse.php'; echo "<pre>"; var_dump($createAndSendInvoiceResponse); echo "</pre>";
/** * @test */ public function testCreateAndSendInvoice() { $item1 = new InvoiceItemType('item_name1', '1', '1'); $item2 = new InvoiceItemType('item_name2', '2', '2'); $items = array($item1, $item2); $itemList = new InvoiceItemListType(); $itemList->item = $items; $invoice = new InvoiceType('*****@*****.**', '*****@*****.**', $itemList, 'USD', 'DueOnReceipt'); $requestEnvelope = new RequestEnvelope(); $requestEnvelope->errorLanguage = "en_US"; $createInvoiceRequest = new CreateInvoiceRequest($requestEnvelope, $invoice); $invoice_service = new InvoiceService(); $ret = $invoice_service->CreateAndSendInvoice($createInvoiceRequest, 'jb-us-seller_api1.paypal.com'); $this->assertNotNull($ret); $this->assertNotNull($ret->invoiceID); $this->assertEquals(0, count($ret->error)); }
// create request object $item1 = new InvoiceItemType($_POST['item_name1'], $_POST['item_quantity1'], $_POST['item_unitPrice1']); $item2 = new InvoiceItemType($_POST['item_name2'], $_POST['item_quantity2'], $_POST['item_unitPrice2']); $itemList = new InvoiceItemListType(); $itemList->item = array($item1, $item2); $invoice = new InvoiceType($_POST['merchantEmail'], $_POST['payerEmail'], $itemList, $_POST['currencyCode'], $_POST['paymentTerms']); $requestEnvelope = new RequestEnvelope("en_US"); $createAndSendInvoiceRequest = new CreateAndSendInvoiceRequest($requestEnvelope, $invoice); $logger->info("created CreateAndSendInvoiceRequest Object"); $invoiceService = new InvoiceService(); // required in third party permissioning if ($_POST['accessToken'] != null && $_POST['tokenSecret'] != null) { $invoiceService->setAccessToken($_POST['accessToken']); $invoiceService->setTokenSecret($_POST['tokenSecret']); } $createAndSendInvoiceResponse = $invoiceService->CreateAndSendInvoice($createAndSendInvoiceRequest, 'jb-us-seller_api1.paypal.com'); $logger->info("Received CreateAndSendInvoiceResponse:"); var_dump($createAndSendInvoiceResponse); } else { ?> <form method="POST"> <div id="apidetails">The CreateAndSendInvoice API combines the functionality of CreateInvoice and SendInvoice.</div> <div class="params"> <div class="param_name">Merchant Email</div> <div class="param_value"><input type="text" name="merchantEmail" value="*****@*****.**" size="50" maxlength="260" /></div> <div class="param_name">Payer Email</div> <div class="param_value"><input type="text" name="payerEmail" value="*****@*****.**" size="50" maxlength="260" /></div> <div class="param_name">Item Name1</div>