[interchange] Vend::Payment::PaypalExpress v1.0.7 from http://kiwi.zolotek.net:
Stefan Hornburg
interchange-cvs at icdevgroup.org
Mon Feb 8 10:21:53 UTC 2010
commit a9753bc4a2485b06dc1433a4adac1288a542d981
Author: Stefan Hornburg (Racke) <racke at linuxia.de>
Date: Mon Feb 8 11:16:02 2010 +0100
Vend::Payment::PaypalExpress v1.0.7 from http://kiwi.zolotek.net:
Fix for yet another variation in the way that Paypal handle Canadian province names.
So we have 'British Columbia', 'BC', and now 'B.C.' formats.
Also, a patch to allow use of the [assign] tag in shipping;
a patch to allow 'use_billing_override' to send billing addresses;
and a patch to display Long rather than Short PayPal error message to customers
(last three contributed by Josh Lavin).
lib/Vend/Payment/PaypalExpress.pm | 39 +++++++++++++++++++++++-------------
1 files changed, 25 insertions(+), 14 deletions(-)
---
diff --git a/lib/Vend/Payment/PaypalExpress.pm b/lib/Vend/Payment/PaypalExpress.pm
index 5d49a49..2b528e1 100644
--- a/lib/Vend/Payment/PaypalExpress.pm
+++ b/lib/Vend/Payment/PaypalExpress.pm
@@ -1,6 +1,6 @@
# Vend::Payment::PaypalExpress - Interchange Paypal Express Payments module
#
-# Copyright (C) 2009 Zolotek Resources Ltd
+# Copyright (C) 2010 Zolotek Resources Ltd
# All Rights Reserved.
#
# Author: Lyn St George <info at zolotek.net>
@@ -182,7 +182,8 @@ Options that may be set either in the route or in the page:
* reqconfirmshipping - this specifies that a Paypal customer must have his address 'confirmed'
* addressoverride - this specifies that you will ship only to the address IC has on file (including
the name and email); your customer needs to login to IC first before going to Paypal
- other options are also settable.
+ * use_billing_override - sends billing address instead of shipping to PayPal (use with addressoverride)
+ * other options are also settable.
Testing: while the obvious test choice is to use their sandbox, I've always found it a bit of a dog's breakfast
and never trusted it. Much better to test on the live site, and just recyle money between your personal and
@@ -190,6 +191,14 @@ Testing: while the obvious test choice is to use their sandbox, I've always foun
=head1 Changelog
+version 1.0.7 December 2009
+ - another variation in Canadian Province names has just come to light, whereby they sometimes send
+ the 2 letter code with periods, eg B.C. as well as BC. Thanks to Steve Graham for finding this
+ - patch to allow use of the [assign] tag in shipping
+ - patch to allow 'use_billing_override' to send billing addresses
+ - patch to display Long rather than Short PP error message to customers
+ Thanks to Josh Lavin for these last three
+
version 1.0.6 September 2009
- added 'use strict' and fixed odd errors (and removed giropay vestiges that belong in next version)
- made itemdetails loop through basket properly
@@ -246,7 +255,7 @@ BEGIN {
die $msg;
}
- ::logGlobal("%s v1.0.6 payment module loaded",__PACKAGE__)
+ ::logGlobal("%s v1.0.7 payment module loaded",__PACKAGE__)
unless $Vend::Quiet or ! $Global::VendRoot;
}
@@ -305,19 +314,20 @@ my $paymentAction = $::Values->{paymentaction} || charge_param('paymentacti
my $buyerEmail = $::Values->{buyeremail} || '';
my $custom = $Session->{id}; # should not be needed
# these next taken from IC after customer has logged in, and used in '$addressOverride'
-my $name = "$::Values->{fname} $::Values->{lname}" || '';
-my $address1 = $::Values->{address1};
-my $address2 = $::Values->{address2};
-my $city = $::Values->{city};
-my $state = $::Values->{state};
-my $zip = $::Values->{zip};
-my $country = $::Values->{country};
+my $usebill = $::Values->{use_billing_override} || charge_param('use_billing_override');
+my $name = $usebill ? "$::Values->{b_fname} $::Values->{b_lname}" || '' : "$::Values->{fname} $::Values->{lname}" || '';
+my $address1 = $usebill ? $::Values->{b_address1} : $::Values->{address1};
+my $address2 = $usebill ? $::Values->{b_address2} : $::Values->{address2};
+my $city = $usebill ? $::Values->{b_city} : $::Values->{city};
+my $state = $usebill ? $::Values->{b_state} : $::Values->{state};
+my $zip = $usebill ? $::Values->{b_zip} : $::Values->{zip};
+my $country = $usebill ? $::Values->{b_country} : $::Values->{country};
$country = 'GB' if ($country eq 'UK'); # plonkers reject UK
# for a DO request
my $itemTotal = $::Values->{itemtotal} || Vend::Interpolate::subtotal() || '';
$itemTotal = sprintf '%.2f', $itemTotal;
-my $shipTotal = $::Values->{shiptotal} || Vend::Interpolate::shipping($::Values->{mv_shipmode}) || '';
+my $shipTotal = $::Values->{shiptotal} || Vend::Interpolate::tag_shipping() || '';
$shipTotal = sprintf '%.2f', $shipTotal;
my $taxTotal = $::Values->{taxtotal} || Vend::Interpolate::salestax() || '';
$taxTotal = sprintf '%.2f', $taxTotal;
@@ -441,8 +451,8 @@ my $receiverEmail = $::Values->{receiveremail} || ''; # address of refund recip
if (!$result{Token}) {
if ($result{Ack} eq 'Failure') {
- foreach my $i (@result{Errors}) {
- $::Session->{errors}{PaypalExpress} .= "$i->{ShortMessage}, ";
+ foreach my $i ($result{Errors}) {
+ $::Session->{errors}{PaypalExpress} .= "$i->{LongMessage}, ";
}
$::Session->{errors}{PaypalExpress} =~ s/, $//;
}
@@ -480,7 +490,7 @@ return $Tag->deliver({ location => $redirecturl })
# another address, eg it is a wish list.
if (($result{Ack} eq "Success") and ($::Values->{pp_use_billing_address} == 1)) {
$::Values->{b_phone_day} = $result{GetExpressCheckoutDetailsResponseDetails}{ContactPhone};
- $::Values->{b_email} = $result{GetExpressCheckoutDetailsResponseDetails}{PayerInfo}{Payer};
+ $::Values->{email} = $result{GetExpressCheckoutDetailsResponseDetails}{PayerInfo}{Payer};
$::Values->{payerid} = $result{GetExpressCheckoutDetailsResponseDetails}{PayerInfo}{PayerID};
$::Values->{payerstatus} = $result{GetExpressCheckoutDetailsResponseDetails}{PayerInfo}{PayerStatus};
$::Values->{payerbusiness} = $result{GetExpressCheckoutDetailsResponseDetails}{PayerInfo}{PayerBusiness};
@@ -538,6 +548,7 @@ return $Tag->deliver({ location => $redirecturl })
$country = $::Values->{country} || $::Values->{b_country};
$state = $::Values->{state} || $::Values->{b_state};
+ $state =~ s/\.\s*//g; # yet another variation for Canadian Provinces includes periods, eg B.C. (waiting for B. C.)
# Remap Canadian provinces rather than lookup the db, as some Paypal names are incomplete wrt the official names.
# It seems that some PP accounts, possibly older ones, send the 2 letter abbreviation rather than the full name.
More information about the interchange-cvs
mailing list