Administrator
- Join Date:
- Feb 2006
- Location:
- Tampa Bay, Florida
- Posts:
- 10,693
- Plugin Contributions:
- 56
Bambora/Beanstream Payment Module Support Thread
No changes in 1.3.9x required.
Views: 95,381
Administrator
No changes in 1.3.9x required.
New Zenner
This error message was posted previously on this thread but no one has answered it.
Using Zencart and Beanstream, I received this email from a customer
"When trying to confirm an order the site responds with:
Step 2 of 3 - Payment Information
I put my state information in as QLD then Queensland but both times it came
up with this message.
I am trying to get the order send to QLD Australia. Can you please let me
know what I need to do?"
I tried to send the item myself and I came up with the same error message. Tried to change some things about the shipping address (after reading about the Du Bois problem) but nothing worked.
Any ideas?
New Zenner
I am in the application process with Beanstream. I was wanting to use their hosted payment page... does this module help me do that? If not, is it hard to integrate?
Administrator
laurahowes:
I am in the application process with Beanstream. I was wanting to use their hosted payment page... does this module help me do that?
No - this is not for the hosted payment page.
New Zenner
swguy:
No - this is not for the hosted payment page.
Thank you for your response, swguy!
You may see a PM from me if I can't figure it out... :P
New Zenner
Hi swguy
I want to use the BeanStream hosted payment page, where BS info says to insert url of their payment page into zencart file but they cannot tell me where to put it, and I cannot figure it out.
The way I want it to work is that after prices+tax+shipping totals, the continue button should being me to the BS page and not to a Zen payment page. I also do not want to capture or store any customer information.
I can navigate the php files and can cut and paste as necessary if I only knew where.
Can you please help?
I am using Zen 1.3.9, hosted on godaddy.
Zen Follower
Customer reported a problem placing an order the other day. Other customers orders are coming through ok.
the error message is attached. I have spoken with Beanstream and they have found the cause. I've attached their findings below. Can you figure out a way to resolve this?
reply from Beanstream, newest is at top, oldest at bottom:
Hi,
############################## Yes, it looks like the Beanstream module is pulling in the full text for the shipping option selected by the customer. I don’t know if you could fix this by adjusting your shipping options or if you have to look for help with the Beanstream module on the ZenCart forums.
Thanks,
Mike

