latest stable versions: v150827 (changelog)

Old Forums (READ-ONLY): The community now lives at WP Sharks™. If you have an s2Member® Pro question, please use our new Support System.

Jason (Lead Developer)

Staff Member

My Latest Replies (From Various Topics)

Viewing 25 replies - 1,176 through 1,200 (of 1,909 total)
Author Replies
Author Replies
Posted: Tuesday Nov 13th, 2012 at 5:22 pm #31490
Staff Member
We may have a lead on a fix for this issue. I’ll post an update shortly.
Posted: Tuesday Nov 13th, 2012 at 4:42 pm #31486
Staff Member
While we here at s2Member continue our investigation into this issue, I will offer the following advice presented to me by PayPal developer support.

PayPal wrote…

Error 10422 has to do with the funding source that the buyer selected. For live transactions, I will suggest you contact PayPal customer support to verify why the system is preventing the buyer to use that funding source to make a payment.

Below are the numbers to contact customer support:

US/CA: 1-888-221-1161
UK: 08707 307 191
Australia: 1-800-073-263
Germany: 0180 500 66 27
Other: 1-402-935-2080

Here’s another related thread at PayPal developer support:
https://www.x.com/developers/paypal/forums/general-support/new-and-confused#answer-181193

Posted: Tuesday Nov 13th, 2012 at 3:41 pm #31482
Staff Member

Thanks for the follow-ups, and for your patience.

We’re preparing the maintenance release now, and I’m taking another look at this issue. I’ll update with further details as they become available.

Posted: Tuesday Nov 13th, 2012 at 3:28 pm #31480
Staff Member

@ Tony Schwartz

Exact same issue on your installation. Credit card transactions succeed, Express Checkout transactions fail with:

'TRXPNREF' => 'EXHPA1DA6C70',
'TRXRESPMSG' => 'Referral: 10422-The customer must return to PayPal to select new funding sources.',

Investigation continues on our end.

Posted: Tuesday Nov 13th, 2012 at 3:16 pm #31477
Staff Member
@ Tony Schwartz
Details received. Investigating now.
@ Mike Whitney
Thank you. Investigating now.
Posted: Tuesday Nov 13th, 2012 at 3:06 pm #31475
Staff Member

Thanks for the heads up on this thread.

Please send an IPN with txn_type=subscr_signup, just as you would for a new customer. To tell s2Member that this is an existing user of the site, please add the following two variables to your POST data in the IPN that you send to s2Member.

option_name1=upgrade
option_selection1=123

Where 123 is the existing user’s ID in WordPress.
http://codex.wordpress.org/Function_Reference/get_current_user_id

Posted: Tuesday Nov 13th, 2012 at 2:47 pm #31472
Staff Member

@ Tony Schwartz

Thanks for reporting your experience. The FTP details that you submitted privately are not working for me. Can you please verify the details you sent over, and then submit a new Private Contact Form submission for me? I will be happy to investigate for you. Also, please write a comment providing us with permission to run test transactions against your installation.

s2Member® » Private Contact Form

Posted: Tuesday Nov 13th, 2012 at 2:35 pm #31471
Staff Member

@ Mike Whitney

I just took a look at your s2Member installation, and I poked through your /s2member-logs/paypal-payflow-api.log file. I’m seeing the exact same issue on your installation. You have integrated PayPal Pro (Payflow Edition), and it appears that your account also has Recurring Billing service enabled, because like Chris Crabtree, credit card transactions ARE being processed properly on your site (indicating that Recurring Billing service IS enabled in your PayPal account). However, PayPal Express Checkout transactions on your installation (e.g. a credit card was NOT used – a PayPal account was used instead) are also resulting in the following error.

'TRXPNREF' => 'EQCP7C468C4F',
'TRXRESPMSG' => 'Referral: 10422-The customer must return to PayPal to select new funding sources.',

I think it’s a good idea for both of you to request PayPal assistance in this matter. Asking them to review some of the transactions (like the one I posted above – 'TRXPNREF' => 'EQCP7C468C4F'), so they can offer you some insight about why the funding source is being rejected in these specific cases.

That being said, since both of you are reporting the same issue, I think it would be irresponsible for us not to investigate this further on our end as well. With your permission, I’d like the opportunity to perform some test transactions against your installation, in the hopes of finding a resolution.

Please reply back and give me the OK on this. Also, please keep me updated about any replies that either of you get from PayPal in this matter. We will be sure to investigate them extensively on our end as well.

Regarding your comment about DPRP…

