Forums / Bug Reports / [Done v1.3.9] Solo cards with Website Payments pro

[Done v1.3.9] Solo cards with Website Payments pro

Locked

Views: 8,786

Results 1 to 17 of 17
This thread is locked. New replies are disabled.
7 Mar 2008, 4:24 PM
#1
flobster avatar

flobster

New Zenner

Join Date:
Sep 2006
Posts:
76
Plugin Contributions:
1

[Done v1.3.9] Solo cards with Website Payments pro

There is a problem with accepting Solo cards in Paypal website payments pro.

Why i beleive this is a bug:
When you process payments the bank declines SOLO cards because they do not get the correct information to process it correctly

When you have enabled ppwpp and selected SOLO card in configuration > Credit Cards to 1 (and any other cards you require)

When you goto checkout and want to pay via a SOLO card the checkout process will not allow you to enter details which are required to process your payment, it will not allow Issue number or Cvv -
I called the bank and they tell me they received the issue number as 00 - obviously i couldn't enter this so the checkout sent 00 because no entry was made.

The fields which you are allowed to enter are
Card number.
Start Date.
Expiry date.

for the card to be processed correctly the bank needs (the same as a Maestro card really)
Card number
Issue number
Expiry date
Cvv number (on back of card)

they do not need the start date (this is NOT printed on a SOLO card)

--
Ok so how i fixed this:

Opened up paypalwpp.php and paypalsp.php in inclues/modules/payment

            'if (value == "Switch" || value == "Solo") {' .
            '    document.checkout_payment.paypalwpp_cc_issue_month.disabled = false;' .
            '    document.checkout_payment.paypalwpp_cc_issue_year.disabled = false;' .
            '    document.checkout_payment.paypalwpp_cc_checkcode.disabled = true;' .
            '    if (document.checkout_payment.paypalwpp_cc_issuenumber) document.checkout_payment.paypalwpp_cc_issuenumber.disabled = true;' .

to

            '    document.checkout_payment.paypalwpp_cc_issue_month.disabled = true;' .
            '    document.checkout_payment.paypalwpp_cc_issue_year.disabled = true;' .
            '    document.checkout_payment.paypalwpp_cc_checkcode.disabled = false;' .
            '    if (document.checkout_payment.paypalwpp_cc_issuenumber) document.checkout_payment.paypalwpp_cc_issuenumber.disabled = false;' .

This will allow you to enter the card info into the fields which were blocked before the edit.

