gitpan / business-pxpay Goto Github PK
View Code? Open in Web Editor NEWRead-only release history for Business-PxPay
Home Page: http://metacpan.org/release/Business-PxPay
License: Other
Read-only release history for Business-PxPay
Home Page: http://metacpan.org/release/Business-PxPay
License: Other
NAME Business::PxPay - PX Pay Interface for www.paymentexpress.com VERSION version 0.04 SYNOPSIS use Business::PxPay; my $pxpay = Business::PxPay->new( userid => 'TestAccount', key => 'c9fff215b9e2add78d252b78e214880b46a906e73190a380483c1c29acab4157' ); # when submit the cart order if ( $submit_order ) { my $rtn = $pxpay->request($args); # $args from CGI params if ( exists $rtn->{valid} and $rtn->{valid} == 1 ) { print $q->redirect( $rtn->{URI} ); } else { die Dumper(\$rtn); } } # when user returns back from pxpal elsif ( $in_return_or_cancel_page or $params->{result} ) { my $rtn = $pxpay->result($params->{result}); if ( exists $rtn->{valid} and $rtn->{valid} == 1 ) { print "Transaction Success!\n"; } else { print "Transaction Failed!\n"; } } DESCRIPTION PX Pay - Payment Express <http://www.paymentexpress.com/> new my $pxpay = Business::PxPay->new( userid => $user, key => $key ); * "userid" (required) * "key" (required) PxPayUserId & PxPayKey * "ua" * "ua_args" By default, we use LWP::UserAgent->new as the UserAgent. you can pass "ua" or "ua_args" to use a different one. * "url" my $pxpay = Business::PxPay->new( userid => $user, key => $key, url => 'https://sec2.paymentexpress.com/pxpay/pxaccess.aspx', # to test? ); The URL is 'https://www.paymentexpress.com/pxpay/pxaccess.aspx' by default. Arguments All those arguments can be passed into Business::PxPay->new() or pass into $pxpay->request later { TxnType => 'Purchase', Amount => 10.9, UrlFail => 'http://test.com', UrlSuccess => 'http://example.com', MerchantReference => 'Test Transaction', EmailAddress => '[email protected]', TxnData1 => 'test=A', TxnData2 => 'data2=B', TxnData3 => 'data3=C', }; * "Amount" (required) Amount value in d.cc format * "Currency" (required) <http://www.paymentexpress.com/technical_resources/ecommerce_hosted/ pxpay.html#currencyinput> * "UrlFail" (required) URL of the merchant transaction failure page. No parameters ("&" or "?") are permitted. * "UrlSuccess" (required) URL of the merchant transaction success page. No parameters ("&" or "?") are permitted. * "TxnType" (required) "Auth" or "Purchase" * "MerchantReference" (required) Reference field to appear on transaction reports * "BillingId" Optional identifier when adding a card for recurring billing * "EmailAddress" Optional email address * "EnableAddBillCard" Required when adding a card to the DPS system for recurring billing. Set element to "1" for true * "TxnId" A value that uniquely identifies the transaction * "TxnData1" * "TxnData2" * "TxnData3" Optional free text * "Opt" Optional additional parameter request my $xml = $pxpay->request_xml($args); my $rtn = $pxpay->request($args); request and parse the response XML into HASHREF. sample: $VAR1 = \{ 'URI' => 'https://sec2.paymentexpress.com/pxpay/pxpay.aspx?userid= TestAccount&request=v51flwn7rvSNcbY86uRMdJ74XB2gHd8ZY-WHqyEYoPm9xd1ROXX00pXYkkuk dleLlS402E65EjOSCkrqvmAsZUWRCck8RkmIJcRLvG0KZLi7PQRBfpIQ0wzKwdHGKvBCpqhRH6Tx-w93 MRYsP0ThOK4btgTneR_hGEk0supyLeE1taNWCkyFj8KX7rzZ9ncdWRlmciNBsiV4zX4DQ_7Poi9qiblI 5o0Gm49yb90kUlUtH1hrV3ulzidQbn0CcQKhHFKGX8IVMXiAtVN29r_Cgdzc7dOrwOxY-LBY2h4Or5GQ hJHB96kjBziu3GyGBvaGfsosNodT3-wyM29A5M-Z62ITkno6JUA6H4', 'valid' => '1' }; Usually you need redirect to the $rtn->{URI} when valid is 1 result my $xml = $pxpay->result_xml($ResponseCode); my $rtn = $pxpay->result($ResponseCode); if ( exists $rtn->{valid} and $rtn->{valid} == 1 ) { print "Transaction Success!\n"; } else { print "Transaction Failed!\n"; } PxPay will POST to your "UrlSuccess" (or "UrlFail") when you finish the transaction (or click Cancel button). the POST would contain a param result which you can request to get the transaction status. TIPS I need params in "UrlSuccess" For example, you want your UrlSuccess to be 'http://mysite.com/cgi-bin/cart.cgi?cart_id=ABC'. you need write the request like: my $rtn = $pxpay->request( # others UrlSuccess => 'http://mysite.com/cgi-bin/cart.cgi', TxnData1 => 'ABC', ); and you can get the "TxnData1" in my $rtn = $pxpay->result($ResponseCode); my $cart_id = $rtn->{TxnData1} AUTHOR Fayland Lam <[email protected]> COPYRIGHT AND LICENSE This software is copyright (c) 2011 by Fayland Lam. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.