BTW – Here’s what happens when I try and enable recurring payments:
Your version of Website Payments Pro is not compatible with the Direct Payment Recurring Payments feature.
Now PayPal told me that in order for this feature to work you have to apply to get reference transactions enabled which they would not approve me for.

From my own communication with PayPal, it is my understanding that DPRP is NOT possible with a PayPal Pro (Payflow Edition) account (not possible due to technical issues). Instead, Recurring Billing service works together with the Payflow portion of your account. This is why s2Member Pro MUST integrate it’s recurring billing routines with the Payflow portion of your PayPal account. So it’s not a surprise to me that you heard this from PayPal. If you have a PayPal Pro (Payflow Edition) account with Recurring Billing service enabled, you just need to tell s2Member by filling out the Payflow portion of your s2Member configuration. This way s2Member will use the Payflow API to facilitate recurring billing, instead of trying to use DPRP under the normal PayPal Pro API.

Personally I think it’s Paypal’s issue not understanding their products but I cannot get anybody to figure it out.

While I’m not convinced yet, that this issue is entirely PayPal’s fault (my investigation on this will continue), I do agree with you. PayPal already had several different types of service (which brought with it some confusion for everyone). Then, a few months ago they started issuing PayPal Pro (Payflow Edition) accounts on a regular basis, they renamed some of their other services, and this just further confused everyone even more. Including some confusion on the part of PayPal customer support. In my experience with PayPal, it has been very difficult for them to offer site owners assistance, because there is confusion on their part about which API is being used, and how a particular API is being used (because each of their APIs provide several options). These issues are VERY technical by nature, and PayPal support seems to have trouble keeping up with their own products at times. Some experiences are different from others. It really just comes down to WHO you speak with over there, and how high up the chain that person is. The PayPal MTS agents seem to have the most knowledge. https://www.x.com/developers/paypal/forums

While you’re waiting to hear back from PayPal, please give me the OK to run test transactions against your installation. We will do our part to help resolve this matter for you.
Posted: Tuesday Nov 13th, 2012 at 2:05 pm #31469
Staff Member
@ Mike Whitney
Thank you. I’m taking a look at your installation now.
Posted: Monday Nov 12th, 2012 at 8:49 pm #31400
Staff Member
Thanks for your patience. I just received your server details and performed an on-site investigation of this problem as it exists in your environment.

Regarding this comment…

However, I still contend that s2Member is not using the standard Express Checkout API when Payflow Account Details are filled out. Why?

Yes, I believe you are correct to a certain extent. Or, perhaps there is some confusion here about which API s2Member Pro is actually designed to work with on the PayPal end of things. Based on the response you received from PayPal support, I think that’s probably the case. Confusion on their part, that is.


In s2Member Pro, if you leave the Payflow configuration fields empty in your Dashboard, s2Member Pro will integrate with the PayPal Website Payments Pro API (e.g. nothing special here), you just need a PayPal Pro account to integrate with s2Member Pro.

If you intend to charge on a recurring basis, you will need to ask PayPal to add DPRP to your PayPal Pro account. That is their Recurring Billing service for PayPal Pro accounts; which is what makes it possible for s2Member Pro to integrate recurring payments made possible by s2Member Pro, with your PayPal Pro account. This is simply a matter of asking PayPal to add the Recurring Billing service to your existing PayPal Pro account. This will cost you an additional $30/month, for a total of $60/mo.

End of story, you’re all done.


However…

There are some newer PayPal Pro accounts (it’s still a slight mystery to us about who exactly gets these by default, or perhaps by request – still not sure… PayPal support has been rather vague about this with us).

Anyway… some site owners (like YOU for instance), will NOT have the normal PayPal Pro account flavor.

Instead, you (like many others), have a PayPal Pro account operating under the Payflow Edition. This is NOT to be confused with a pure Payflow Pro account, that’s NOT the same thing. What you have is a “PayPal Pro (Payflow Edition)” account, which is a mixture of both the PayPal Pro and Payflow APIs.

Under this type of integration, s2Member Pro will use the normal PayPal Pro API portion of your account, for everything except Recurring Billing transactions. Under a PayPal Pro (Payflow edition) account, s2Member MUST integrate Recurring Billing with the Payflow API portion of your account. This is achieved by filling out the Payflow configuration details for s2Member to use, as seen in your Dashboard with s2Member Pro installed.

In addition, you will still need to ask PayPal to enable Recurring Billing service for your PayPal Pro (Payflow Edition) account. Everything is the same with your account, except instead of s2Member Pro using the normal PayPal Pro API for Recurring Billing, it will use the Payflow API portion of your account. It’s a behind-the-scene communication change, from one API to another.

