diff options
Diffstat (limited to 'lib/Business/OnlinePayment/PPIPayMover/TransactionClient.pm')
-rw-r--r-- | lib/Business/OnlinePayment/PPIPayMover/TransactionClient.pm | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/lib/Business/OnlinePayment/PPIPayMover/TransactionClient.pm b/lib/Business/OnlinePayment/PPIPayMover/TransactionClient.pm new file mode 100644 index 0000000..cef6a99 --- /dev/null +++ b/lib/Business/OnlinePayment/PPIPayMover/TransactionClient.pm @@ -0,0 +1,92 @@ +use strict;
+package Business::OnlinePayment::PPIPayMover::TransactionClient;
+use Business::OnlinePayment::PPIPayMover::TransactionResponse;
+use Business::OnlinePayment::PPIPayMover::TransactionRequest;
+use Business::OnlinePayment::PPIPayMover::CreditCardRequest;
+use Business::OnlinePayment::PPIPayMover::CreditCardResponse;
+use Business::OnlinePayment::PPIPayMover::SecureHttp;
+use Business::OnlinePayment::PPIPayMover::constants;
+1;
+
+# default constructor
+sub new {
+ my $class = shift;
+ my $self = {};
+ $self->{strError} = "";
+ $self->{strResponse} = "";
+ bless $self, $class;
+ return $self;
+}
+
+sub doTransaction # take three arguements
+{
+ my $self = shift;
+ my $TransactionKey = shift; # the first arguement(string)
+ my $transReq = shift; # the second arguement(class object)
+ my $AccountToken = shift; # the third arguement(string)
+
+ my $PostString = "";
+ my $ResponseString = "";
+
+ # write out account_token ...
+ $PostString .= "account_token=$AccountToken";
+ $PostString .= "&";
+
+ # write out transaction_key ...
+ #$PostString .= "transaction_key=$TransactionKey";
+ #$PostString .= "&";
+
+ # write out version_id ...
+ my $temp = VERSION;
+ $temp =~ tr/ /+/;
+ $PostString .= "version_id=$temp";
+ $PostString .= "&";
+
+ $transReq->WriteRequest(\$PostString); # get post information
+
+ my $ResponseContent;
+ my $secureHttp = new Business::OnlinePayment::PPIPayMover::SecureHttp;
+ my $strServer = PAY_HOST;
+ my $strPath = PAY_HOST_PATH;
+ my $iPort = PAY_HOST_PORT;
+
+
+ if(!$secureHttp->Init) {
+ $self->{strError} = $secureHttp->GetErrorString;
+ return undef;
+ }
+
+ if(!$secureHttp->Connect($strServer, $iPort)) {
+ $self->{strError} = $secureHttp->GetErrorString;
+ return undef;
+ }
+ if(!$secureHttp->DoSecurePost($strPath, $PostString, \$self->{strResponse})) {
+ $self->{strError} .= $secureHttp->GetErrorString;
+ return undef;
+ }
+
+ $secureHttp->DisconnectFromServer;
+ $secureHttp->CleanUp;
+
+ my $i = index($self->{strResponse}, "response_code");
+ if($i>=0) {
+ $ResponseContent = substr($self->{strResponse}, $i);
+ return $transReq->GetTransResponseObject(\$ResponseContent);
+ }
+ else {
+ return undef;
+ }
+}
+
+
+
+sub GetErrorString
+{
+ my $self = shift;
+ return $self->{strError};
+}
+
+#JString TransactionClient::GetResponseString()
+#{
+# return m_jstrResponse;
+#}
|