| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457 |
- <?php
- namespace Srmklive\PayPal\Tests\Mocks\Requests;
- use GuzzleHttp\Utils;
- trait Invoices
- {
- /**
- * @return array
- */
- private function createInvoiceParams(): array
- {
- return Utils::jsonDecode('{
- "detail": {
- "invoice_number": "#123",
- "reference": "deal-ref",
- "invoice_date": "2018-11-12",
- "currency_code": "USD",
- "note": "Thank you for your business.",
- "term": "No refunds after 30 days.",
- "memo": "This is a long contract",
- "payment_term": {
- "term_type": "NET_10",
- "due_date": "2018-11-22"
- }
- },
- "invoicer": {
- "name": {
- "given_name": "David",
- "surname": "Larusso"
- },
- "address": {
- "address_line_1": "1234 First Street",
- "address_line_2": "337673 Hillside Court",
- "admin_area_2": "Anytown",
- "admin_area_1": "CA",
- "postal_code": "98765",
- "country_code": "US"
- },
- "email_address": "merchant@example.com",
- "phones": [
- {
- "country_code": "001",
- "national_number": "4085551234",
- "phone_type": "MOBILE"
- }
- ],
- "website": "www.test.com",
- "tax_id": "ABcNkWSfb5ICTt73nD3QON1fnnpgNKBy- Jb5SeuGj185MNNw6g",
- "logo_url": "https://example.com/logo.PNG",
- "additional_notes": "2-4"
- },
- "primary_recipients": [
- {
- "billing_info": {
- "name": {
- "given_name": "Stephanie",
- "surname": "Meyers"
- },
- "address": {
- "address_line_1": "1234 Main Street",
- "admin_area_2": "Anytown",
- "admin_area_1": "CA",
- "postal_code": "98765",
- "country_code": "US"
- },
- "email_address": "bill-me@example.com",
- "phones": [
- {
- "country_code": "001",
- "national_number": "4884551234",
- "phone_type": "HOME"
- }
- ],
- "additional_info_value": "add-info"
- },
- "shipping_info": {
- "name": {
- "given_name": "Stephanie",
- "surname": "Meyers"
- },
- "address": {
- "address_line_1": "1234 Main Street",
- "admin_area_2": "Anytown",
- "admin_area_1": "CA",
- "postal_code": "98765",
- "country_code": "US"
- }
- }
- }
- ],
- "items": [
- {
- "name": "Yoga Mat",
- "description": "Elastic mat to practice yoga.",
- "quantity": "1",
- "unit_amount": {
- "currency_code": "USD",
- "value": "50.00"
- },
- "tax": {
- "name": "Sales Tax",
- "percent": "7.25"
- },
- "discount": {
- "percent": "5"
- },
- "unit_of_measure": "QUANTITY"
- },
- {
- "name": "Yoga t-shirt",
- "quantity": "1",
- "unit_amount": {
- "currency_code": "USD",
- "value": "10.00"
- },
- "tax": {
- "name": "Sales Tax",
- "percent": "7.25"
- },
- "discount": {
- "amount": {
- "currency_code": "USD",
- "value": "5.00"
- }
- },
- "unit_of_measure": "QUANTITY"
- }
- ],
- "configuration": {
- "partial_payment": {
- "allow_partial_payment": true,
- "minimum_amount_due": {
- "currency_code": "USD",
- "value": "20.00"
- }
- },
- "allow_tip": true,
- "tax_calculated_after_discount": true,
- "tax_inclusive": false,
- "template_id": "TEMP-19V05281TU309413B"
- },
- "amount": {
- "breakdown": {
- "custom": {
- "label": "Packing Charges",
- "amount": {
- "currency_code": "USD",
- "value": "10.00"
- }
- },
- "shipping": {
- "amount": {
- "currency_code": "USD",
- "value": "10.00"
- },
- "tax": {
- "name": "Sales Tax",
- "percent": "7.25"
- }
- },
- "discount": {
- "invoice_discount": {
- "percent": "5"
- }
- }
- }
- }
- }', true);
- }
- /**
- * @return array
- */
- private function updateInvoiceParams(): array
- {
- return Utils::jsonDecode('{
- "id": "INV2-C82X-JNN9-Y6S5-CNXW",
- "status": "DRAFT",
- "detail": {
- "invoice_number": "#123",
- "reference": "deal-refernce-update",
- "invoice_date": "2018-11-12",
- "currency_code": "USD",
- "note": "Thank you for your business.",
- "term": "No refunds after 30 days.",
- "memo": "This is a long contract",
- "payment_term": {
- "term_type": "NET_10",
- "due_date": "2018-11-22"
- }
- },
- "invoicer": {
- "name": {
- "given_name": "David",
- "surname": "Larusso"
- },
- "address": {
- "address_line_1": "1234 First Street",
- "address_line_2": "337673 Hillside Court",
- "admin_area_2": "Anytown",
- "admin_area_1": "CA",
- "postal_code": "98765",
- "country_code": "US"
- },
- "email_address": "merchant@example.com",
- "phones": [
- {
- "country_code": "001",
- "national_number": "4085551234",
- "phone_type": "MOBILE"
- }
- ],
- "website": "www.test.com",
- "tax_id": "ABcNkWSfb5ICTt73nD3QON1fnnpgNKBy-Jb5SeuGj185MNNw6g",
- "logo_url": "https://example.com/logo.PNG",
- "additional_notes": "2-4"
- },
- "primary_recipients": [
- {
- "billing_info": {
- "name": {
- "given_name": "Stephanie",
- "surname": "Meyers"
- },
- "address": {
- "address_line_1": "1234 Main Street",
- "admin_area_2": "Anytown",
- "admin_area_1": "CA",
- "postal_code": "98765",
- "country_code": "US"
- },
- "email_address": "bill-me@example.com",
- "phones": [
- {
- "country_code": "001",
- "national_number": "4884551234",
- "phone_type": "HOME"
- }
- ],
- "additional_info_value": "add-info"
- },
- "shipping_info": {
- "name": {
- "given_name": "Stephanie",
- "surname": "Meyers"
- },
- "address": {
- "address_line_1": "1234 Main Street",
- "admin_area_2": "Anytown",
- "admin_area_1": "CA",
- "postal_code": "98765",
- "country_code": "US"
- }
- }
- }
- ],
- "items": [
- {
- "name": "Yoga Mat",
- "description": "Elastic mat to practice yoga.",
- "quantity": "1",
- "unit_amount": {
- "currency_code": "USD",
- "value": "50.00"
- },
- "tax": {
- "name": "Sales Tax",
- "percent": "7.25",
- "amount": {
- "currency_code": "USD",
- "value": "3.27"
- }
- },
- "discount": {
- "percent": "5",
- "amount": {
- "currency_code": "USD",
- "value": "2.5"
- }
- },
- "unit_of_measure": "QUANTITY"
- },
- {
- "name": "Yoga t-shirt",
- "quantity": "1",
- "unit_amount": {
- "currency_code": "USD",
- "value": "10.00"
- },
- "tax": {
- "name": "Sales Tax",
- "percent": "7.25",
- "amount": {
- "currency_code": "USD",
- "value": "0.34"
- }
- },
- "discount": {
- "amount": {
- "currency_code": "USD",
- "value": "5.00"
- }
- },
- "unit_of_measure": "QUANTITY"
- }
- ],
- "configuration": {
- "partial_payment": {
- "allow_partial_payment": true,
- "minimum_amount_due": {
- "currency_code": "USD",
- "value": "20.00"
- }
- },
- "allow_tip": true,
- "tax_calculated_after_discount": true,
- "tax_inclusive": false,
- "template_id": "TEMP-19V05281TU309413B"
- },
- "amount": {
- "currency_code": "USD",
- "value": "74.21",
- "breakdown": {
- "item_total": {
- "currency_code": "USD",
- "value": "60.00"
- },
- "custom": {
- "label": "Packing Charges",
- "amount": {
- "currency_code": "USD",
- "value": "10.00"
- }
- },
- "shipping": {
- "amount": {
- "currency_code": "USD",
- "value": "10.00"
- },
- "tax": {
- "name": "Sales Tax",
- "percent": "7.25",
- "amount": {
- "currency_code": "USD",
- "value": "0.73"
- }
- }
- },
- "discount": {
- "item_discount": {
- "currency_code": "USD",
- "value": "-7.50"
- },
- "invoice_discount": {
- "percent": "5",
- "amount": {
- "currency_code": "USD",
- "value": "-2.63"
- }
- }
- },
- "tax_total": {
- "currency_code": "USD",
- "value": "4.34"
- }
- }
- }
- }', true);
- }
- /**
- * @return array
- */
- private function cancelInvoiceParams(): array
- {
- return Utils::jsonDecode('{
- "subject": "Invoice Cancelled",
- "note": "Cancelling the invoice",
- "send_to_invoicer": true,
- "send_to_recipient": true,
- "additional_recipients": [
- "user@example.com"
- ]
- }', true);
- }
- /**
- * @return array
- */
- private function generateQRCodeInvoiceParams(): array
- {
- return Utils::jsonDecode('{
- "width": 400,
- "height": 400
- }', true);
- }
- /**
- * @return array
- */
- private function registerInvoicePaymentParams(): array
- {
- return Utils::jsonDecode('{
- "width": 400,
- "height": 400
- }', true);
- }
- /**
- * @return array
- */
- private function refundInvoicePaymentParams(): array
- {
- return Utils::jsonDecode('{
- "method": "BANK_TRANSFER",
- "refund_date": "2018-05-21",
- "amount": {
- "currency_code": "USD",
- "value": "5.00"
- }
- }', true);
- }
- /**
- * @return array
- */
- private function sendInvoiceParams(): array
- {
- return Utils::jsonDecode('{
- "subject": "Payment due for the invoice #ABC-123",
- "note": "Please pay before the due date to avoid incurring late payment charges which will be adjusted in the next bill generated.",
- "send_to_invoicer": true,
- "additional_recipients": [
- "customer-a@example.com",
- "customer@example.com"
- ]
- }', true);
- }
- /**
- * @return array
- */
- private function sendInvoiceReminderParams(): array
- {
- return Utils::jsonDecode('{
- "subject": "Reminder: Payment due for the invoice #ABC-123",
- "note": "Please pay before the due date to avoid incurring late payment charges which will be adjusted in the next bill generated.",
- "send_to_invoicer": true,
- "additional_recipients": [
- "customer-a@example.com",
- "customer@example.com"
- ]
- }', true);
- }
- }
|