Therefore, you SHOULD fill out the Payflow details in your s2Member configuration. Based on your log files, it appears that your PayPal account has already had Recurring Billing service enabled. So you’re already paying for that, and it’s working properly when you have the Payflow details filled in for s2Member.

That is, it’s working when a credit card is used, but it’s NOT working for you when a PayPal account is used, which is indicated by your log files. So the problem here comes back to the use of PayPal Express Checkout under the Payflow API, which is what s2Member is using; because the transactions you’re attempting to process are implementing a Recurring Profile, and not just a one-time transaction.

The response that you received from PayPal support…

The reason it is not working is that they are leaving out a step. The Profile cannot be created without getting a BAID (Billing Agreement ID). This is done after the ‘ACTION = G’ step. To finalize the Express Checkout transaction you would either do an ‘ACTION=D’ to complete with a payment in addition to setting up the profile or ‘ACTION=X’ if you are only setting up a profile. Once the BAID is created you can then run the call to set up the Profile. If you try to do that without finalizing the Express checkout process and getting that BAID it will fail every time.

This is incorrect. I would ask you to clarify for them that s2Member Pro is NOT using Merchant Initiated Billing. s2Member Pro Forms are integrating with the Payflow API via Express Checkout for a BILLINGTYPE=RecurringPayments, which does NOT require a BAID to be processed at all. Not to achieve what s2Member needs to.

What this support rep is referring to (regarding a BAID), is a different type of transaction, whereby s2Member would be responsible for maintaining the future billing schedule. s2Member does NOT integrate this way. s2Member creates a configurable Recurring Profile within your PayPal Pro (Payflow Edition) account, which you and s2Member can configure and monitor now and in the future. The future billing cycle is maintained by PayPal, and NOT by the s2Member software. Thus, a BAID is not necessary.

Resolving the issue with Express Checkout and your Payflow API…

I’m seeing errors in your paypal-payflow-api.log file with details like this:

'TRXPNREF' => 'ETJPA1763B30',
  'TRXRESPMSG' => 'Referral: 10422-The customer must return to PayPal to select new funding sources.',

This suggests one of the following to me:

1. Your PayPal account needs to be reviewed by PayPal support.
2. Your customer attempted to use a PayPal account via Express Checkout, funded by a checking account; but your PayPal account is configured NOT to accept checks?
3. Your customer attempted to use a PayPal account via Express Checkout, funded by GiroPay; but your PayPal account is configured NOT to accept GiroPay?

Or perhaps there is another issue that none of us are seeing. PayPal could help point us all in the right direction on this. Please submit this back to PayPal for further review. I would ask them to look at this specific transaction ('TRXPNREF' => 'ETJPA1763B30') and find out why the funding source was declined in this instance. That might help all of us find a resolution for you quicker.


Related articles:
https://www.x.com/developers/paypal/forums/paypal-sandbox/directpayment-how-i-know-if-client-have-enough-fund#answer-78900
https://www.x.com/developers/paypal/forums/general-support/new-and-confused#answer-181204
http://www.s2member.com/forums/topic/urgent-error-36-transaction-failed/

Documentation snippet regarding Merchant Initiated Billing:

Posted: Monday Nov 12th, 2012 at 7:57 pm #31393
Staff Member
Thanks for the heads up on this thread.
~ Investigating now.
Posted: Monday Nov 12th, 2012 at 7:56 pm #31392
Staff Member
Thanks for the heads up on this thread.
~ Investigating now.
Posted: Monday Nov 12th, 2012 at 7:47 pm #31390
Staff Member

Thanks for the heads up on this thread.

I’m not seeing anything wrong with the hack that you posted. However, that hack was originally posted some months ago, and was intended to be integrated with a PayPal Standard Button integration. I don’t believe it was ever tested against a PayPal Pro Form integration, which is what you’re using.

The fact that no Signup Confirmation Email is being sent, would indicate to me that your redirection code in this hack file, is interrupting s2Member’s post-processing of the transaction. In other words, it’s bypassing s2Member’s routine that actually sends the Signup Confirmation Email for Pro Forms.

If you’d like to accomplish auto-login after registration with a Pro Form, I recommend the success="" attribute for your Pro Form Shortcode. With that attribute, you can create a custom thank-you page, which might include code from your hack file above; and you may choose to automatically log them in and redirect them to a page of your choosing. Please see: Dashboard -› s2Member® -› PayPal® Pro Forms -› Custom Return URLs Upon Success

Posted: Monday Nov 12th, 2012 at 7:06 pm #31385
Staff Member
Thanks for the heads up on this thread.
~ Investigating now.
Posted: Sunday Nov 11th, 2012 at 1:54 pm #31259
Staff Member

