You are viewing this forum as a guest. Login to an existing account, or create a new account, to reply to topics and to create new topics.
Pages: 1
I've just had an email from Sage Pay saying that version 2.23 Form will be removed on July 31st 2015
Sage Pay Version 3 will be the only option after the above date
Nick - please say that you will be updating the Sage Pay Form Processing Gateway well before this date as most of my orders go through Sage Pay
Offline
Hi
The email states
July 31st 2015 - support for older payments systems (v2.0-2.23 Form) will be removed
I dont think this means it will stop working, just they will stop supporting it??
I think Nick is on it anyway.
Rob
Offline
Hi
I was thinking 'support' meant tech support as well, but when I spoke to Sage Pay support they said that the older versions will stop working. They also said that version 3 will make Sage Pay Form work on mobile devices and tablets as version 2.0-2.23 do not.
I've read over the tech document and the changes would be quick for Nick to implement with his coding skills.
Offline
I hope the update is available before July as I have just had an email from SagePay that states:
"Important – Mandatory changes required on your account
You are not running our latest protocol and need to upgrade to V3. On 31 July 2015 support will be discontinued
for your current version and you may not be able to process payments. To avoid any interruption of service
please visit our website wwwsagepay.com/migrate for instructions on how to upgrade to V3."
Offline
Hi, has there been any progression with this? I'm getting letters and phone calls from Sagepay about this
Offline
We are too. The updates needed for this are on the schedule to be completed next week. All users with tickets pending in our ticket system will receive a notice that the update is ready, with install instructions.
Offline
Is there an update yet for the Sage Pay processing gateway code as Sage Pay are sending me emails stating:
"The deadline for upgrading to Sage Pay Version 3 is July 31st 2015, after which you will not be able to process payments and support for your current version of Sage Pay will be discontinued."
Is the update a matter of changing the php code in 'Form Display Code' or does the update involve changes to other code within Europacart ?
Offline
Hi kev. Please submit a support ticket on this (https://kryptronic.com/Form/TECHTICKET) and I'll get you on the notification list for when these updates are available. I'm working on it currently and hope to have it finished up and ready sometime next week, but it will definitely be ready within two weeks. Just get on the list by submitting a ticket and you'll be the first to know it's ready.
Offline
Nick FYI,
The code you posted right at the end of this post:
https://forum.kryptronic.com/viewtopic.php?id=30659
encrypts the data correctly and Sagepay 3.0 payment form works, after adding the additional fields.
Offline
Thanks. I was aware, but hadn't fully tested it yet. So it's your impression that this is a drop-in replacement for V3? You've tested it?
Offline
I went live with it a few hours ago.
All customers that used sagepay form method had no issues.
All payments have been received.
I only use the form method, not the server method so didn't try anything with that.
The following fields were enough for me. Again, there are more optional ones that didn't matter to me.
$stuff = "VendorTxCode=" . $order['order']['id'] . "&"; $stuff .= "Amount=" . $order['order']['ordertotal'] . "&"; $stuff .= "Currency=" . $this->globals('core_settings.core.basecurrency') . "&"; $stuff .= "Description=" . "Online Order" . "&"; $stuff .= "SuccessURL=" . $url_ok . "&"; $stuff .= "FailureURL=" . $url_bad . "&"; $stuff .= "CustomerEmail=" . $order['order']['email'] . "&"; $stuff .= "VendorEmail=" . $this->globals('core_settings.core.siteowneremail') . "&"; $stuff .= "BillingSurname=". $order['order']['lname'] . "&"; $stuff .= "BillingFirstnames=" . $order['order']['fname'] . "&"; $stuff .= "BillingAddress1=" . $order['order']['addone'] . "&"; $stuff .= "BillingAddress2=" . $order['order']['addtwo'] . "&"; $stuff .= "BillingCity=". $order['order']['city'] ."&"; //$stuff .= "BillingState=". $order['order']['stateprov'] . "&"; $stuff .= "BillingCountry=". $order['order']['countryabb'] . "&"; $stuff .= "BillingPostCode=" . $order['order']['postalcode'] . "&"; $stuff .= "DeliverySurname=". $order['items'][0]['lname'] . "&"; $stuff .= "DeliveryFirstnames=". $order['items'][0]['fname'] . "&"; $stuff .= "DeliveryAddress1=" . $order['items'][0]['addone'] . "&"; $stuff .= "DeliveryAddress2=" . $order['items'][0]['addtwo'] . "&"; $stuff .= "DeliveryCity=". $order['items'][0]['city'] ."&"; $stuff .= "DeliveryCountry=". $order['order']['countryabb'] . "&"; $stuff .= "DeliveryPostCode=" . $order['items'][0]['postalcode'] . "&";
I assume I can get rid of the simpleXor function at the bottom??
Offline
Offline
I assume I can get rid of the simpleXor function at the bottom??
Doesn't appear that way. I have to review the code, but I thing further down $stuff is run through that function.
Offline
Nick will you be running this in an update?
Offline
This is the code we have used for the past 18 months. There are a few differences to the code above like removing none alphanumeric characters from the postcode (that will stop SagePay proceeding).
<?php // +-- // | Get a few global variables. // +-- $eol = $this->globals('core.eol'); $order = $this->globals('ecom.order_summary'); // +-- // | Create the SHIPPING address array. // +-- $ship_addy = array('lname' => $order['order']['lname'], 'fname' => $order['order']['fname'], 'addone' => $order['order']['addone'], 'addtwo' => $order['order']['addtwo'], 'city' => $order['order']['city'], 'stateprov' => $order['order']['stateprov'], 'postalcode' =>$order['order']['postalcode'], 'country' => $order['order']['country']); foreach ($order['items'] as $num => $item) { if ($item['shipstatus'] != 'N') { $ship_addy = array('lname' => $item['lname'], 'fname' => $item['fname'], 'addone' => $item['addone'], 'addtwo' => $item['addtwo'], 'city' => $item['city'], 'stateprov' => $item['stateprov'], 'postalcode' => $item['postalcode'], 'country' => $item['country']); break 1; } // End of if statement. } // End of foreach statement. // +-- // | Load delivery country abbreviation // +-- $CORE_App =& $this->quick_object('CORE_App','core'); $stateprovabbs = $CORE_App->get_stateprov_abbs(); $countryabbs = $CORE_App ->get_country_abbs(); if (!(empty($stateprovabbs[$ship_addy['stateprov']]))) {$ship_addy['stateprov'] = $stateprovabbs[$ship_addy['stateprov']];} if (!(empty($stateprovabbs[$order['order']['stateprov']]))) {$order['order']['stateprov'] = $stateprovabbs[$order['order']['stateprov']];} if (!(empty($countryabbs[$ship_addy['country']]))) {$ship_addy['country'] = $countryabbs[$ship_addy['country']];} if (!(empty($countryabbs[$order['order']['country']]))) {$order['order']['country'] = $countryabbs[$order['order']['country']];} // +-- // | Printable form instructions. // +-- $instructions = "After verifying your order information and clicking the 'Continue' button, you will be directed to our online processing partner's secure site to enter your payment information. Once your payment information is entered and verified, you will be directed back to this web site for your order confirmation."; // +-- // | Create our relay URL. // +-- $url_relay = $this->globals('core.url_ssl') . '/utilities/ecomrelay.php'; $url_bad = $url_relay . '?PROTXtrans=' . $order['order']['id'] . '&PROTXresp=FAILED'; $url_ok = $url_relay . '?PROTXtrans=' . $order['order']['id'] . '&PROTXresp=OK'; // +-- // | Set up the olpform array. // +-- $olpform = array('url' => 'https://live.sagepay.com/gateway/service/vspform-register.vsp', 'button' => 'Continue', 'fields' => array()); // +-- // | Create the SagePay Form Hash Field. // +-- $stuff = "VendorTxCode=" . $order['order']['id'] . "&"; $stuff .= "Amount=" . $order['order']['ordertotal'] . "&"; $stuff .= "Currency=" . $this->globals('core_settings.core.basecurrency') . "&"; $stuff .= "Description=" . "Online Order" . "&"; $stuff .= "SuccessURL=" . $url_ok . "&"; $stuff .= "FailureURL=" . $url_bad . "&"; $stuff .= "CustomerName=" . $order['order']['fname'] . ' ' . $order['order']['lname'] . "&"; $stuff .= "CustomerEmail=" . $order['order']['email'] . "&"; $stuff .= "VendorEmail=" . $this->globals('core_settings.core.siteowneremail') . "&"; $stuff .= "BillingSurname=" . $order['order']['lname'] . "&"; $stuff .= "BillingFirstnames=" . $order['order']['fname'] . "&"; $stuff .= "BillingAddress1=" . $order['order']['addone'] . "&"; $stuff .= "BillingAddress2=" . $order['order']['addtwo'] . "&"; $stuff .= "BillingCity=" . $order['order']['city'] . "&"; $stuff .= "BillingState=" . $order['order']['stateprov'] . "&"; $stuff .= "BillingPostCode=" . substr(preg_replace('/[^A-Za-z0-9]/','',$order['order']['postalcode']),0,10) . "&"; $stuff .= "BillingCountry=" . $order['order']['country'] . "&"; if ($order['order']['phone']) { $stuff .= "BillingPhone=" . $order['order']['phone'] . "&";} $stuff .= "DeliverySurname=" . $ship_addy['lname'] . "&"; $stuff .= "DeliveryFirstnames=" . $ship_addy['fname'] . "&"; $stuff .= "DeliveryAddress1=" . $ship_addy['addone'] . "&"; $stuff .= "DeliveryAddress2=" . $ship_addy['addtwo'] . "&"; $stuff .= "DeliveryCity=" . $ship_addy['city'] . "&"; $stuff .= "DeliveryState=" . $ship_addy['stateprov'] . "&"; $stuff .= "DeliveryPostCode=" . substr(preg_replace('/[^A-Za-z0-9]/','',$ship_addy['postalcode']),0,10) . "&"; $stuff .= "DeliveryCountry=" . $ship_addy['country'] . "&"; $stuff .= "AllowGiftAid=0&ApplyAVSCV2=0&Apply3DSecure=0"; $blockSize = 16; $padd = ""; $length = $blockSize - (strlen($stuff) % $blockSize); for ($i = 1; $i <= $length; $i++) {$padd .= chr($length);} $stuff .= $padd; $crypt = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $order['gateway']['transkey'], $stuff, MCRYPT_MODE_CBC, $order['gateway']['transkey']); $crypt = "@" . strtoupper(bin2hex($crypt)); // +-- // | Create the HIDDEN fields for the form. // +-- $olpform['fields']['HIDDEN'][] = array('name' => 'VPSProtocol', 'value' => '3.00'); $olpform['fields']['HIDDEN'][] = array('name' => 'TxType', 'value' => 'DEFERRED'); $olpform['fields']['HIDDEN'][] = array('name' => 'Vendor', 'value' => $order['gateway']['userid']); $olpform['fields']['HIDDEN'][] = array('name' => 'Crypt', 'value' => $crypt); // +-- // | Create the DISPLAY fields for the form. // +-- $olpform['fields']['DISPLAY'][] = array('type' => 'PAYFORMCONTINUE', 'params' => array('name' => 'ecom_continue', 'required' => 1, 'display' => 'Payment Information', 'desc' => $instructions, 'option' => 'Enter Payment Information')); // +-- // | Globalize the $olpform array and return. // +-- $this->globals('ecom.olpform',$olpform); ?>
Last edited by sdn (08-04-2015 10:43:21)
Offline
Any word on a release date as the messages from Sage Pay keep coming:
"Upgrade to Sage Pay Version 3 or cease trading
It is essential you upgrade to Sage Pay Version 3 to continue trading. These mandatory changes must be completed before July 31st 2015.
Failure to take action before this deadline means that you will not be able to process payments through your website and all support for your current version of Sage Pay will be discontinued."
Offline
kev wrote:
Any word on a release date as the messages from Sage Pay keep coming:
"Upgrade to Sage Pay Version 3 or cease trading
It is essential you upgrade to Sage Pay Version 3 to continue trading. These mandatory changes must be completed before July 31st 2015.
Failure to take action before this deadline means that you will not be able to process payments through your website and all support for your current version of Sage Pay will be discontinued."
I have had the same and am starting to get customers asking when will it be updated for fear of not getting payments from July 31st.
Offline
Any news on a patch for this?
Offline
Kryptronic has released updated code for SagePay V3. Please review the link below for information on how to apply the updated code to your gateway integration:
https://central.kryptronic.com/public/n … 2015A.html
Offline
Pages: 1