I am trying to integrate PayPal task into my web app using the Rest API and PHP and having trouble deleting an invoice - I have been successful creating the invoice but in the sample DeleteInvoice.php it includes CreateInvoice.php - I am confused - seems to me I should only need to submit an InvoiceID to delete an Invoice - I am getting error messages that all the CreateInvoice.php elements are empty... can someone explain exactly what vars I need to send to DeleteInvoice.php ?
Related
I am hoping someone here can help me as I have been on to PayPal technical support who haven't been very helpful.
I am integrating PayPal checkout, following the instructions here: https://developer.paypal.com/docs/checkout/standard/integrate/
I wish to collect the paypal transaction ID in my database, send order confirmation emails etc... so as such I need to implement the optional step 5 described in this integration guide, which essentially means creating two routes on my server, one to call "create order" and one to call "capture order" - as per the sample code here: https://developer.paypal.com/demo/checkout/#/pattern/server
I have got this working successfully however I wish to know 2 things:
How can I see the 3D Secure flow - PayPal tell me know to worry about it as they handle it within the popup window but I would like to see the flow. I have tried test cards that should invoke the 3DS flow but they dont show any 3DS flow, just complete the payment.
The response to the capture order end point can return multiple statuses (COMPLETED, APPROVED, VOIDED, PAYER_ACTION_REQUIRED etc). Is it only the "COMPLETED" status that means a fully completed payment (and therefore I should complete the order)? What happens if it returns "PAYER_ACTION_REQUIRED" - which means 3DS check needed - will PayPal handle this and then re-execute my route?
Any help or advice would be greatly appreciated.
For the normal, 'Standard' integration, you don't have to test 3DS. The PayPal page/iframe already takes care of everything about it.
[Only for the 'Advanced' integration -- where you are implementing individual hosted card fields with your own styling -- do you need to implement and test 3DS yourself]
PAYER_ACTION_REQUIRED only happens with Advanced. All you need to do on the server end after the capture is check for COMPLETED and the existence of the Capture Id you're going to store for accounting purposes.
I could not find info in the documentation on how to grab an order id out of the capture id that I receive from the daily transaction detail report. The only way I found was to check the links field in the capture after the capture gets the request, however, that does not seem like the best way to do it.
Does anyone know how to achieve it directly?
If you are using the Orders V2 API, the Order ID is only used during checkout approval. It is not persisted after transaction creation, and looking up captured payment details with the transaction/capture id: https://developer.paypal.com/docs/api/payments/v2/#captures_get , will not return the Order ID used during checkout, since it is not useful for anything at that point.
UPDATE: After troubleshooting on postman, I've found that start_date and end_date are nessesary fields. Everything now works fine on postman with 200 code. However I am still getting a 400 error on zapier...
I've managed to POST my API credentials and generate an access-token from the previous step in my zap sequence using a Webhook. I then used this token in a GET Webhook in the next step to try and retrieve transaction information (PayPal processing fee, etc...) using transaction_id and fields queries. The transaction ID I am using is being pulled from an actual Woocommerce order on our store, where the customer decided to use PayPal (I've also searched the ID in paypal and it is valid).
The reason I'm doing this is to try and pull extra information from PayPal- Such as payment processing fees about the transaction that Woocommerce does not provide through their app on Zapier.
Unfortunately I am seeing the following error 'The app returned "Invalid request - see details."'
I suspect it is because I am calling for the information incorrectly. In my mind, I am using transaction_id as the unique identifier for the specific transaction, and fields to retrieve all information regarding the transaction.
Error code in Zapier: "Status Code 400 Bad Request" - PayPal docs state: "INVALID_REQUEST. Request is not well-formed, syntactically incorrect, or violates schema"
Update: If you use this method to pull transaction information, you will need to set a delay long enough where the activity time on your paypal dashboard switches from a time to a date (meaning it is the next day). If you don't do this, no important information will be pulled.
I've figured it out. If anyone has a similar issue, set it up like this (probably use more dynamic dates though):
I am trying to show the customer's purchase order number in the order-fulfilled email template. It's my own template design with the standard tags that netsuite provides.
I sent them a ticket asking if they have a tag like that, and apparently they do not. They said that feature in unavailable.
Is there a way that I can put a code into the email template that when the customer reads their email, they can view their purchase order number?
that's our customer's #1 question in regards to all the calls that we get is what their purchase order is. This can definitely help us out. I'm new to netsuite so I still do not know how to code around it or create a new tag.
Should work - This is the Live version we use. Like they said, NLTRANID...but that is our PO reference for them which is our internal number...your client likely wants their clients' Reference PO numbers for b2b transaction transparency.
To:
<NLBILLADDRESS>
We are sending you the Purchase Order No <NLTRANID> as PDF attachment
Try this one too: <NLOTHERREFNUM>
I had successfully integrated Paypal with my iPhone application, but I got stuck over passing the Custom variable via SOAP to Pay pal using IPN Message.
Has anyone pass the Custom Variable to Pay-pal Server????I am making an application for a restaurant,user can make payment using Pay-pal server.
I need to pass the Custom variable (i.e Bucket Id) to Paypal. I get this Bucket Id via web service which I call before making request to pay pal server. Now I need to pass this Bucket Id as Custom Variable to Paypal Server so that it returns the Message Notification.
Note: - I need to make payment using this Bucket Id.
At last when I will get this Notification , I will again call web-service which is going to update the server database of client.
I used this reference:
https://cms.paypal.com/cms_content/US/en_US/files/developer/IPNGuide.pdf
Any kind of help is welcomed.....
Please suggest me with some sample code as I had googled alot about this or other reference....
I find out the solution. But for Android, but I think it can be applied to iOS:
PayPalPayment payment = new PayPalPayment();
payment.setCurrencyType("USD");
payment.setSubtotal(3.30);
payment.setRecipient("test_seller11#gmail.com");
payment.setPaymentType(PayPal.PAYMENT_TYPE_GOODS);
payment.setCustomID("7982");
payment.setIpnUrl("some.site.com/PaymentCallback");
payment.setDescription("Buy 300 coins");
So this is the solution, to pass your extra params to IPN, and to get them back in callback on your server:
payment.setCustomID("7982");