I also opened paypaldp.php in /includes/languages/english/modules/payment
and changed a couple of lines (not essential but nice to do they were

  define('MODULE_PAYMENT_PAYPALDP_TEXT_CREDIT_CARD_MAESTRO_ISSUENUMBER', 'Maestro Issue No.:');
 
to
 
  define('MODULE_PAYMENT_PAYPALDP_TEXT_CREDIT_CARD_MAESTRO_ISSUENUMBER', 'Issue No:');

This is in reference to the problem i had here
http://www.zen-cart.com/forum/showthread.php?p=520666#post520666

I hope that helps and maybe you can make a change for the next release.

Regards

Rob

7 Mar 2008, 4:28 PM
#2
drbyte avatar

drbyte

Sensei

Join Date:
Jan 2004
Posts:
63,513
Plugin Contributions:
176

Re: [Done v1.3.9] Solo cards with Website Payments pro

The code that you recommend changing affects both Switch and Solo.
Are you saying that the rules have changed?
Are you saying that both switch and solo need these changes?

.
Zen Cart - putting the dream of business ownership within reach of anyone!
Donate to: DrByte directly or to the Zen Cart team as a whole

Remember: Any code suggestions you see here are merely suggestions. You assume full responsibility for your use of any such suggestions, including any impact ANY alterations you make to your site may have on your PCI compliance.
Furthermore, any advice you see here about PCI matters is merely an opinion, and should not be relied upon as "official". Official PCI information should be obtained from the PCI Security Council directly or from one of their authorized Assessors.

7 Mar 2008, 4:35 PM
#3
flobster avatar

flobster

New Zenner

Join Date:
Sep 2006
Posts:
76
Plugin Contributions:
1

Re: [Done v1.3.9] Solo cards with Website Payments pro

Well switch is not really used anymore, Switch cards have been replaced by Maestro cards.

From memory of the old switch card i am sure they had a issue number on them and no start date (all of the banks have changed to Maestro as far as i am aware)

As far as i am aware no rules have changed around it, switch isno longer around at all as mastercard purchased switch and merged it with their Maestro cards

7 Mar 2008, 4:43 PM
#4
drbyte avatar

drbyte

Sensei

Join Date:
Jan 2004
Posts:
63,513
Plugin Contributions:
176

Re: [Done v1.3.9] Solo cards with Website Payments pro

Will research. Thanks for the heads-up.

.
Zen Cart - putting the dream of business ownership within reach of anyone!
Donate to: DrByte directly or to the Zen Cart team as a whole

Remember: Any code suggestions you see here are merely suggestions. You assume full responsibility for your use of any such suggestions, including any impact ANY alterations you make to your site may have on your PCI compliance.
Furthermore, any advice you see here about PCI matters is merely an opinion, and should not be relied upon as "official". Official PCI information should be obtained from the PCI Security Council directly or from one of their authorized Assessors.

7 Mar 2008, 4:44 PM
#5
flobster avatar

flobster

New Zenner

Join Date:
Sep 2006
Posts:
76
Plugin Contributions:
1

Re: [Done v1.3.9] Solo cards with Website Payments pro

No Problem

10 Mar 2008, 7:49 PM
#6
drbyte avatar

drbyte

Sensei

Join Date:
Jan 2004
Posts:
63,513
Plugin Contributions:
176

Re: [Done v1.3.9] Solo cards with Website Payments pro

Okay, so given that Switch has been swallowed up by Maestro and therefore Switch cards should be treated the same as Maestro cards, wouldn't it make sense instead to change this:```
'if ([B]value == "Switch" || [/B]value == "Solo") {' .
' document.checkout_payment.paypalwpp_cc_issue_month.disabled = false;' .
' document.checkout_payment.paypalwpp_cc_issue_year.disabled = false;' .
' document.checkout_payment.paypalwpp_cc_checkcode.disabled = true;' .
' if (document.checkout_payment.paypalwpp_cc_issuenumber) document.checkout_payment.paypalwpp_cc_issuenumber.disabled = true;' .
'} else if (value == "Maestro") {' .
' document.checkout_payment.paypalwpp_cc_issuenumber.disabled = false;' .
' if (document.checkout_payment.paypalwpp_cc_issue_month) document.checkout_payment.paypalwpp_cc_issue_month.disabled = true;' .
' if (document.checkout_payment.paypalwpp_cc_issue_year) document.checkout_payment.paypalwpp_cc_issue_year.disabled = true;' .
' document.checkout_payment.paypalwpp_cc_checkcode.disabled = false;' .
'} else {' .

            'if (value == "Solo") {' .
            '    document.checkout_payment.paypalwpp_cc_issue_month.disabled = false;' .
            '    document.checkout_payment.paypalwpp_cc_issue_year.disabled = false;' .
            '    document.checkout_payment.paypalwpp_cc_checkcode.disabled = true;' .
            '    if (document.checkout_payment.paypalwpp_cc_issuenumber) document.checkout_payment.paypalwpp_cc_issuenumber.disabled = true;' .
            '} else if ([B]value == "Switch" || [/B]value == "Maestro") {' .
            '    document.checkout_payment.paypalwpp_cc_issuenumber.disabled = false;' .
            '    if (document.checkout_payment.paypalwpp_cc_issue_month) document.checkout_payment.paypalwpp_cc_issue_month.disabled = true;' .
            '    if (document.checkout_payment.paypalwpp_cc_issue_year) document.checkout_payment.paypalwpp_cc_issue_year.disabled = true;' .
            '    document.checkout_payment.paypalwpp_cc_checkcode.disabled = false;' .
            '} else {' .
``` 

and also change from this:```
    if (MODULE_PAYMENT_PAYPALDP_MODULE_MODE == 'Payflow-UK' && (CC_ENABLED_SOLO=='1'[B] || CC_ENABLED_SWITCH=='1'[/B])) {
      // add extra fields for Switch/Solo cards
      for ($i = $today['year'] - 10; $i <= $today['year']; $i++) {
        $issue_year[] = array('id' => strftime('%y',mktime(0,0,0,1,1,$i)), 'text' => strftime('%Y',mktime(0,0,0,1,1,$i)));
      }
      array_splice($selection['fields'], 4, 0,
                   array(array('title' => MODULE_PAYMENT_PAYPALDP_TEXT_CREDIT_CARD_ISSUE,
                               'field' => zen_draw_pull_down_menu('paypalwpp_cc_issue_month', $expires_month, '', 'id="'.$this->code.'-cc-issue-month"' . $onFocus ) . ' ' . zen_draw_pull_down_menu('paypalwpp_cc_issue_year', $issue_year, '', 'id="'.$this->code.'-cc-issue-year"' . $onFocus),
                               'tag' => $this->code.'-cc-issue-month')));
    }
    if (MODULE_PAYMENT_PAYPALDP_MODULE_MODE == 'Payflow-UK' && CC_ENABLED_MAESTRO=='1') {
      // add extra field for Maestro cards
      array_splice($selection['fields'], 4, 0,
                   array(array('title' => MODULE_PAYMENT_PAYPALDP_TEXT_CREDIT_CARD_MAESTRO_ISSUENUMBER,
                               'field' => zen_draw_input_field('paypalwpp_cc_issuenumber', $maestronum, '', 'id="'.$this->code.'-cc-issuenumber"' . $onFocus ),
                               'tag' => $this->code.'-cc-issuenumber')));
    }
```to this:```
    if (MODULE_PAYMENT_PAYPALDP_MODULE_MODE == 'Payflow-UK' && CC_ENABLED_SOLO=='1' ) {
      // add extra fields for Switch/Solo cards
      for ($i = $today['year'] - 10; $i <= $today['year']; $i++) {
        $issue_year[] = array('id' => strftime('%y',mktime(0,0,0,1,1,$i)), 'text' => strftime('%Y',mktime(0,0,0,1,1,$i)));
      }
      array_splice($selection['fields'], 4, 0,
                   array(array('title' => MODULE_PAYMENT_PAYPALDP_TEXT_CREDIT_CARD_ISSUE,
                               'field' => zen_draw_pull_down_menu('paypalwpp_cc_issue_month', $expires_month, '', 'id="'.$this->code.'-cc-issue-month"' . $onFocus ) . ' ' . zen_draw_pull_down_menu('paypalwpp_cc_issue_year', $issue_year, '', 'id="'.$this->code.'-cc-issue-year"' . $onFocus),
                               'tag' => $this->code.'-cc-issue-month')));
    }
    if (MODULE_PAYMENT_PAYPALDP_MODULE_MODE == 'Payflow-UK' && [B]([/B]CC_ENABLED_MAESTRO=='1'[B] || CC_ENABLED_SWITCH=='1')[/B]) {
      // add extra field for Maestro cards
      array_splice($selection['fields'], 4, 0,
                   array(array('title' => MODULE_PAYMENT_PAYPALDP_TEXT_CREDIT_CARD_MAESTRO_ISSUENUMBER,
                               'field' => zen_draw_input_field('paypalwpp_cc_issuenumber', $maestronum, '', 'id="'.$this->code.'-cc-issuenumber"' . $onFocus ),
                               'tag' => $this->code.'-cc-issuenumber')));
    }
```






... or am I missing something else?

.
Zen Cart - putting the dream of business ownership within reach of anyone!
Donate to: DrByte directly or to the Zen Cart team as a whole

Remember: Any code suggestions you see here are merely suggestions. You assume full responsibility for your use of any such suggestions, including any impact ANY alterations you make to your site may have on your PCI compliance.
Furthermore, any advice you see here about PCI matters is merely an opinion, and should not be relied upon as "official". Official PCI information should be obtained from the PCI Security Council directly or from one of their authorized Assessors.

10 Mar 2008, 8:24 PM
#7
flobster avatar

flobster

New Zenner

Join Date:
Sep 2006
Posts:
76
Plugin Contributions:
1

Re: [Done v1.3.9] Solo cards with Website Payments pro

Hi Dr B

I will change my files and see how the changes you suggested work out later on tonight, but looking at the code it looks as if the solo settings have not changed,

  • it doesnt look like it is going to ask for an issue number,
  • it also looks like it is is going to ask for a start date from the card, (which is not present on the card)
  • it doesnt look like it will ask for the CVV number either on SOLO.

but i may be wrong reader the code so i will change my files and have a test of it later on.

Regards

Rob

13 Mar 2008, 10:25 AM
#8
flobster avatar

flobster

New Zenner

Join Date:
Sep 2006
Posts:
76
Plugin Contributions:
1

Re: [Done v1.3.9] Solo cards with Website Payments pro

I made the changes,

Switch and Maestro working fine, but Solo is not it still has the same options as it originally had as i suggested above.

Rob

13 Mar 2008, 1:00 PM
#9
drbyte avatar

drbyte

Sensei

Join Date:
Jan 2004
Posts:
63,513
Plugin Contributions:
176

Re: [Done v1.3.9] Solo cards with Website Payments pro

Okay, I 'get' that Switch has been swallowed up by Maestro.

Now, when and why has Solo changed how they operate?

.
Zen Cart - putting the dream of business ownership within reach of anyone!
Donate to: DrByte directly or to the Zen Cart team as a whole

Remember: Any code suggestions you see here are merely suggestions. You assume full responsibility for your use of any such suggestions, including any impact ANY alterations you make to your site may have on your PCI compliance.
Furthermore, any advice you see here about PCI matters is merely an opinion, and should not be relied upon as "official". Official PCI information should be obtained from the PCI Security Council directly or from one of their authorized Assessors.

13 Mar 2008, 4:00 PM
#10
flobster avatar

flobster

New Zenner

Join Date:
Sep 2006
Posts:
76
Plugin Contributions:
1

Re: [Done v1.3.9] Solo cards with Website Payments pro

I dont think they have changed the way they operate.

SOLO cards have always had issues numbers printed on them, always had CVV numbers and have not had start dates printed on them.

to authorise the card the bank requires a valid issue number and a valid cvv number, (they do not need a start date)

when i processed a transaction with the standard details that the form allows the bank declined it because the form sent a issue number of 00 and no cvv check number (i called them to check)

when i processed a transaction with the edits i made to the file to allow a issue number and a cvv to be entered the bank authorised the card and made the payment. (again i called the bank and they confirmed they got the 01 issue number transmitted to them)

Rob

14 Mar 2008, 2:35 AM
#11
drbyte avatar

drbyte

Sensei

Join Date:
Jan 2004
Posts:
63,513
Plugin Contributions:
176

Re: [Done v1.3.9] Solo cards with Website Payments pro

I'm puzzled. PayPal certified the module before release. So, either they missed it, or there was nothing wrong with it.

Research continues ...

.
Zen Cart - putting the dream of business ownership within reach of anyone!
Donate to: DrByte directly or to the Zen Cart team as a whole

Remember: Any code suggestions you see here are merely suggestions. You assume full responsibility for your use of any such suggestions, including any impact ANY alterations you make to your site may have on your PCI compliance.
Furthermore, any advice you see here about PCI matters is merely an opinion, and should not be relied upon as "official". Official PCI information should be obtained from the PCI Security Council directly or from one of their authorized Assessors.

14 Mar 2008, 10:14 AM
#12
flobster avatar

flobster

New Zenner

Join Date:
Sep 2006
Posts:
76
Plugin Contributions:
1

Re: [Done v1.3.9] Solo cards with Website Payments pro

ok,

just for info in your research the card i used was issued by HSBC, i dont have access to any other bank's SOLO cards but will ask around at work to see if i can check others cards.

Rob

1 Apr 2008, 5:07 PM
#13
waddtown avatar

waddtown

New Zenner

Join Date:
Feb 2005
Location:
UK
Posts:
77
Plugin Contributions:
0

Re: [Done v1.3.9] Solo cards with Website Payments pro

DrByte:

Okay, so given that Switch has been swallowed up by Maestro and therefore Switch cards should be treated the same as Maestro cards, wouldn't it make sense instead to change this:```
'if ([B]value == "Switch" || [/B]value == "Solo") {' .
' document.checkout_payment.paypalwpp_cc_issue_month.disabled = false;' .
' document.checkout_payment.paypalwpp_cc_issue_year.disabled = false;' .
' document.checkout_payment.paypalwpp_cc_checkcode.disabled = true;' .
' if (document.checkout_payment.paypalwpp_cc_issuenumber) document.checkout_payment.paypalwpp_cc_issuenumber.disabled = true;' .
'} else if (value == "Maestro") {' .
' document.checkout_payment.paypalwpp_cc_issuenumber.disabled = false;' .
' if (document.checkout_payment.paypalwpp_cc_issue_month) document.checkout_payment.paypalwpp_cc_issue_month.disabled = true;' .
' if (document.checkout_payment.paypalwpp_cc_issue_year) document.checkout_payment.paypalwpp_cc_issue_year.disabled = true;' .
' document.checkout_payment.paypalwpp_cc_checkcode.disabled = false;' .
'} else {' .

            'if (value == "Solo") {' .
            '    document.checkout_payment.paypalwpp_cc_issue_month.disabled = false;' .
            '    document.checkout_payment.paypalwpp_cc_issue_year.disabled = false;' .
            '    document.checkout_payment.paypalwpp_cc_checkcode.disabled = true;' .
            '    if (document.checkout_payment.paypalwpp_cc_issuenumber) document.checkout_payment.paypalwpp_cc_issuenumber.disabled = true;' .
            '} else if ([B]value == "Switch" || [/B]value == "Maestro") {' .
            '    document.checkout_payment.paypalwpp_cc_issuenumber.disabled = false;' .
            '    if (document.checkout_payment.paypalwpp_cc_issue_month) document.checkout_payment.paypalwpp_cc_issue_month.disabled = true;' .
            '    if (document.checkout_payment.paypalwpp_cc_issue_year) document.checkout_payment.paypalwpp_cc_issue_year.disabled = true;' .
            '    document.checkout_payment.paypalwpp_cc_checkcode.disabled = false;' .
            '} else {' .
``` 
> 
> and also change from this:```
    if (MODULE_PAYMENT_PAYPALDP_MODULE_MODE == 'Payflow-UK' && (CC_ENABLED_SOLO=='1'[B] || CC_ENABLED_SWITCH=='1'[/B])) {
      // add extra fields for Switch/Solo cards
      for ($i = $today['year'] - 10; $i <= $today['year']; $i++) {
        $issue_year[] = array('id' => strftime('%y',mktime(0,0,0,1,1,$i)), 'text' => strftime('%Y',mktime(0,0,0,1,1,$i)));
      }
      array_splice($selection['fields'], 4, 0,
                   array(array('title' => MODULE_PAYMENT_PAYPALDP_TEXT_CREDIT_CARD_ISSUE,
                               'field' => zen_draw_pull_down_menu('paypalwpp_cc_issue_month', $expires_month, '', 'id="'.$this->code.'-cc-issue-month"' . $onFocus ) . ' ' . zen_draw_pull_down_menu('paypalwpp_cc_issue_year', $issue_year, '', 'id="'.$this->code.'-cc-issue-year"' . $onFocus),
                               'tag' => $this->code.'-cc-issue-month')));
    }
    if (MODULE_PAYMENT_PAYPALDP_MODULE_MODE == 'Payflow-UK' && CC_ENABLED_MAESTRO=='1') {
      // add extra field for Maestro cards
      array_splice($selection['fields'], 4, 0,
                   array(array('title' => MODULE_PAYMENT_PAYPALDP_TEXT_CREDIT_CARD_MAESTRO_ISSUENUMBER,
                               'field' => zen_draw_input_field('paypalwpp_cc_issuenumber', $maestronum, '', 'id="'.$this->code.'-cc-issuenumber"' . $onFocus ),
                               'tag' => $this->code.'-cc-issuenumber')));
    }
```to this:```
    if (MODULE_PAYMENT_PAYPALDP_MODULE_MODE == 'Payflow-UK' && CC_ENABLED_SOLO=='1' ) {
      // add extra fields for Switch/Solo cards
      for ($i = $today['year'] - 10; $i <= $today['year']; $i++) {
        $issue_year[] = array('id' => strftime('%y',mktime(0,0,0,1,1,$i)), 'text' => strftime('%Y',mktime(0,0,0,1,1,$i)));
      }
      array_splice($selection['fields'], 4, 0,
                   array(array('title' => MODULE_PAYMENT_PAYPALDP_TEXT_CREDIT_CARD_ISSUE,
                               'field' => zen_draw_pull_down_menu('paypalwpp_cc_issue_month', $expires_month, '', 'id="'.$this->code.'-cc-issue-month"' . $onFocus ) . ' ' . zen_draw_pull_down_menu('paypalwpp_cc_issue_year', $issue_year, '', 'id="'.$this->code.'-cc-issue-year"' . $onFocus),
                               'tag' => $this->code.'-cc-issue-month')));
    }
    if (MODULE_PAYMENT_PAYPALDP_MODULE_MODE == 'Payflow-UK' && [B]([/B]CC_ENABLED_MAESTRO=='1'[B] || CC_ENABLED_SWITCH=='1')[/B]) {
      // add extra field for Maestro cards
      array_splice($selection['fields'], 4, 0,
                   array(array('title' => MODULE_PAYMENT_PAYPALDP_TEXT_CREDIT_CARD_MAESTRO_ISSUENUMBER,
                               'field' => zen_draw_input_field('paypalwpp_cc_issuenumber', $maestronum, '', 'id="'.$this->code.'-cc-issuenumber"' . $onFocus ),
                               'tag' => $this->code.'-cc-issuenumber')));
    }
```
> 
> 
> 
> 
> 
> 
> ... or am I missing something else?

I have tried the code changes suggested here with no problems
Solo cards are now processed perfectly.
The solo card I was using did not have an issue number but did have a start date.
I hope this helps

Rachel;)
2 Apr 2008, 10:20 AM
#14
flobster avatar

flobster

New Zenner

Join Date:
Sep 2006
Posts:
76
Plugin Contributions:
1

Re: [Done v1.3.9] Solo cards with Website Payments pro

I think this is the problem, some solo cards seem to have issues numbers and others not, also some have start dates and others not,
which bank issued the solo card you used?

2 Apr 2008, 10:39 AM
#15
waddtown avatar

waddtown

New Zenner

Join Date:
Feb 2005
Location:
UK
Posts:
77
Plugin Contributions:
0

Re: [Done v1.3.9] Solo cards with Website Payments pro

flobster:

I think this is the problem, some solo cards seem to have issues numbers and others not, also some have start dates and others not,
which bank issued the solo card you used?

The card was issued by natwest

14 Apr 2008, 2:41 PM
#16
thefashionhut avatar

thefashionhut

New Zenner

Join Date:
Oct 2007
Location:
UK
Posts:
71
Plugin Contributions:
0

Re: [Done v1.3.9] Solo cards with Website Payments pro

Did we ever come to a conclusion in respect of Maestro/Switch?

**There is no such thing as too much clothing..

http://www.thefashionhut.co.uk**

18 Jun 2008, 12:12 PM
#17
nedward avatar

nedward

New Zenner

Join Date:
Mar 2007
Posts:
90
Plugin Contributions:
0

Re: [Done v1.3.9] Solo cards with Website Payments pro

flobster:

Hi Dr B

I will change my files and see how the changes you suggested work out later on tonight, but looking at the code it looks as if the solo settings have not changed,

  • it doesnt look like it is going to ask for an issue number,
  • it also looks like it is is going to ask for a start date from the card, (which is not present on the card)
  • it doesnt look like it will ask for the CVV number either on SOLO.

but i may be wrong reader the code so i will change my files and have a test of it later on.

Regards

Rob

Hi did anyone manage to get zencart to ask for a cvv number on Solo cards?

I've had a few failed transactions and this is the answer, me thinks.

Thanks in advance
Steven