From 4f0b7a7e3bfddf566e24e6051bd0e7d4b55cee0a Mon Sep 17 00:00:00 2001 From: Colin Kuskie Date: Thu, 7 Oct 2010 14:36:46 -0700 Subject: [PATCH] Finish conversion of Ogone to Moose. --- lib/WebGUI/Shop/PayDriver/Ogone.pm | 18 +++---- t/Shop/PayDriver/Ogone.t | 87 +++++------------------------- 2 files changed, 21 insertions(+), 84 deletions(-) diff --git a/lib/WebGUI/Shop/PayDriver/Ogone.pm b/lib/WebGUI/Shop/PayDriver/Ogone.pm index fdf17159d..80bd95ee6 100644 --- a/lib/WebGUI/Shop/PayDriver/Ogone.pm +++ b/lib/WebGUI/Shop/PayDriver/Ogone.pm @@ -25,7 +25,7 @@ use Data::Dumper; use Moose; use WebGUI::Definition::Shop; extends 'WebGUI::Shop::PayDriver'; -define pluginName => [qw/label PayDriver_Ogone/]; +define pluginName => [qw/Ogone PayDriver_Ogone/]; property pspid => ( fieldType => 'text', label => ['psp id', 'PayDriver_Ogone'], @@ -164,14 +164,14 @@ sub ogoneCheckoutButton { my $orderId = $transaction->getId; my $description = "Transaction ID: $orderId"; - my $pspId = $self->get('pspid'); + my $pspId = $self->pspid; my $name = join " ", $address->get( 'firstName' ), $address->get( 'lastName' ); my $email = $address->get('email'); - my $currency = $self->get('currency'); + my $currency = $self->currency; # Generate sha signature the payment data - my $passphrase = join '', $orderId, $amount, $currency, $pspId, $self->get('shaSecret'); + my $passphrase = join '', $orderId, $amount, $currency, $pspId, $self->shaSecret; my $shaSignature = uc sha1_hex( $passphrase ); # Define the data to be sent to ogone @@ -180,7 +180,7 @@ sub ogoneCheckoutButton { orderID => $orderId, amount => $amount, currency => $currency, - language => $self->get('locale'), + language => $self->locale, CN => join( " ", $address->get('firstName'), $address->get('lastName') ), EMAIL => $email, ownerZIP => $address->get( 'code' ), @@ -209,7 +209,7 @@ sub ogoneCheckoutButton { # Construct actual checkout form - my $action = $self->get('useTestMode') + my $action = $self->useTestMode ? 'https://secure.ogone.com/ncol/test/orderstandard.asp' : 'https://secure.ogone.com/ncol/prod/orderstandard.asp' ; @@ -252,13 +252,13 @@ sub checkPostbackSHA { # Fetch and format amount from transaction my $amount = $transaction->get('amount'); $amount =~ s/\.00$//; # remove trailing .00 - my $currency = $self->get('currency'); + my $currency = $self->currency; # Construct the passphrase... my $passphrase = join '', $transactionId, $currency, $amount, map( { $url->unescape( $form->process( $_ ) ) } qw{ PM ACCEPTANCE STATUS CARDNO PAYID NCERROR BRAND } ), - $self->get('postbackSecret'); + $self->postbackSecret; # and obtain its sha-1 hash in uppercase my $shaSignature = uc sha1_hex( $passphrase ); @@ -457,7 +457,7 @@ sub www_getCredentials { }; $self->appendCartVariables($var); - my $output = $self->processTemplate($self->get("summaryTemplateId"), $var); + my $output = $self->processTemplate($self->summaryTemplateId, $var); return $session->style->userStyle($output); } diff --git a/t/Shop/PayDriver/Ogone.t b/t/Shop/PayDriver/Ogone.t index b3f823e5a..f73eee280 100644 --- a/t/Shop/PayDriver/Ogone.t +++ b/t/Shop/PayDriver/Ogone.t @@ -26,7 +26,7 @@ my $session = WebGUI::Test->session; #---------------------------------------------------------------------------- # Tests -plan tests => 45; +plan tests => 12; #---------------------------------------------------------------------------- # figure out if the test can actually run @@ -43,80 +43,16 @@ my $driver; # Test incorrect for parameters -# Test functionality -my $signature = '-----BEGIN PKCS7----- -MIIHPwYJKoZIhvcNAQcEoIIHMDCCBywCAQExggE0MIIB -MAIBADCBmDCBkjELMAkGA1UEBhMCVVMxCzAJBgNVBAgT -AkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYD -VQQKEwtQYXlQYWwgSW5jLjEVMBMGA1UECxQMc3RhZ2Ux -X2NlcnRzMRMwEQYDVQQDFApzdGFnZTFfYXBpMRwwGgYJ -KoZIhvcNAQkBFg1yZUBwYXlwYWwuY29tAgEAMA0GCSqG -SIb3DQEBAQUABIGAiJLqJ8905lNbvKoa715KsOJtSOGy -4d6fEKV7+S8KU8E/RK0SFmMgGPRpmXdzx9MXCU43/tXj -lyuyOeZQUBaAIaWoNpfZmBUYIvJVh4W+bDH6JUkugelp -CaTjxXOx/F1qj79D9z06AK+N3yW1fM41fM7X9Q1Bc12g -THjJUKXcIIcxCzAJBgUrDgMCGgUAMIGkBgkqhkiG9w0B -BwEwFAYIKoZIhvcNAwcECOsHG9QOvcJFgIGAwmbN5Acd -cnCH0ZTnsSOq5GtXeQf0j2jCBCg6y7b4ZXQwgdqUC/7x -eb0yicuiRVuRB9WLr/0rGFuSYENpKVUqWYjnlg3TsxLP -IxDCp6lfFqsrclppyZ9CP+xim7y0qKqZZufJG8HgCHxk -3BPD6LqByjQjDVpqKKmCNJ1HlwXGN+SgggOWMIIDkjCC -AvugAwIBAgIBADANBgkqhkiG9w0BAQQFADCBkzELMAkG -A1UEBhMCVVMxCzAJBgNVBAgTAkNBMREwDwYDVQQHEwhT -YW4gSm9zZTEPMA0GA1UEChMGUGF5UGFsMRwwGgYDVQQL -ExNTeXN0ZW1zIEVuZ2luZWVyaW5nMRMwEQYDVQQDEwpT -b3V2aWsgRGFzMSAwHgYJKoZIhvcNAQkBFhFzb3VkYXNA -cGF5cGFsLmNvbTAeFw0wNDA1MjExODE4NTBaFw0wNDA2 -MjAxODE4NTBaMIGTMQswCQYDVQQGEwJVUzELMAkGA1UE -CBMCQ0ExETAPBgNVBAcTCFNhbiBKb3NlMQ8wDQYDVQQK -EwZQYXlQYWwxHDAaBgNVBAsTE1N5c3RlbXMgRW5naW5l -ZXJpbmcxEzARBgNVBAMTClNvdXZpayBEYXMxIDAeBgkq -hkiG9w0BCQEWEXNvdWRhc0BwYXlwYWwuY29tMIGfMA0G -CSqGSIb3DQEBAQUAA4GNADCBiQKBgQDatyhVzmVe+kCN -tOSNS+c7p9pNHlFGbGtIWgIAKSOVlaTk4JD/UAvQzYnn -eWPUk+Xb5ShTx8YRDEtRtecy/PwSIIrtS2sC8RrmjZxU -uNRqPB6y1ahGwGcNd/wOIy3FekGE/ctX7oG6/Voz/E2Z -EyJaPm7KwYiDQYz7kWJ6eB+kDwIDAQABo4HzMIHwMB0G -A1UdDgQWBBQx23WZRMmnADSXDr+P7uxORBdDuzCBwAYD -VR0jBIG4MIG1gBQx23WZRMmnADSXDr+P7uxORBdDu6GB -maSBljCBkzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNB -MREwDwYDVQQHEwhTYW4gSm9zZTEPMA0GA1UEChMGUGF5 -UGFsMRwwGgYDVQQLExNTeXN0ZW1zIEVuZ2luZWVyaW5n -MRMwEQYDVQQDEwpTb3V2aWsgRGFzMSAwHgYJKoZIhvcN -AQkBFhFzb3VkYXNAcGF5cGFsLmNvbYIBADAMBgNVHRME -BTADAQH/MA0GCSqGSIb3DQEBBAUAA4GBAIBlMsXVnxYe -ZtVTG3rsVYePdkMs+0WdRd+prTK4ZBcAkCyNk9jCq5dy -VziCi4ZCleMqR5Y0NH1+BQAf8vxxcb4Z7p0rryXGb96f -ZfkSYd99a4qGKW3aSIsc2kpaC/ezQg8vuD6JSo6VhJIb -Zn0oWajvkHNMENOwN/Ym5stvAxtnMYIBnzCCAZsCAQEw -gZkwgZMxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTER -MA8GA1UEBxMIU2FuIEpvc2UxDzANBgNVBAoTBlBheVBh -bDEcMBoGA1UECxMTU3lzdGVtcyBFbmdpbmVlcmluZzET -MBEGA1UEAxMKU291dmlrIERhczEgMB4GCSqGSIb3DQEJ -ARYRc291ZGFzQHBheXBhbC5jb20CAQAwCQYFKw4DAhoF -AKBdMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJ -KoZIhvcNAQkFMQ8XDTA0MDUyNjE5MTgxNFowIwYJKoZI -hvcNAQkEMRYEFI2w1oe5qvHYB0w9Z/ntkRcDqLlhMA0G -CSqGSIb3DQEBAQUABIGAimA3r6ZXmyynFGF5cOj6E1Hq -Ebtelq2tg4HroAHZLWoQ3kc/7IM0LCuWZmgtD5739NSS -0+tOFSdH68sxKsdooR3MFTbdzWhtej5fPKRa6BfHGPjI -9R9NoAQBmaeUuOiPSeVTzXDOKDbZB0sJtmWNeueTD9D0 -BOu+vkC1g+HRToc= ------END PKCS7-----'; - my $options = { label => 'Fast and harmless', enabled => 1, groupToUse => 3, - vendorId => 'oqapi', - signature => $signature, currency => 'EUR', - useSandbox => '0', - emailMessage => 'Thank you very very much' }; $driver = WebGUI::Shop::PayDriver::Ogone->new( $session, $options ); WebGUI::Test->addToCleanup($driver); +$driver->write; isa_ok ($driver, 'WebGUI::Shop::PayDriver::Ogone', 'new creates WebGUI::Shop::PayDriver object'); like($driver->getId, $session->id->getValidator, 'driver id is a valid GUID'); @@ -136,14 +72,16 @@ my $paymentGatewayOptions = from_json($dbData->{'options'}); cmp_deeply ( $paymentGatewayOptions, { - "groupToUse" => 3, - "label" => 'Fast and harmless', - "enabled" => 1, - "vendorId" => 'oqapi', - "signature" => $signature, - "currency" => 'EUR', - "useSandbox" => '0', - "emailMessage" => 'Thank you very very much' + groupToUse => 3, + label => 'Fast and harmless', + enabled => 1, + currency => 'EUR', + pspid => '', + summaryTemplateId => 'jysVZeUR0Bx2NfrKs5sulg', + useTestMode => 1, + locale => 'en_US', + shaSecret => undef, + postbackSecret => undef, }, 'Correct options are written to the db' @@ -177,7 +115,6 @@ is (WebGUI::Shop::PayDriver::Ogone->getName($session), 'Ogone', 'getName returns my $cart = $driver->getCart; WebGUI::Test->addToCleanup($cart); isa_ok ($cart, 'WebGUI::Shop::Cart', 'getCart returns an instantiated WebGUI::Shop::Cart object'); -WebGUI::Test->addToCleanup($cart); ####################################################################### #