Thanks for the heads up on this thread.

Regarding s2Member `txn_type` identified as ( `web_accept|subscr_signup` ).

This is simply a reflection of the way s2Member groups certain types of events (e.g. IPNs from PayPal in this case). With s2Member, the same underlying routine (identifier) handles both incoming subscr_signup IPNs, as handles incoming web_accept IPNs.

s2Member is just recording which identifier was used to handle this particular IPN from PayPal. The important thing to look at there, is the actual value of the txn_type that was received by s2Member. In the log entry you posted, this was a web_accept transaction.


Regarding ‘s2Member `txn_type` identified as ( `subscr_payment|recurring_payment` ).’,

s2Member automatically translates a web_accept transaction (one which is NOT associated with recurring payments, but only with a one-time fee), into an additional on-site subscr_payment IPN, which s2Member also needs to process for all first-time customers. This allows s2Member’s record of all payment times to function properly, and in a more uniform way.

Thus, anytime a web_accept transaction comes in, you’ll also see a subscr_payment IPN processed internally by s2Member in the log file. I realize that’s rather confusing; I’ll make a note to try and clarify this further in the logs, in a future release.

The important thing to note here, is that it’s NOT PayPal sending a subscr_payment in this case, it’s s2Member queuing this up and then processing it on-site, so that a payment event and payment time is actually processed; even in cases where PayPal’s own IPN system does not handle this on it’s own.

As noted in the first log entry…

7 => ‘Creating an IPN response for `subscr_payment`. This will go into a Transient Queue; and be processed during registration.’,
Posted: Sunday Nov 11th, 2012 at 1:30 pm #31256
Staff Member

Thanks for the follow-up.

This would most likely fall under what we consider to be “custom coding”. However, you might take a quick look at s2Member’s built-in Registration Notification to see if that helps you further. See: Dashboard -› s2Member® -› API / Notifications -› Registration Notifications

If not, you could certainly use one of s2Member’s MANY built-in hooks/filters to accomplish this.

Here is a quick example that serves to point you in the right direction.
Create this directory and file:
/wp-content/mu-plugins/s2-hacks.php
( these are MUST USE plugins, see: http://codex.wordpress.org/Must_Use_Plugins )

http://www.s2member.com/codex/stable/overview-summary/#src_doc_overview_description
See also: http://codex.wordpress.org/Function_Reference/update_user_option

Posted: Friday Nov 2nd, 2012 at 9:47 am #30457
Staff Member

I believe the underlying issue has been identified. We’ve had your installation patched and an official fix added to the next maintenance release. If you will please run a test transaction for us and provide feedback, that would be much appreciated. If there are no further issues, the next maintenance release will include this fix.

File patched on your installation:
/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php

Posted: Friday Nov 2nd, 2012 at 9:30 am #30454
Staff Member
FTP details received. We can access the log entries that way. Thank you.
Posted: Friday Nov 2nd, 2012 at 9:17 am #30446
Staff Member

Thank you for reporting this to me.

With or without the asterisks will work just fine. It’s better to have the asterisks in there though, so we’ve had this corrected to avoid confusion going forward. The missing asterisks was an error on our part, as part of a recent update to this article. The addition of those asterisks allows for more than a one-space delimiter. Not common, but never hurts to account for things like that in the regex. Add the asterisks in to make it betterer please :-)

Posted: Friday Nov 2nd, 2012 at 9:12 am #30443
Staff Member

Thanks for the heads up on this thread.

@ Joseph Sellers

That’s the first time we’ve seen that error come back. According to the PP docs, it indicates there is a mismatch between the original description used to setup this PayPal Express Checkout transaction, and the subsequent API call which is represented by the log entry you posted here.

While we continue to investigate this, please post the previous log entry (e.g. the one before this one). It should be a TRXTYPE=S, ACTION=S and also should have this number 1354482839 in the PROFILENAME.

I’d like to see what the original value of the description was set to on your installation, so we can compare it during testing on our end. With your help we should have a resolution for you soon.

Posted: Friday Nov 2nd, 2012 at 7:57 am #30431
Staff Member

Thanks for the heads up on this thread.

Up until now, Authorize.Net has been available only for US merchants (to our knowledge). According to their web site, I see they are now supporting UK merchants. We’re taking a look at some things we can tune in for UK merchants attempting to run Authorize.Net accounts. I will publish further details as they become available.

The currency attribute will have no impact on Pro Forms integrated with Authorize.Net, because s2Member Pro’s current integration with Authorize.Net, supports only US merchants, and Authorize.Net processes all transactions in USD; regardless of the configuration of your Pro Form.