Subject: Re: Processing error?
Thanks !! I guess that means that the issue is with the beanstream module in zencart?
Cheers,
Rob
On 2011-06-25, at 12:43 PM, Michael wrote:
Hi,
I’ve figured it out. The problem is the text being attached to our shippingMethod variable through the ZenCart module. Review my log extraction below, as you can see the URL encoded version of the text from your shipping module is over our 64 character limit for the shippingMethod variable. The problem is the special characters and white spaces must be URL encoded which adds an extra 20-30 characters.
URL Encoded:
&shippingMethod=Canada+Post+%3C%21--%281+box%28es%29%29--%3E+%28Small+Packets+Air%2C+up+to+2+weeks%29
Variable data = 85 characters
Decoded:
&shippingMethod=Canada Post <!--(1 box(es))--> (Small Packets Air, up to 2 weeks)
Variable data = 55 characters without spaces and 65 characters with spaces
Thanks,
Zen Follower
Hi swguy. Any thoughts?
New Zenner
swguy:
BeanStreamers: The next item on my todo list is to add support for 3DSecure (MasterCard SecureCode and Verified by Visa) to Beanstream. Stay tuned!
Hi, wonder what the status of this update is.
We are using Beanstream and have had to enable Verified by Visa and Mastercard SecureCode, and this has completely broken the shopping cart checkout process. We definitely do not want to roll back the security.
Our site is Zencart 1.39h, with Wordpress on Zencart and some FedEx modules. It worked properly until the security measures were put in place.
I've emailed you as well, and look forward to hearing back on this topic.
Thanks again.
Administrator
I'm not sure when I'll get to it.
New Zenner
swguy:
I'm not sure when I'll get to it.
Still looking forward to your reply to my email. We're interested in a quote, at very least.
Thanks,
Patrick Keenan
New Zenner
chmod755:
Hi
I've been a long time lurker here and on my site, http://www.naturallytots.com, I encountered a problem that I noticed was not really answered here.
I recently got an order from Australia and the order was rejected.
After seeing on page 1 of this thread that Beanstream requires the province to be "--" if the country is not Canada or US, I finally figured out this change.
In beanstream.php, at line 290 change:
if (strlen($order->billing['state']) > 2) {
$sql = "SELECT zone_code FROM " . TABLE_ZONES . " WHERE zone_name = :zoneName";
$sql = $db->bindVars($sql, ':zoneName', $order->billing['state'], 'string');
$state = $db->Execute($sql);
$province_code_order = (!$state->EOF) ? $state->fields['zone_code'] : '--';
}
$province_code_ship = (in_array($order->delivery['country']['iso_code_2'], array('CA', 'US')) ? zen_get_zone_code($order->delivery['country']['id'], $order->delivery['state'], '--') : '--');
if (strlen($order->delivery['state']) > 2) {
$sql = "SELECT zone_code FROM " . TABLE_ZONES . " WHERE zone_name = :zoneName";
$sql = $db->bindVars($sql, ':zoneName', $order->delivery['state'], 'string');
$state = $db->Execute($sql);
$province_code_ship = (!$state->EOF) ? $state->fields['zone_code'] : '--';
}
>
> to
>
> ```
if (in_array($order->billing['country']['iso_code_2'], array('CA','US'))) {
if (strlen($order->billing['state']) > 2 ) {
$sql = "SELECT zone_code FROM " . TABLE_ZONES . " WHERE zone_name = :zoneName";
$sql = $db->bindVars($sql, ':zoneName', $order->billing['state'], 'string');
$state = $db->Execute($sql);
$province_code_order = (!$state->EOF) ? $state->fields['zone_code'] : '--';
}
}
$province_code_ship = (in_array($order->delivery['country']['iso_code_2'], array('CA', 'US')) ? zen_get_zone_code($order->delivery['country']['id'], $order->delivery['state'], '--') : '--');
if (in_array($order->delivery['country']['iso_code_2'], array('CA','US'))) {
if (strlen($order->delivery['state']) > 2 ) {
$sql = "SELECT zone_code FROM " . TABLE_ZONES . " WHERE zone_name = :zoneName";
$sql = $db->bindVars($sql, ':zoneName', $order->delivery['state'], 'string');
$state = $db->Execute($sql);
$province_code_ship = (!$state->EOF) ? $state->fields['zone_code'] : '--';
}
}
The lines
$province_code_order = (in_array($order->billing['country']['iso_code_2'], array('CA', 'US')) ? zen_get_zone_code($order->billing['country']['id'], $order->billing['state'], '--') : '--');
>
> and
>
> ```
$province_code_ship = (in_array($order->delivery['country']['iso_code_2'], array('CA', 'US')) ? zen_get_zone_code($order->delivery['country']['id'], $order->delivery['state'], '--') : '--');
assign "--" as the billing and shipping province if the billing and shipping province is not Canada or US.
The IF statements I added above ensure that the province code, which is assigned by the SQL statements from lines 291 to 293 and 298 to 300, only happens if the country is Canada or US.
I noticed without these extra IF statements, even though the province/state is set to "--", the SQL statements reassign it back to QLD (for Queensland state in my case) which will cause Beanstream to reject the transaction.
This code change seems to work. It probably needs more testing though.
Hi, chmod755,
Actually, you don't need to change anything in your "beanstream mod",
The easiliest and security way to fix this error is to delete all the zones (outsider of Canada and US) at "Locations/Taxes"->"Zones". (note: keep Canada and US Only)
Jing
New Zenner
highlander:
Customer reported a problem placing an order the other day. Other customers orders are coming through ok.
the error message is attached. I have spoken with Beanstream and they have found the cause. I've attached their findings below. Can you figure out a way to resolve this?
reply from Beanstream, newest is at top, oldest at bottom:
Hi,
############################## Yes, it looks like the Beanstream module is pulling in the full text for the shipping option selected by the customer. I don’t know if you could fix this by adjusting your shipping options or if you have to look for help with the Beanstream module on the ZenCart forums.Thanks,
Mike

