Is there any way to set the language of the errors returned by PayPal when processing a Direct Payment API call?
I've tried with:
LOCALECODE=es_US
to show them in spanish, but no luck. I called PayPal Support and the person said he didn't know, that I should ask in the forums ?!?!?
Anyone knows how to do this?
PayPal is not going to return the error message back in the selected language for the buyer. If you are wanting language specific errors, you would need to create your own database. Then based on the country, and the error number that is returned you can display the correct error message in that particular language.
You are probably looking for this , or at least I think that the person to whom you were talking was suggesting this kind of approach.
Remember that you are handling moneys and payments here, if you are not sure about what are you doing spend some months/years to refine your approach.
Related
I'm using ASP.Net Membership Provider for logging into the premium content of this web site. The content isn't downloads, it's web pages of information and discounts, etc. That part is done. We want them to also have a PayPal Subscription annual payment to see the premium content. I would like ASP Membership and PayPal Subscription to work together as much as possible, but for the minimum I am thinking they will have to create a MemberId before they pay. Then I will send that MemberId to PayPal to associate the two.
I think I can do that like this:
Set "Auto Return" on in the interface so that it will redirect to return URL when payment is made.
Set "return URL" query string to MemberId. This requires not using the precompiled "Saved" buttons. I'll have to set it in Code Behind with Name Value Pairs, "NVP" to PayPal. I was hoping to just paste the stupid button.
But then, there were those "Advanced Variables" in the Button maker. Problem was they are compiled into the Saved button, so I can't change them for each person. But maybe that one parameter could be separate from the compiled parameters? Is this better than hacking the return URL? Are "Advanced Variables" good for anything?
All the details about the transaction will be POSTed to the return URL if I put in the right code, which might be rm=2. (Right?) Then I can record it.
This process is said to be unreliable, though, and PayPal recommends using a secondary system that they have, "IPN". PayPal sends the transaction details to me. I send them back http 200 code. Then I send it back to them in the same order I got it. Then they send me http 200. Then we all know it's good. This sounds like a few hours research to me, but if you've already done it once, it sounds like copy and paste. I hate reinventing the wheel. Is there a .Net sample of this IPN handshake/dance?
Also, if I do the IPN thing, maybe I don't need Auto Return. Maybe I add MemberId to "notify" URL instead of "return" URL. Then PayPal can handle the confirmation page, email, etc. Is that better?
Assuming we get the Subscription paid for and recorded with the MemberId, at least once per user session, after they log in, I have to check if they have paid their PayPal subscription and if it's up to date. "GetRecurringPaymentsProfileDetails" does this, but it is an API operation. That makes sense, but I was hoping to avoid learning their REST API. (Is there a "NVP" version?)
REST API OAUTH tokens expire every few minutes, but the only way it tells to get one is by using "Bash" to "cURL" some Linux commands. Again, this seems like the kind of thing that would only ever have to be written once. Does this already exist as a sample code somewhere?
(I don't want to use the API to do the Subscribe, because I don't want the Credit Card numbers to ever go to our site. Too much liability. That's why I wanted PayPal.)
Will this even work? I know PayPal has 18 ways to do everything and they all exclude each other, and I'm just getting the feeling that I'm creating a patchwork of unrelated ideas to fool myself into believing there's a light at the end of the tunnel. I've already been researching and experimenting for 10 hours or so. I really thought, going in, I'd just be pasting a stupid button.
If you want to just "copy the stupid button" then you'll have to stick to Payments Standard, and then you'll be limited with what you can do. For example, you won't be able to use GetRecurringPaymentsProfileDetails for a standard subscription.
Instead, you'll need to use Express Checkout and / or Payments Pro. There is indeed an NVP API available for these, and there is also a SOAP/XML version. Details on those can be found here: https://developer.paypal.com/docs/classic/api/
Specifically, for Express Checkout, you'll want SetExpressCheckout, GetExpressCheckoutDetails, DoExpressCheckoutPayment, and CreateRecurringPaymentsProfile. Some of those calls are optional depending on how exactly you're configuring things with the checkout flow.
For Payments Pro you'll use either DoDirectPayment / CreateRecurringPaymentsProfile or PayFlow depending on what version they put you on.
In any case, IPN is definitely the way to go for post-transaction processing.
.NET IPN Sample - https://github.com/paypal/ipn-code-samples/blob/master/paypal_ipn.asp
Couple of issues I'm hoping the community can shed some light on here...
It seems impossible to customize the "Description" that appears in the payment review screen - It always shows the primary receiver's name. I have used the SetPaymentOptions call and that does not do anything useful.
I have found that the embedded flow URL will show the details (sort of...you have to expand the details), however the receiver's name(s) will be shown above each of the detailed items. I guess this makes sense, but it would be nice on the non-embedded flow method to be able to customize this "Description"...anyone have any experience here?
Second is the fact that it seems you can't get the details (shipping address) even if you request that the you force the user to enter a shipping address.
I have not been able to find a way to retrieve the user's address after the payment has been authorized using adaptive payments. Again anyone have experience here to say it can or can't be done?
Thanks all...
I could be wrong, but I think you can only set the item name? Via, SetPaymentOptions - like so:
receiverOptions.invoiceData.item(0).name=ITEM1 TITLE (or desc)
That being said - I'm not having a huge amount of luck getting the SetPaymentOptions function to work for me (no errors, but it just doesn't seem to apply the changes I'm passing it)
UPDATE - I just came across this setting for SetPaymentOptions - hopefully that helps:
ReceiverOptions - description - xs:string
Here we have long list of paypal errors
This list is asolutely unusable. For some errors "Short Message" should be shown to the user, for some errors "Long Message". Part of errors should be described to users in some cases we have to redirect user to Paypal. Can anybody suggest php library to process all these errors?
I don't think any such library exists at this time (and yes, some Paypal errors leave much to be desired). The closest I could find was this JSON Object, but it doesn't improve on the messages, only rehashes them. Maybe consider creating one and putting it in GitHub for public use?
we are dealing with heavy chargebacks and refunds. But I am unable to identify how can I get the details of chargebacks and refunds. We have published our game through third party so they own the Company Account for transactions. We have asked them, but apparently they don't have anything to help us out. I have used Graph API to log the transaction details and I have also used the debug tool to find out the reason or details of chargebacks and refunds. but even our refunds does not have any reason attached with it. Please help me out of this. I have done alot of Google on this but i am unable to find out what I need to know
Regards.
All you will actually get is a “Refund Reason Code” – which of these there are, and how to access them, is described here:
https://developers.facebook.com/docs/payments/disputes/#refundcb_tracking
Edit:
It does not look like you can look up the refund reason code via the API – but Facebook will send it to you, via a ping to your callback URL:
“If the order has been refunded by Facebook, we will ping your callback with a payments_status_update for the order in questions with a status of refunded. In addition, there will be an additional field returned called refund_reason_code with one of the following values: […]”
So you will have to react to that and evaluate the refund reason code (save it to your database, …) in this callback.
I am creating an english and french website that will be using paypal for payment processing.
I have all of the PayPal API working properly, and currently I am just outputting any error messages to the user (L_LONGMESSAGEX). However this is always english, is there a way to output the error messages as french?
I saw a LOCALECODE parameter but that seems to be something else.
Or am I going to have to setup my own lookup table based off the error codes?
No. This is not possible.
The PayPal API error messages are intended for your use only; you're supposed to properly handle these exceptions within your own application, and output a more meaningful message to the buyer.
(For example; "L_LONGMESSAGE0=This transaction has already been approved" means nothing to your buyers. Yet "This transaction has been processed previously. Did you order twice? Give our support team a call if you have any questions regarding your order!" is a lot clearer.)