7 days ago, I have created a sandbox merchant account and make all the payment into that account.
I have created Recurring payment. It was successfully create the Recurring profile.
Some days later when I execute the same code its throws an error "Profile description is invalid". The error code of the error is 11581.
Please help me. I want to solve the problem as soon as possible
Thank you
Profile description length is 127 single-byte alphanumeric characters. This might be the problem
DESC
(Required) Description of the recurring payment.
Note You must ensure that this field matches the corresponding billing agreement description included in the SetExpressCheckout request.
Character length and limitations: 127 single-byte alphanumeric characters
Here is the Reference
Edit : From comment below -> Also check for line breaks and double spaces
Thanks #chim
The L_BILLINGAGREEMENTDESCRIPTION0 in SetExpressCheckout it has to be the same of DESC in CreateRecurringPaymentsProfile
Related
Why is everything PayPal so crazy hard?
This is what I'm sending to https://api-3t.sandbox.paypal.com/nvp :
METHOD=DoExpressCheckoutPayment&
VERSION=108.0&
USER=my-sandbox-facilitator_api1.domain.com&
PWD=&
SIGNATURE=&
SUBJECT=&
TOKEN=EC-1GE68226PG526154U&
PAYERID=my-sandbox-buyer%40domain.com
PAYMENTREQUEST_0_PAYMENTACTION=SALE&
PAYMENTREQUEST_0_AMT=19.95&
PAYMENTREQUEST_0_CURRENCYCODE=USD&
PAYMENTREQUEST_0_NOTIFYURL=
This is what I'm getting back:
TIMESTAMP=2015-12-12T21%3a35%3a34Z&
CORRELATIONID=d9a463bfa6bb4&
ACK=Failure&
VERSION=108.0&
BUILD=18308778&
L_ERRORCODE0=10406&
L_SHORTMESSAGE0=Transaction+refused+because+of+an+invalid+argument.+See+additional+error+messages+for+details.&
L_LONGMESSAGE0=The+PayerID+value+is+invalid.&
L_SEVERITYCODE0=Error
Just before this I did a METHOD=GetExpressCheckoutDetails without any problems.
PayerID wasn't invalid for that?!?!!
I have a token so I did a METHOD=SetExpressCheckout without any problems.
Ideas?
No amount of Google had a working answer for me.
Either did PP's 5(!) tech support sites.
It is the same issue even if I reconfigure and and shoot a similar transaction at my live PP.
PAYERID is a unique PayPal buyer account identification number as returned after SetExpressCheckout API call(after buyer login to paypal and gets redirected to your RETURN URL , you will need to copy that PAyer Id and use in Doexpresscheckout request. Payer is a 13 single-byte alphanumeric character and not an email address.
https://developer.paypal.com/docs/classic/api/merchant/DoExpressCheckoutPayment_API_Operation_NVP/
Using PayPal NVP API 65.1. During SetExpressCheckout, I set ALLOWNOTE=1 however the PayPal payment page does not display an input field to enter a note. I've tried setting it to 'true' as well but PayPal complains about a data type error. So I know the field is being passed through to PayPal with a valid value. Still no dice. Thoughts?
Please check the required parameters.
https://developer.paypal.com/docs/classic/api/merchant/SetExpressCheckout_API_Operation_NVP/
(Optional) Enables the buyer to enter a note to the merchant on the PayPal page during checkout. The note is returned in the GetExpressCheckoutDetails response and the DoExpressCheckoutPayment response. It is one of the following values:
0 – The buyer is unable to enter a note to the merchant.
1 – The buyer is able to enter a note to the merchant.
Character length and limitations: 1 single-byte numeric character
ALLOWNOTE This field is available since version 53.0.
I have a paypal checkout page where in order summary i am displaying some text inside Billing agreement description. Text is displaying correctly but it's not showing full text length.
This is what i want to display.
$nvpstr = $nvpstr . "&L_BILLINGAGREEMENTDESCRIPTION0=".urlencode("Your account will NOT be charged at this time. This verification is for security purposes only to prevent fraudulent use. Following your Free Trial period, you agree to pay a monthly fee of $fds/month per location for unlimited offer posting. Additional options that you select, i.e. paid offer positions, will be billed every 2-4 days. Thank you for joining fasdfdsa!");
Per the SetExpressCheckout documentation, the L_BILLINGAGREEMENTDESCRIPTION parameter only accepts 127 characters.
Description of goods or services associated with the billing
agreement. This field is required for each recurring payment billing
agreement. PayPal recommends that the description contain a brief
summary of the billing agreement terms and conditions. For example,
buyer is billed at "9.99 per month for 2 years". Character length and
limitations: 127 single-byte alphanumeric characters.
That description is meant to be short and sweet. Any details like this that you need to provide should be done on your site prior to sending the user to PayPal for payment.
In PayPal Payflow link, When I entered 1 digit number in CSC field, it accepts and transaction successfully completed during test transaction.It didn't rise any error message.As per the user's guide, CSC should be 3 or 4 digit number.Is there any way to add or change the validation in PayPal Payflow link form.
I have tried it,but i couldn't find the solution
Please help me...
Thanks in advance
There is not any way to add any type of validation check through your Payflow account settings. The only thing you can do, would be to set it to be required/editable and check to see if it gets a X, N, or Y for the response and take action based on that.
In Setup of PayPal Manager,
I have set up in security options column,
CSC = Full
I have entered 1-digit CSC number
I am receiving CSCMATCH=Y for Test Credit Transaction in PayPal Payflow link
But,I think , transaction should be failed while entering 1-digit CSC number.
CSC number should be 3-digit or 4-digit number
Can you please explain me how to test,whether the CSC verification works fine or not?
Please guide me.
Thanks in advance
When testing, there is no check that tests to see if the CSC is 3 or 4 digits when entered. It is simply passed over to the simulator. So for example the value of "9" that you enter is recognized as "009". However, once you go live the value of 9 for example would come back as a failure since it actually passes this over to the processor and card issuing bank.
If you are wanting to trigger a CSC failure, you can enter "999" for the value. The values that you can enter to trigger specific CSC matches are listed in the developers guide.