Announcement

Collapse
No announcement yet.

Error 3109 : The BillingFirstnames field is required.

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Error 3109 : The BillingFirstnames field is required.

    Hi

    I'm aware that there is a thread discussing this problem already and I know how it could be fixed for the other person but that solution will not work for my sites.

    Ok, an explanation of what I want to do and why... In older versions of Actinic there was only one field for the customers name so in order to get surname separated from first name we changed changed the DELIVERY NAME to be surname and DELIVERY JOB TITLE to be first name and these have remained the same through every upgrade until V10 with no problems, now however the checkout process has been changed I get this error when the order is confirmed.


    VSP Form Transaction Error

    This transaction attempt has failed. We are unable to redirect you back to the web store from which you were purchasing. The details of the failure are given below.

    Status: MALFORMED

    Status Detail: 3109 : The BillingFirstnames field is required.



    I would change to using actinics setup, first name and surname fields but we export the data to sage, custom reports and a mysql based order tracking system so this would be a real pain.

    What I am hoping is that someone can help me to change the below script to use the two fields I require. This I believe will be possible and presents a much quicker resolution to my problem, but I don't know the correct syntax.

    Any help would be greatly appreciated.


    Code:
    #
    # add the invoice address and customer name
    #
    my ($sFirstName, $sLastName);
    $sLastName = $::InvoiceContact{NAME};                # default to a blank first name and complete last name
    if ($sLastName =~ /^(.+)\s+(\S+)/)                    # if the name field looks to contain at least two name parts
        {
        $sFirstName = $1;                                        # break the name up
        $sLastName = $2;
        }
       
    my ($sCountry, $sState) = GetProtxLocationCodes('
    
        INVOICE');
           
        $sCrypt .= "BillingSurname=" . $sLastName . "&";
        $sCrypt .= "BillingFirstnames=" . $sFirstName . "&";
        $sCrypt .= "BillingAddress1=" . $::InvoiceContact{ADDRESS1} . "&";
        $sCrypt .= "BillingAddress2=" .  $::InvoiceContact{ADDRESS2} . "&";
        $sCrypt .= "BillingCity=" . $::InvoiceContact{ADDRESS3} . "&";
        $sCrypt .= "BillingState=" . $sState . "&";
        $sCrypt .= "BillingCountry=" . $sCountry . "&";
        $sCrypt .= "BillingPostCode=" . substr($::InvoiceContact{POSTALCODE}, 0, 10);
        if (length($::InvoiceContact{PHONE})!=0)  { $sCrypt .= "&BillingPhone=" . $::InvoiceContact{PHONE}; }
    
    
        #
        # add the delivery address
        #
        $sLastName = $::OCCShipData{NAME};                # default to a blank first name and complete last name
        if ($sLastName =~ /^(.+)\s+(\S+)/)                    # if the name field looks to contain at least two name parts
            {
            $sFirstName = $1;                                        # break the name up
            $sLastName = $2;
            }
           
        ($sCountry, $sState) = GetProtxLocationCodes('DELIVERY');
           
        $sCrypt .= "&DeliverySurname=" . $sLastName . "&";
        $sCrypt .= "DeliveryFirstnames=" . $sFirstName . "&";
        $sCrypt .= "DeliveryAddress1=" .$::OCCShipData{ADDRESS1} . "&";
        $sCrypt .= "DeliveryAddress2=" . $::OCCShipData{ADDRESS2} . "&";
        $sCrypt .= "DeliveryCity=" . $::OCCShipData{ADDRESS3} . "&";
        $sCrypt .= "DeliveryState=" . $sState . "&";
        $sCrypt .= "DeliveryCountry=" . $sCountry . "&";
        if (length($::OCCShipData{PHONE}) != 0) {$sCrypt .= "DeliveryPhone=" . $::OCCShipData{PHONE} . "&"; } 
        $sCrypt .= "DeliveryPostCode=" . substr($::OCCShipData{POSTALCODE}, 0, 10);

    #2
    The solution appears to be to copy the script from the V9 folder and overright the one in the V10 folder. It needs some testing but it does forward you to the SagePay (Protx) payment page.

    Comment

    Working...
    X