Among other things, we’ll take a look at enhancing this now that Authorize.Net is supporting UK merchants.

Posted: Friday Nov 2nd, 2012 at 7:49 am #30429
Staff Member

Is there a way to make the variables passed back from CB global or at least available so that I can auto-populate on the register page?

In the case of a “Buy Now” transaction via ClickBank (e.g. no recurring fees), the value of ctransreceipt from ClickBank, is stored by s2Member Pro as the Paid Subscr. ID value, and is tied directly to a customer’s profile in your Dashboard. Please check the Users menu in your Dashboard, for a User you’d like to see information for.

This Paid Subscr. ID (i.e. the ClickBank Receipt Number), is the only financial information that s2Member Pro needs to make it’s integration with the ClickBank return-page communication and IPN communication function properly; and it allows s2Member to remain more secure, since additional financial details are not being stored on the server side, but left in storage with your payment gateway.


In cases where there ARE recurring fees, s2Member Pro generates it’s own Paid Subscr. ID, which it sends to ClickBank, and ClickBank uses the Paid Subscr. ID generated by s2Member Pro in all future communication with s2Member Pro. Therefore, in the case of recurring subscriptions via ClickBank, the ClickBank receipt identifies only a specific transaction among many that may occur over the life a subscription. The value that remains constant throughout all future payments is the Paid Subscr. ID, which was originally generated by s2Member Pro, and is stored in a customer’s account profile, visible from the administrative Dashboard for WP.


If you’d like to collect the ClickBank Receipt for either one-time or recurring payments, you may connect to s2Member’s API Notification for payments, which is processed ANY time a payment occurs on the ClickBank side of things (including initial and recurring payments). In s2Member’s API Notification for payments, the ClickBank receipt value is obtained with the s2Member Replacement Code: %%txn_id%%

With s2Member’s API Notifications, you can collect and process your own custom code, storing these values, or use them for any other purpose you see fit. Some experience with PHP is required to integrate with s2Member’s API Notifications. See: Dashboard -› s2Member® -› API / Notifications -› Payment Notifications

Posted: Friday Nov 2nd, 2012 at 7:22 am #30425
Staff Member

Thanks for the heads up on this thread.

@ chase a

s2member pro slowing down my website performance by like 3-4 seconds according to gtmatrix

Thanks for reporting this important issue. While sprites are certainly a good idea in many cases, they’re not as easy for site owners to swap in and out when attempting to further customize s2Member Pro. That being said, we’ll take it under advisement. We’re certainly interested in improving speed in any way that we can.

Regarding your tests…

A few small icons should NOT (under normal circumstances), slow down your load time by 3-4 seconds. You would have to be loading the site with a much slower connection for those small images to cause that much lag for you. Even if you’ve isolated the lag… e.g. it’s happening when the s2Member plugin is active (e.g. you know it’s s2Member), I would start by following the suggestions posted by Rob above:
http://www.s2member.com/forums/topic/s2member-slowing-my-site-down/#post-30202

Regardless of which plugins are active, sometimes it can simply be attributed to the quantity of plugins vs. the available resources on the server. I’ve also seen bottlenecks occur where there is a theme or other plugins conflicting with s2Member in one way or another. If problems persist, please post a link to your site, or to a test site, so that we can make an attempt to reproduce the lag that exists on your site with the s2Member plugin active. If it’s something related to client-side processing (images, JS, CSS, etc), that will show right up for us too; and we can offer you some suggestions or even a fix for any problems we find together.

Posted: Friday Nov 2nd, 2012 at 7:07 am #30422
Staff Member
Posted: Friday Nov 2nd, 2012 at 6:53 am #30421
Staff Member

Thanks for the follow-up.

In the case of subscr_cancel, s2Member needs the following:

txn_type=subscr_cancel
custom=www.example.com
item_number=1 (i.e. the original item_number)
item_name=[name of product goes here]
period1=0 D (see PayPal documentation, only applicable if there was a trial period)
This is the length of a possible initial/trial period. 0 Days in this example.
period3=1 M (see PayPal documentation, this MUST always be provided)
This is the periodicity of the regular recurring period. 1 time each Month in this example.
subscr_id=0702362108 (i.e. original subscr_id value)
payer_email=john@example.com

Viewing 25 replies - 1,176 through 1,200 (of 1,909 total)

Old Forums (READ-ONLY): The community now lives at WP Sharks™. If you have an s2Member® Pro question, please use our new Support System.

Contacting s2Member: Please use our Support Center for bug reports, pre-sale questions & technical assistance.