tags:

views:

262

answers:

1

Sorry for my bad english.

I have to implement saferpay in my project. I have two php file for now

  1. checkout.php
  2. success.php

When I execute the checkout.php file it redirects to success.php and then it shows an error.

I have tried to remove this error but I'm unable to remove it. Please tell me any solutions by which I can remove the error.

Here is the code for checkout.php

<?
/* get the web server’s self URL */
$SERVER_NAME = 'localhost/';
$SCRIPT_NAME = 'saferpay/test.php';
$self_url = "http://" . $SERVER_NAME . $SCRIPT_NAME;
//print_r($self_url);
$self_url = substr($self_url, 0, strrpos($self_url, '/')) . "/";
//print_r($self_url);
/* the hosting gateway URL to create pay init URL */
$gateway = "https://www.saferpay.com/hosting/CreatePayInit.asp";
/* set the payment attributes */
$accountid = "99867-94913159"; /* saferpay account id */
$orderid = "4711"; /* use your own order or basket identifier */
$amount = "1295"; /* 12.95 */
$currency = "EUR";
$description = urlencode("\"Test Purchase - saferpay PHP sample\"");
$successlink = $self_url."success.php"; /* return URL if payment successful */
//print_r($successlink);
$faillink = $self_url."failed.php";     /* return URL if payment failed */
$backlink = $self_url."checkout.php";   /* return URL if user cancelled */
/* put all attributes together and create hosting URL */
$attributes = "ACCOUNTID=$accountid&AMOUNT=$amount&CURRENCY=$currency&DESCRIPTION=$descripti
on&SUCCESSLINK=$successlink&FAILLINK=$faillink&BACKLINK=$backlink";
$url = "$gateway?$attributes";
/* get the PayInit URL from the hosting server */
$payinit_url = join("", file($url));
//print_r($payinit_url);
?>
<html><head>
<title>Saferpay Checkout Sample for PHP (Hosting)</title>
<script src="http://www.saferpay.com/OpenSaferpayScript.js"&gt;&lt;/script&gt;
</head><body>
<h1>saferpay Checkout Sample Page for PHP (Hosting)</h1>
<h2>Order ID: <? print $orderid; ?><br></h2>
<h2>Click <a href="<? print $payinit_url; ?>"
onclick="OpenSaferpayTerminal('<? print $payinit_url; ?>', this, 'LINK');">
here</a>
to purchase for <? printf("%s %d.%02d", $currency, $amount / 100, $amount %
100); ?>!
</h2>
</body>
</html>

and Success.php

<?php
/* parse the query string and get DATA and SIGNATURE */
//print_r()
$a = ($_SERVER['QUERY_STRING']);
$array=array();
parse_str($a,$array);
$DATA = $array['DATA'];
$SIGNATURE = $array['SIGNATURE'];
/*
foreach($array as &$value){
    print_r($value);
}
*/
urldecode($DATA);
urldecode($SIGNATURE);

/* the hosting gateway URL to verify pay confirm */
$gateway = "https://www.saferpay.com/hosting/VerifyPayConfirm.asp";
$accountid = "99867-94913159"; /* saferpay account id */
/* put it all together */
$url = "$gateway?DATA=".urlencode($DATA)."&SIGNATURE=".urlencode($SIGNATURE);
/* verify pay confirm message at hosting server */
$result = join("", file($url));
/* check if result is OK... */
if (substr($result, 0, 3) == "OK:")
{
      print("Your Order has been successfully processed.");
      parse_str(substr($result, 3));
       echo '<br/>';
      print_r($result);

      /* $ID    = saferpay transaction identifier, store in DBMS */
      /* $TOKEN = token of transaction, store in DBMS */
      /***** Optional: Finalize payment by capture of transaction *****/
      /* the hosting gateway URL to complete payment */
      $gateway = "https://www.saferpay.com/hosting/PayComplete.asp";
      /* put it all together */
      $url = "$gateway?ACCOUNTID=$accountid&ID=".urlencode($ID).
             "&TOKEN=".urlencode($TOKEN);
      /* complete payment by hosting server */
       echo '<br/>';
     print_r($url);
     echo '<br/>';
      $result = join("", file($url));
      print_r($result);
      if (substr($result, 0, 2) == "OK")
            print("Capture has been done successfully");
      else
            print("Error: retry capture later...");
}
else /* ...or if an error happened */
{
      print $result;
}

?>
A: 

If I do so:

$gateway = "https://www.saferpay.com/hosting/PayComplete.asp"; /* put it all together */ $url = "$gateway?ACCOUNTID=$accountid&ID=".urlencode($ID). "&TOKEN=".urlencode($TOKEN);

Saferpay returns me an error, saying ERROR: checkPassword. Access not allowed.

What password and why is your code working in this way?

Eric