Subject: Re: Processing error?
Thanks !! I guess that means that the issue is with the beanstream module in zencart?
Cheers,
Rob
On 2011-06-25, at 12:43 PM, Michael wrote:
Hi,
I’ve figured it out. The problem is the text being attached to our shippingMethod variable through the ZenCart module. Review my log extraction below, as you can see the URL encoded version of the text from your shipping module is over our 64 character limit for the shippingMethod variable. The problem is the special characters and white spaces must be URL encoded which adds an extra 20-30 characters.URL Encoded: &shippingMethod=Canada+Post+%3C%21--%281+box%28es%29%29--%3E+%28Small+Packets+Air%2C+up+to+2+weeks%29 Variable data = 85 characters Decoded: &shippingMethod=Canada Post <!--(1 box(es))--> (Small Packets Air, up to 2 weeks) Variable data = 55 characters without spaces and 65 characters with spacesThanks,
Hi, highlander, have you solved this problem?
acutally, beanstream only allows 64 characters for the "shipping mothod (description text)". you just need to change the shipping mehtod language at the language file.
if you still have this problem, please let me know. I will send detail about how to change this.
Jing
Inactive
Well I'm back, I like this module and intend on using it but!
I use a shared server for my hosting and therefore will not pass a full PCI compliance, what this means that I have to pass the customer on to the Beanstream payment page. Right now when I use the module the customer enters their information then it is passed to Beanstream through API, I think
Beanstream notified me today saying "The account notes show that the account was supposed to be using our hosted payment form via your Zen Cart configuration. The problem here is the Zen Cart module with Beanstream uses our API which requires FULL PCI Compliance"
I guess I need to use hosted payment, I'm not sure if there is a module for this, I would assume that it is like the Moneybookers module.
Is there any help on this or can you provide me with direction.
Thanks
Pcsdesign
Sensei
pcsdesign:
I use a shared server for my hosting and therefore will not pass a full PCI compliance
No, that's an incorrect statement.
There are lots of good "shared server" hosting services out there that have attained PCI Compliance.
A more correct statement for you would be that your host isn't willing to become PCI Compliant, or at least not for their shared-hosting offerings.
And in that case you'd be better off (and serving your customers better too) by changing hosts.
But the topic of hosting services or anything else outside discussing the Beanstream module ... belongs in a more suitable forum thread. This one is about the Beanstream module specifically.
New Zenner
Hello,
My employer recently asked me to add VbV / SC to this zencart module. We are now testing it on our live site, and after one month of review it will be published onto the plugin/mod section. I also fixed several api compliance issues (thanks beanstream support, went extra mile), bugs from the previous version, added order history comments for AVS results (address verification service), along with account age and previous order count to help assess fraud risks.
:cheers:
Administrator
Thank you @brizzo for sharing your work. I was hoping someone would do this.
Zen Follower
Hi:
Presently, I am using 1.3.9h.
I am thinking about updating to Zen Cart version 1.5. Is Beanstream compatible with 1.5?
Dave
New Zenner
I am chomping at the bit waiting for ANY beantream payment module that is ZC1.5 compatible. I thought there was a premium version out there somewhere but I have lost track of it. Anyone got a link?
Administrator
Beanstream works as is in 1.5.0 - no additional changes are required.
Tell staff why this post should be reviewed.