Closed. This question needs debugging details. It is not currently accepting answers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
Closed 8 years ago.
Improve this question
I would like to ask if the following scenario is possible in Paypal Sandbox.
My Store currency is MYR.
Sample: MYR 187.45
My Business account has USD as primary currency. And in My Payment Receiving Preferences
Allow payments sent to me in a currency I do not hold. and I selected:
Yes, accept and convert them to U.S. Dollars. Additional charges apply.
When I click Buy now, I always got an error:
SetExpressCheckout failed: Array ( [TIMESTAMP] => 2014%2d06%2d19T06%3a13%3a28Z [CORRELATIONID] => ece5b15d66df6 [ACK] => Failure [VERSION] => 72%2e0 [BUILD] => 11457922 [L_ERRORCODE0] => 10605 [L_SHORTMESSAGE0] => Transaction%20refused%20because%20of%20an%20invalid%20argument%2e%20See%20additional%20error%20messages%20for%20details%2e [L_LONGMESSAGE0] => Currency%20is%20not%20supported [L_SEVERITYCODE0] => Error )
Having a hard time on this, Please help me . thank you very much!
According to the PayPal Currency Documentation Malaysian Ringgit (only for Malaysian members) MYR.
You can use the above link to assist you with your currency choices since it comes directly from the PayPal published currency list.
Related
I have multiple websites that use PayPal Buy Now buttons and have PDT enabled.
All of the existing customer websites are working, in that after the user makes a purchase, they are redirected back to their site by PayPal with a return URL that includes the 'cm' parameter as specified here.
I have a new client with a brand new Merchant Account who has their PDT configured correctly (I have checked it multiple times to be sure). However, upon return from PayPal payment, we are missing the 'cm' parameter that is necessary to do validation/updates on our website.
I have never seen this before where some of the variables are getting sent back, but not all as defined in the PayPal documentation above.
Here is an example of a working return URL - (some values edited for privacy purposes only)
.../paypal/pdt?redirect=https://journals.myclient.com/view/journals/cssm/4/1/article-p14.xml?PFTxId=4435&offerProvider=DEFAULT&amt=9.95&cc=USD&cm=mJ5v4sm1PUcD0E9vbii0pm6e1ql5GRs/lv+aQuNuves=%7CaccountId=XXXXX%7COffer ID=7|mc_gross=9.95&item_name=ITEM NAME Dilemma&item_number=/journals/cssm/4/1/article-p14.xml&st=Completed&tx=XXXXXXXXXXXX
Here is the example of the newly created Merchant Account where this is not working
.../paypal/pdt?redirect=https://www.nonworkingclient.org/view/journals/tpmd/s1-1/6/article-p331.xml?PFTxId=40&offerProvider=DEFAULT&PayerID=RPUJELM94HEYU&st=Completed&tx=XXXXXXXXXX&cc=USD&amt=0.01
Here you can see in the comparison, PayPal is returning the 'tx' and 'cc' variables in both examples, but 'cm' is missing from the bottom example.
Has anyone else experienced this lately?
Does anyone know of anything more than the PDT setup that needs to be checked to see why this is failing in the Merchant Account?
Thank you for any assistance.
I have an account that has been set up and working for 3+ years. PDT always returned a "cm" parameter which I pass in as "custom". In the last couple weeks it is hit or miss whether I get "cm" back (can't say exactly when it stopped working as the site has not been used since Spring 2020). About 10% of the time it works but the other 90% no "cm". The response is a bit different in the success and failure cases. Here is an example of a successful return with "cm" (the output is the GET array parameters and values)
(
[feepaid] => Y
[amt] => 75.00
[cc] => USD
[cm] => 586
[item_name] => IW***** Fee
[item_number] => g**5
[st] => Completed
[tx] => 9J5******81R
)
and an example of a failure case (no "cm")
(
[feepaid] => Y
[PayerID] => 9J*******YG
[st] => Completed
[tx] => 3D2*****2457
[cc] => USD
[amt] => 75.00
)
The failure has "PayerID" which does not appear as a valid variable in PDT or IPN spec. Success case has no PayerID but has item_name and item_number (which are fixed in the button definition on PayPal merchant account).
Same here! Paypal no longer return cm paramater for some users
First off, I'm by no means a programmer so this might be a very simple issue but I'm about to pull my hair out soon.
So, I have a site where I'm selling a book + access to a membership through Wishlist Member. It sells for $99 and now I want to give them a $9 trial for 30 days and then bill them the remaining $90 over 2 installments of $45 each with a month apart.
Now, integrating Wishlist with PP is easy to setup when I'm only sending people straight to PayPal.
It basically only requires 3 steps besides activating IPN and pasting in the PDT.
Add the item/subscription ID of my Wishlist Membership Level to the PayPal button I'm creating.
Make sure the thank you page URL after purchase is:
site.com/members/index.php/register/AOKmfa
Paste the code below in the "Add advanced variables" field:
rm=2
bn=WishListProducts_SP
notify_url=site.com/members/index.php/register/AOKmfa
return=site.com/members/index.php/register/AOKmfa
Now I'm looking to increase the sign up rate so I am creating my own order page with Gravity Forms Paypal-Add on.
In there you have an option to set the thank you page, so in my case I would add "site.com/members/index.php/register/AOKmfa" and then I can also tick a box that says:
"Pass Field Data Via Query String" where I'm apparently suppose to paste in the code:
rm=2
bn=WishListProducts_SP
notify_url=site.com/members/index.php/register/AOKmfa
return=site.com/members/index.php/register/AOKmfa
But, my question is... how can I get this subscription ID involved?!
After speaking to Gravity Form support they said:
To pass additional info to PayPal you can use gform_paypal_query filter. You adapt this code to suit your needs.
add_filter('gform_paypal_query', 'add_more_information', 10, 3);
function add_more_information($query_string, $form, $entry) {
// break the query string into an array
// after removing the initial '&' character
parse_str(ltrim($query_string, '&'), $query);
// add information to query string. These currently exist
/*
[METHOD]
[VERSION]
[PWD]
[USER]
[SIGNATURE]
[BUTTONSOURCE]
[CREDITCARDTYPE]
[ACCT]
[EXPDATE]
[CVV2]
[STREET]
[STREET2]
[CITY]
[STATE]
[ZIP]
[COUNTRYCODE]
[CURRENCYCODE]
[FIRSTNAME]
[LASTNAME]
[EMAIL]
[DESC]
[L_NAME0]
[L_DESC0]
[L_AMT0]
[L_NUMBER0]
[L_QTY0]
[PAYMENTACTION]
[IPADDRESS]
[RETURNFMFDETAILS]
[AMT]
[NOTIFYURL]
*/
// change SHIPTONAME to whatever query string parameter you want to set
// and change the inputs here to whatever field holds your item title.
$query['L_DESC0'] = rgpost("input_6_13");
// put it all back together again
$query_string = '&' . http_build_query($query);
return $query_string;
}
So my question is, how can I adapt that code to actually get this integration to work? They are clearly not interested in pinpointing exactly how I would go about doing it so maybe one of you can?
Do I only need to adapt the code so it somehow adds in that subscription ID? (If so, how?) Or do I also need to add in the redirect url and the advanced variable field?
I truly appreciate any kind of help you can give me and if this should be posted elsewhere please let me know.
Thanks,
Tony
I have a hosted subscribe button with PayPal, which I want to have an unlimited number of billing cycles. This is easy enough to set up through the PayPal web interface, by setting 'After how many cycles should billing stop?' to 'Never'. However, when I then update that button through the PayPal NVP API BMUpdateButton, the number of billing cycles shows to the user as '$25.00 AUD for one month' instead of '$25.00 AUD for each month'. The button still shows 'Never' as the value in the web interface, but when it is used, the button is set to complete after 1 month.
I have tried variations of L_OPTIONnTOTALBILLINGCYCLESx API parameter, but with no success. Any help or thoughts would be appreciated. For all I know, this is a subtle bug in PayPal itself. If anyone has reason to believe that if I switch from NVP to SOAP it will work, then that would also count as a solution.
Here is a sample of the parameters that I send through. I don't get any API errors, and the button updates correctly except for the total billing cycles.
'METHOD' => BMUpdateButton
'VERSION' => 117
'USER' => ...
'PWD' => ...
'SIGNATURE' => ...
'L_OPTION0SELECT0' => First Tier
'L_OPTION0PRICE0' => 25.00
'L_OPTION0BILLINGPERIOD0' => Month
'L_OPTION0BILLINGFREQUENCY0' => 1
'L_OPTION0TOTALBILLINGCYCLES0' => 0
'L_OPTION0SELECT1' => Second Tier
'L_OPTION0PRICE1' => 30.00
'L_OPTION0BILLINGPERIOD1' => Month
'L_OPTION0BILLINGFREQUENCY1' => 1
'L_OPTION0TOTALBILLINGCYCLES1' => 0
'HOSTEDBUTTONID' => ...
'BUTTONTYPE' => SUBSCRIBE
'OPTION0NAME' => Payment Scheme
'L_BUTTONVAR0' => currency_code=AUD
'L_BUTTONVAR1' => no_shipping=1
'L_BUTTONVAR2' => cancel_return=...
'L_BUTTONVAR3' => return=...
Thanks very much for any thoughts.
The below two parameters in your API call is related to the installment buttons and if you pass them with the subscription type button they will be ignored.
L_OPTION0BILLINGFREQUENCY0
L_OPTION0TOTALBILLINGCYCLES0
If you are looking to update the subscription billing cycles you need to pass these two parameters :
L_BUTTONVARn="src=1"
L_BUTTONVARn="srt=12"
If the above src=1 means profile is set to be recurring and srt=12 will set the billing cycle to 12 .
If you don't pass any of the parameter in the API call then by default "src" will be set to "0" meaning no recurrence which is similar to your case .
Closed. This question is not reproducible or was caused by typos. It is not currently accepting answers.
This question was caused by a typo or a problem that can no longer be reproduced. While similar questions may be on-topic here, this one was resolved in a way less likely to help future readers.
Closed 1 year ago.
Improve this question
I am trying to implement a login with Facebook - thus far all is working, apart from the $user data I am being returned does not include the username (which I know does exist).
The array I am being returned is the following (with details purged):
Array ( [id] => ################ [email] => #.##############.co.uk [first_name] => ######## [gender] => male [last_name] => ######## [link] => https://www.facebook.com/app_scoped_user_id/################/ [locale] => en_GB [name] => ######## ######## [timezone] => 1 [updated_time] => 2014-05-06T21:23:33+0000 [verified] => 1 )
Has anyone had experience of this before?
The username field was removed in version 2.0 of the graph API. I'm not aware of any workaround (short of using version 1.0).
This change is listed in the "Removed Endpoints" section of the upgrade guide. You can also see that the "User" reference contains no mention of a username field for version 2.0, but does for version 1.0.
Not all fields are available through the API. You can see exactly what fields are available using the references I've provided above.
Looks like a Facebook Graph API bug.
With regards to the PayPal PayFlow Pro service, is it possible to pass through a CVV number when creating a recurring profile?
Currently on our site we only ask for a credit card number and expiry date when creating a recurring profile however we would now like to request the CVV number to improve card holder verification and I guess ultimately reduce the likelihood of potential fraud.
According to the documentation:
https://www.paypalobjects.com/webstatic/en_US/developer/docs/pdf/pp_payflowpro_recurringbilling_guide.pdf
CVV isn't listed as a parameter for the "ADD" action as part of the recurring billing service however if you do pass it as a parameter, the response back contains information related to CVV validation as follows:
CVV2MATCH => N,
PROCCVV2 => N
What's interesting is that testing this in the PayPal Sandbox with an invalid CVV number, the response I get back is as follows:
Request:
TRXTYPE => R,
TENDER => C,
ACTION => A,
ACCT => 4111-XXXX-XXXX-1111,
CVV2 => XXX,
EXPDATE => 0518,
START => 04162014,
MAXFAILPAYMENTS => 1,
RETRYNUMDAYS => 2,
TERM => 0,
PAYPERIOD => YEAR,
AMT => 50.00,
PROFILENAME[9] => test_1234,
OPTIONALTRX => A,
COMMENT1[14] => Recurring Plan,
Response:
RESULT => 0,
RPREF => R1056C75AF08,
PROFILEID => RT0000014434,
RESPMSG => Approved,
TRXRESULT => 0,
TRXPNREF => A70A6ABE7817,
TRXRESPMSG => Verified,
AUTHCODE => 407PNI,
CVV2MATCH => N,
HOSTCODE => A,
PROCCVV2 => N,
VISACARDLEVEL => 12
As you can see although the CVV validation failed "CVV2MATCH => N" (which means there was no match), the transaction went through successfully "RESULT => 0, TRXRESULT => 0" and the recurring profile was subsequently created.
One would expect that a non-matching CVV would result in the transaction failing not succeeding.
Is there something that I've incorrectly assumed or are doing wrong? Is there a setting somewhere in PayPal Manager that needs to be enabled/disabled to deny transactions if CVV validation fails or is this simply some bug in the PayPal Sandbox.
Any help would be much appreciated.
Regards.
Security code services are supported on the Payflow platform, though not required in all cases. You should be able to create a "Fraud Filter" within your manager account that will act on the CVV2 response as you see fit. To access these filters login to manager.paypal.com and click on "Service Settings." From there click the sub-heading "Fraud Protection." Here you will be able to construct custom filters based on the results returned for each transaction.
Hope this helps!