NAME

Payment::Sisow - payments via Sisow

INHERITANCE

Payment::Sisow is extended by
  Payment::Sisow::SOAP

SYNOPSIS

my $sisow = Payment::Sisow::SOAP->new(%opts);

foreach my $bank ($sisow->listIdealBanks)
{   print "$bank->{id}\t$bank->{name}\n";
}

my ($trxid, $redirect) = $sisow->startTransaction(%opts);
my $status = $sisow->transactionStatus($trxid);
my $info   = $sisow->transactionInfo($trxid);

DESCRIPTION

Sisow (http://sisow.nl) is a Dutch payment broker, which offers a SOAP and a REST interface for communication. This implementation tries to offer a common API which will work for both protocols, although currently only the SOAP version is realized. The REST interface offers more.

You can test this module using the script in the examples/ directory contained in the CPAN distribution of Payment-Sisow. It is an extensive demo.

Please support my development work by submitting bug-reports, patches and (if available) a donation.

METHODS

Constructors

Payment::Sisow->new(OPTIONS)

Inside Sisow's customer website, you can find the generated merchant id (semi-secret registration number) and key (secret which is used to sign the replies).

-Option      --Default
 merchant_id   <required>
 merchant_key  <required>
 test          <false>
merchant_id => STRING

The Sisow customer's unique key.

merchant_key => STRING

The "merchants" password.

test => BOOLEAN

You have to enable the permission to run tests in the customer website of Sisow. If not enabled, you will get "317" errors.

Accessors

$obj->isTest()
$obj->merchantId()
$obj->merchantKey()

Calls

$obj->listIdealBanks(OPTIONS)

List the banks which offer iDEAL. With iDEAL, the webshop lists the customer banks, which each have their own landing page. Returned is a (reference to an) ARRAY of HASHes, each with a bank and id field.

example:

foreach my $bank ($sisow->listIdealBanks)
{   print "$bank->{name}\n";
}
$obj->startTransaction(OPTIONS)

Returns a transaction id and an url where the user needs to get redirected to.

-Option      --Default
 amount        <required>
 bank_id       <undef>
 callback_url  <return_url>
 cancel_url    <return_url>
 description   undef
 notify_url    <return_url>
 payment       'ideal'
 purchase_id   <required>
 return_url    <required>
amount => FLOAT_EURO
bank_id => ISSUERID

Required when payment is ideal

callback_url => URL
cancel_url => URL
description => STRING
notify_url => URL

Pick from:

ideal         iDEAL  (The Netherlands)
mistercash    BanContact/MisterCash (Belgium)
sofort        DIRECTebanking (Germany)
webshop       WebShop GiftCard (The Netherlands)
podium        Podium Cadeaukaart (The Netherlands)
ebill         indirect payments
payment => PROVIDER
purchase_id => STRING
return_url => URL

example:

my ($trxid, $redirect) = try { $sisow->startTransation(%args) };
die $@->wasFatal if $@;
$obj->transactionInfo(TRANSACTION_ID)

Returns a HASH with complex information.

example:

my $info = $sisow->transactionStatus($trxid)
    or die "cannot retrieve info for $trxid\n";
$obj->transactionStatus(TRANSACTION_ID)

Returns undef, "Open", "Success", "Expired", "Cancelled", "Failure", "Pending", "Credited", or "Reversed".

example:

my $status = $sisow->transactionStatus($trxid) || 'MISSING';
if($status eq 'Expired') ...

Helpers

$obj->isValidDescription(STRING)
$obj->isValidPurchaseId(STRING)
$obj->securedPayment(QS|PAIRS)

Check whether the payment response was created by Sisow. QS is a HASH with the URI parameters, or the same parameters as LIST of PAIRS

DETAILS

About Sisow

Originally, Sisow focussed on the Dutch cheap and easy iDEAL payment system --offered by most Dutch banks-- but later it added other types of payments:

  • ideal; iDEAL for about 12 Dutch banks (NL)

  • sofort; SofortBanking/DIRECTebanking (DE)

  • mistercash; Bancontact/MisterCash (BE)

  • paypalec; PayPal Express Checkout

  • webshop; Webshop Gift Card (NL)

  • fijncadeau; Fijn Cadeaukaart (NL)

  • podium; Podium Cadeaukaart (NL)

Sisow also offers payment services:

  • ecare; pay after delivery

  • ebill; digital accept giro

  • overboeking; pay received accept giro

SEE ALSO

This module is part of Payment-Sisow distribution version 0.13, built on January 08, 2014. Website: http://perl.overmeer.net/

LICENSE

Copyrights 2013-2014 by [Mark Overmeer]. For other contributors see ChangeLog.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See http://www.perl.com/perl/misc/Artistic.html