Getting the Payer Information in PayPal Classic API - paypal

I am using at the moment the Classic API from PayPal to create a one time payment, however when I called the GetExpressCheckoutDetails, I don't receive any information about the Payer.
Notice: I am using Google Go as a programming language

It depends on when you call GetEC. GetEC (GetExpressCheckoutDetails) doesn't necessarily respond with the payer info, because the payer may not be present yet.
Payer info and Payer ID are only available once the payer agrees to pay (he/she signs into PP and fills in the right info and clicks the Continue or Pay button), which means in this case you'd be calling GetEC AFTER the payer agrees to pay and gets back to your system for DoEC. This way GetEC will give you payer info.
Here is GetEC doc:
https://developer.paypal.com/docs/classic/api/merchant/GetExpressCheckoutDetails_API_Operation_NVP/

Related

Handle recurring payments with paypal

I'am having troubles about how to handle the paypal recurrent payment system.
I followed every instruction in the website, but once i create the profile, paypal puts it in pending, making me doubt about the reliability of the service itself.
I tried to look over the internet but i didn't really get how this should work...
i made the first call with SetExpressCheckout in order to create the request, when the token is returned, i send the token to the paypal page, the user confirms the payment, then i call the CreateRecurringPaymentsProfile method to confirm the operation (passing PAYERID and TOKEN and setting the AMT value for the first payment and the PROFILESTARTDATE as now +1 month for the future payments)
Now when i try to read the response from the last call (or if i go to the buyer/seller paypal account) i see that the payment is in pending and i have to wait an undefined amount of time before this payment is activated.
Now the real question is: can i trust the fact that even if the payment is in pending, i'll receive the payment and so i can set set the user as member or i have to check and wait until the status is 'active' with the GetRecurringPaymentsProfileDetails method?
PS: i'm doing this in the sandbox version, maybe the official version is a bit faster and more reliable?
Thank you!
In Sandbox as in Live when you call CreateRecurringPaymentsProfile you will also get the response in which it will give you the status of the profile (ActiveProfile or PendingProfile). When the status is in Penidng it means that the system is in process of creating the recurring payment profile. You can then check your IPN messages for an update. It is normal but obviously if you notice that all the profiles you create get into Pending and never activate then there could be a bug but should not be the case. In here is the PayPal technical guide for this API: https://developer.paypal.com/docs/classic/api/merchant/CreateRecurringPaymentsProfile_API_Operation_NVP/

Can i use pre-approval using PayPal website payments pro?

I am making a system in which user permits pre-approval of amount. I've used pre-approval with chained payment. But the problem is that my customer gets redirected to PayPal site and also he/she must have a PayPal account or need to create one. So can i make pre-approval payment using PayPal website payment pro? So my customers will not get redirected to PayPal account. And the process becomes more fast? Note :- I don't want to use authorization and capture method. Thanks.
Edit
One more question :- If i make the website in the UK and the currency in GBP, can I still use the American Paypal account for this?
Auth and Capture is what you're asking for, but then you say you don't want it..?? That's what gives you the functionality you're after, though.
You could do a $0 auth and then run DoReferenceTransaction when you're ready to process the payment as opposed to capturing an actual auth if you want.
Those are your only options when working with Pro, though, and it would give you the same sort of preapproval experience for the buyer.
Here are the steps to accomplish what you're after.
Use DoDirectPayment to run a $0 Authorization (card verification). Users will enter their credit card details directly into a form on your site without any redirection to PayPal (and without any knowledge PayPal is being used at all unless you notify them some way.)
Save the transaction ID that you get form this card verification into your transaction history for the customer in your database. This ID is what will be used to process future payments using that credit card.
When you're ready to process a payment for this customer, pull the ID out of the database and use it with a DoReferenceTransaction request to process any amount you need to.
So the card verification is your preapproval, and then running reference transactions are the same as running Pay requests with a Preapproval key. Both methods accomplish the same thing, but one is with direct credit cards and the other is not.
If you're using PHP you can use this PayPal PHP SDK to make all of the API calls very quick and easy for you. If you're using some other language then there are SDKs available for those as well I'm sure.
Please correct me if i am wrong, #Andrew Angell #Ved Pandya
Auth and Capture or Capture payments later method allows you to do direct payment, but it comes with additional charges, which might not suitable for crowdfunding model as refund/ cancel payment is very frequent
Auth and Capture: You are required to pay $0.30 for each "Card Verification Transactions"
Capture payments later: You are required to pay $0.30 for each "Uncaptured Authorization" that you triggered
https://www.paypal.com/us/webapps/mpp/merchant-fees

Which paypal method should be used for direct / indirect payment?

I am working on one website which has 2 mode of payment for already generated invoice by website.
Method 1. User log in to site, click on invoice and Pay. For this method i have to follow which method where user come back to site with additional parameter i have sent?
Method 2. If user has provided his credit card details, then with help of cronjob / schedule task, payment should be processed and it should notify to website (IPN). For this method i have to follow which method? This is not recurring payment.
Thank you
You could use the DoDirectPayment API for both. This would allow you to process a charge at the time the buyer is checking out, or later through your cron job. Keep in mind that the DoDirectPayment API will only let the buyer pay with a credit card though. If you are wanting the buyer to be able to pay with their PayPal account as well, then you would need to also use Express Checkout.

What does payment status "EXPIRED" in PayPal Adaptive Payments mean?

I have several PayPal Adaptive payments with an "EXPIRED" status (in an application that accepts payments on behalf of a seller). They are explicitly approved payments, meaning money changes hands as soon as the sender accepts the payment.
The documentation for the PaymentDetails API call doesn't mention EXPIRED in the list of possible statuses.
Could you direct me to some other documentation or explain what this status means?
Some more googling brought up this forum thread:
A status of expired means that a PayKey has expired and cannot be used. A PayKey has a life of three hours, after which it cannot be used to complete the payment.
If this occurs you will need to generate a new PayKey with a new trackingID using the Pay API call as you did previously. The reason the tracking ID is not released back and allowed to be used again is because it would cause issues with dublicate tracking ID's in yours and our system.
So, an EXPIRED Adaptive Payment is one that has been created but never paid, so you can safely create a duplicate new one instead.

Transfer amount to credit card from paypal

I have stuck into the problem of related to transfer amount back to credit card from paypal when user cancel his/her transaction. I don't want to use paypal refund feature in our application. My client requires to send back amount at the same time when user cancel his/her transaction.
Can anyone guide me to complete this feature or is there any API to solve such type of feature.
Thanks in advance.
Dewan
I don't want to use paypal refund feature in our application. My
client requires to send back amount at the same time when user cancel
his/her transaction.
How PayPal Refunds
You don't want to use PayPal's refund feature, but you want to send money back to the buyer? This is called a refund. I am sure you are mistaking how PayPal refunds money. If the user pays with a credit card, they are refunded to their credit card. If they pay with a bank account or PayPal account, they are refunded to their PayPal account.
API calls that refund buyers
DoNonReferencedCredit would refund to a credit card you specify, everytime, and you do not need a transaction ID.
In a scenario where the buyer no longer has a card that was
associated with a transaction, or the time allotted for a refund in
PayPal has passed, you would want to use the DoNonReferencedCredit
API.
RefundTransaction would refund the funding source as described in the "How PayPal Refunds" paragraph.
If your main concern is to issue a refund, via API, you have a transaction ID (you say a payment has been completed so you should have a transaction ID), AND PayPal's refund time has not passed, you should use the RefundTransaction API.
You might be able to use something like DoNonReferencedCredit from the paypal API - but I'm not 100% sure on that.