Further to this, when you do need to use Net::SSLeay (such as when writing an SSL capable network server) there are already modules which quite capably abstract the SSL part of the communications (eg: IO::Socket::SSL, HTTP::Daemon::SSL, etc).
Pretty much the only time you need to use Net::SSLeay directly is when you're doing something strange like:
- being specific about SSL versions and capabilities (partially covered in IO::Socket::SSL),
- verifying peer certificates and other certificates in their chain-of-trust (partially covered in IO::Socket::SSL),
- implementing non-standard extensions to SSL.
I find Net::SSLeay most useful for its documentation of the SSL related options (most of which can be used by IO::Socket::SSL and LWP through Crypt::SSLeay).
-David
| [reply] |
This is what I was iplementing previously by using the LWP::UserAgent.
1. Firstly
I was getting the error as :
LWP::UserAgent::_need_proxy: Not proxied
I could not get which value should I put variable
ENV{HTTP_PROXY},
I did try for my network's proxy address with port 8080 as well as with 443(I was not sure for this) but I could not fix the problem.
2 Secondly I could not create the required headers with this method.
As I need to pass 'POST /AUTHORIZE HTTP/1.1'(not in key value form but simple text) this text with the header when Unless I send complete header info their server will not respond.
So I tried to have specific implemetation for SSL that is the reason I used NET::SSLeay.
Here is the code I was using.
use strict;
use Data::Dumper;
use LWP::UserAgent;
use HTTP::Request;
use HTTP::Headers;
use LWP::Debug qw(+);
my $method = 'POST';
my $host = 'orbital1.paymentech.net';
my $uri = '/authorize';
$uri = 'https://orbital1.paymentech.net/authorize';
## This is the fake request we are generating
my $xmlRequest = '<?xml version="1.0" encoding="UTF-8"?>'.
'<Request>'.
'<NewOrder>'.
'<IndustryType>EC</IndustryType>'.
'<MessageType>A</MessageType>'.
'<BIN>000002</BIN>'.
'<TerminalID>001</TerminalID>'.
'<AccountNum>4111111111111111</AccountNum>'.
'<Exp>102009</Exp>'.
'<CurrencyCode>840</CurrencyCode>'.
'<CurrencyExponent>2</CurrencyExponent>'.
'<CardSecVal>213</CardSecVal>'.
'<AVSzip>33408</AVSzip>'.
'<AVSaddress1>test address</AVSaddress1>'.
'<AVScity>miami</AVScity>'.
'<AVSstate>Florida</AVSstate>'.
'<AVSphoneNum>5618926384</AVSphoneNum>'.
'<AVSname>Raj Malahotra</AVSname>'.
'<AVScountryCode>US</AVScountryCode>'.
'<AVSDestzip>33408</AVSDestzip>'.
'<AVSDestaddress1>Dest addresss</AVSDestaddres
+s1>'.
'<AVSDestcity>testcity</AVSDestcity>'.
'<AVSDeststate>Florida</AVSDeststate>'.
'<AVSDestname>Raj Malahotra</AVSDestname>'.
'<AVSDestcountryCode>US</AVSDestcountryCode>'.
'<CustomerProfileFromOrderInd>A</CustomerProfi
+leFromOrderInd>'.
'<OrderID>091933208935</OrderID>'.
'<Amount>15.00</Amount>'.
'<BMLShippingCost>15.00</BMLShippingCost>'.
+
'<BMLTNCVersion>5</BMLTNCVersion>'.
+
'</NewOrder>'.
'</Request>';
my $MIME_Version = '1.1';
my $content_type = 'application/PTI42';
my $content_length = length($xmlRequest);
my $content_transfer_encoding = 'text';
my $request_number = '1';
my $document_type = 'Request';
my $header = HTTP::Headers->new;
$header->header (
'MIME-Version' => $MIME_Version,
'Content-Type' => $content_type,
'Content-length' => $content_length,
+
'Content-transfer-encoding' => $content_transfer_encodi
+ng,
'Request-number' => $request_number,
'Document-type' => $document_type,
+
);
my $fix_headres = 'POST /AUTHORIZE HTTP/1.1' . "\r\n" . $header;
my $HTTP_req = HTTP::Request->new($method,$uri,$header,$xmlRequest) ;
my $UserAgent = LWP::UserAgent->new();
#$UserAgent->env_proxy;
my $host_response = $UserAgent->request($HTTP_req);
#print STDERR "\n========= headers ======== \n" . Dumper($header)
+;
#print STDERR "\n========= request ======== \n" . Dumper($HTTP_re
+q);
#print STDERR "\n========= response ======== \n" . Dumper($host_r
+esponse);
__END__
When I use the variable $fix_headres(which is created externally with the required headers) in the
HTTP::Request->new($method,$uri,$fix_headres,$xmlRequest)
it gives error of bad headers.
Please suggest on this issue where should I concentrate.
Thanks...
SHAM. | [reply] [d/l] |