When an order is placed, the credit card information, billing information, SKUs, etc. are sent over to PayPal so they're visible in the PayPal Manager. However, it doesn't look like the customer's name is being sent over.

If you could point out to me where this is supposed to be happening, I might be able to help troubleshoot it - and it may also result in my getting the recurring part of the module working again (right now, it works, but doesn't send any customer data (like billing info) so it's hard to reconcile with orders).

Comments

kwinters’s picture

For normal orders, the customer name (and address and a variety of other info) gets built into the request in function _uc_payflowpro_invoice_xml, and for recurring I believe it uses _uc_payflowpro_recurring_profile.

There is also a function getRPDataXML that may be used somewhere, but that's in PayflowProRecurring.class.php instead of the .module file.

I think that the recurring profiles have a user reference, so it may be trying to get the user's name from the user profile in a specific way.

kwinters’s picture

I just looked up my last transaction in the reports, and it says "NotProvided" for billing name but the right data for shipping name.

Placed another order without billing being the same as shipping, and it had the same issue. It may have also dropped shipping phone and address 2 (but those fields are just not there in the transaction details, not "NotProvided").

Matthew OMalley’s picture

Yes, I think there's some issue with the Billing information - not even worried about recurring right now, just a regular transaction.

I don't have any shipping information set up (just using donations on this site), so I'm not seeing that. But we should be able to figure out how it's getting the shipping name right and set it up for billing. Will work on it when I get a chance.

Matthew OMalley’s picture

So far as I can tell, the XML is set up correctly. The customer's name is getting entered correctly as the <Name> in the <BillTo> section of the XML. For some reason, it just isn't showing up on PayPal.

Took a look at PP_PayflowPro_XMLPay_Guide.pdf, page 25 seems the most relevant. https://cms.paypal.com/cms_content/US/en_US/files/developer/PP_PayflowPr...

But it looks like it's all ok. I'm stumped, unless there's an issue on PayPal's side?

Matthew OMalley’s picture

FYI - the relevant line seems to be line 1029 (line 1215 for recurring) in uc_payflowpro.module.

Matthew OMalley’s picture

Interesting - seem like the CustCode, which should be $order->uid, also isn't being sent over - it's showing up in PayPal Manager as "0".

kwinters’s picture

Title: Order does not send customer's name to Payflowpro » Billing Name Reported as NotProvided
Status: Active » Fixed

Found out that the billing name field interacts with the NameOnCard field. I set the NameOnCard to default to the billing name, and now it transfers correctly.

I got "Customer Code: 4" as well, so that appears to be working correctly. Were you logged in at the time of the order? That code is identical in D5 and D6 so unless you used the auto-register functionality from ubercart core I don't think anything is broken there.

Fix is in the devel branch of CVS for both D6 and D5.

Matthew OMalley’s picture

Fantastic! I think I was logged out, since for my purposes users are just doing one-time donations, so they never know about the Drupal user being created.

Thanks for figuring this out.

kwinters’s picture

You're welcome.

I have a feeling that the auto-register happens after the gateway code is called here, and thus there is no user ID yet. That's almost certainly an issue with the order of operations in Ubercart core, so you might need to take that up with the ubercart core developers.

Matthew OMalley’s picture

Status: Fixed » Active

Looks like there's still a minor issue here - it does bring the name across, but it looks like it brings the whole name across as the first name. You'd never be able to tell just looking at the billing address when reviewing a transaction in the PayPal Manager, but when I click the "Create Recurring Profile" button, it shows the PayPal fields for first name and last name under billing, and the full name displays in the First Name field.

kwinters’s picture

Yeah, but I think that's an issue with the service API and not with the way we're using it.

If I don't put the last name in that field as well, you won't get that info on the transaction details page. If I do put it there, it gets reported as "first name" which (although annoying) is still less bad than not having the last name at all. And of course if I don't provide it at all, you get no billing name.

So, I'm not sure if this is fixable or not. When I was researching this initially, I saw some strange and hacky last name field (link), but I'm not sure if it's even a good idea to use it instead of putting the last name in the current field. Try experimenting with that and let me know if you have any success.

kwinters’s picture

Version: 5.x-1.0-beta1 » 6.x-1.0-beta2
Status: Active » Needs work

"FYI, Name is not sent as part of the authorization, it is strictly for reporting purposes only."

I removed the NameOnCard field and added two extdata fields to replace it, per instructions in the forum post linked in my last comment. This makes the billing info come across correctly. This change is in both D5 and D6 devel.

However, I haven't been able to fix the same issue with shipping names yet, and I have a more significant change to do to fix this in recurring profiles, so I'm going to leave it open.

kwinters’s picture

Status: Needs work » Fixed

I followed up with the PayFlow developers, and splitting the shipping name field into first / last is not currently supported. However, billing works right, and we can't currently do any better than this, so marking as fixed.

If PayFlow implements that feature, and someone sends me some sample XML, I'd be happy to implement it in the future.

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.