<?php
$xml = "<?xml version='1.0' encoding='utf-8' ?> 
<order> 
    <userAccountId>112433</userAccountId> 
    <currency>EUR</currency> 
    <label>order label</label> 
    <ageGroup>ALL</ageGroup> 
    <categoryId>610</categoryId> 
    <urlAcquital><![CDATA[http://sd-20614.dedibox.fr/~jabella/notif/index.php]]></urlAcquital> 
    <urlOk><![CDATA[http://sd-20614.dedibox.fr/~jabella/notif/index.php]]></urlOk> 
    <urlKo><![CDATA[http://sd-20614.dedibox.fr/~jabella/notif/index.php]]></urlKo> 
    <urlCancel><![CDATA[http://sd-20614.dedibox.fr/~jabella/notif/index.php]]></urlCancel> 
    <urlInstall><![CDATA[http://sd-20614.dedibox.fr/~jabella/notif/index.php]]></urlInstall> 
    <!-- <urlLogo><![CDATA[http://www.exemple.com/logo.gif]]></urlLogo> -->
 
    <!-- optional --> 
    <locale>fr_BE</locale> 
    <issuerAccountLogin>jabella@hipay.com</issuerAccountLogin> 
 
    <data> 
        <nom1>value 1</nom1> 
        <nom2>value 2</nom2> 
        <nom3>value 3</nom3> 
    </data> 
    <items> 
        <item id='1'> 
            <name>first product name</name> 
            <infos>first product description</infos> 
            <amount>10</amount> 
            <categoryId>610</categoryId> 
            <quantity>1</quantity> 
            <reference>REF1</reference> 
            
        </item> 
        <item id='2'> 
            <name>second product name</name> 
            <infos>second product description</infos> 
            <amount>2.14</amount> 
            <categoryId>610</categoryId> 
            <quantity>2</quantity> 
            <reference>REF2</reference> 
            
        </item> 
    </items> 
    
</order>";

/* 
 * Var $data contain the XML string describing your order 
 */ 
 $data = trim($xml); 
 
/** 
 * data crypting using RSA 
 */ 
function encrypt($source, $privateKey) 
{ 
    $maxLength = 117; 
 
    $output = ""; 
    while ($source) 
    { 
        $slice = substr($source, 0, $maxLength); 
        $source = substr($source, $maxLength); 
 
        openssl_private_encrypt($slice, $encrypted, $privateKey); 
        $output .= $encrypted; 
    } 
 
    return $output; 
} 
 
/** 
 * sign data using your private RSA key 
 */ 
function sign($data, $privateKey) 
{ 
    $output = ""; 
    openssl_private_encrypt(sha1($data), $output, $privateKey); 
 
    return $output; 
} 
 
// RSA private key test
$privateKey = "-----BEGIN RSA PRIVATE KEY----- 
MIICXgIBAAKBgQDh+K0OV55BZ6JOEIuC6i8imJO61qlA6Y0XWdksRbuJhGZQN9VB 
AkAHqnf5B6JFoPcvdS2/K/kjJUX6fHm18kRQYbmVwqz1AXpoDn6DWzS983udUE3v 
DByXpFQSHIT7dTO9CUKz+640mk8xPKyHuNkESs3YdzbtAj4uC3ZMUQicNQIDAQAB 
AoGBAJCfb2K2gPqrMR11SVTIPNKPhD0YFcsNrtc7Edtb5eLlcfX1Re8NWZ2OZKpl 
UF3v30PoYxbvNcxglqDx+ZORMlZreMG/ufRAttgFYbopnQ3ry0FoDYzmVoWPjgQP 
JmzbJedwMHoGUVFKMocoWXpKbPdLPzbfxPT0dP2dq3ylZncBAkEA/Iur0U7XfAyS 
xS8Gno7/9UY8oAnEYjF1hdl4PkAcejOJjZNiivHe6WdwDwWKuv8DhLzQ0NJV3dpT 
jdAwQB6yvQJBAOUP83YOjUUa3x+mf/BoqZQAqV8rxZFvbkCJ0CHhF841pqD9O4Y/ 
fIkvhaQBTVZIJXEE2+g8t/59CRq391e+ItkCQQCHjNAkABVY18bPX3ZGFKr9kz1n 
CNcHfVR/C0Km5vJiBNeHzdvOiBQFYyeaaHcV91qEHHRYIQ1FjrHaJCxBvjhhAkBW 
eUga6HFyhit3gl7IPmrOYdWPBTJHrj58BMrbD2PySBTIr/DZxHvaOmOEP62XhhME 
cKYoLUv0ufVG7e5lZHU5AkEAgaI+97dtHFFcA5T8iTTYfPPxdWkWWkjBj69dCNp9 
Rik4SBz/D9eZN7NhCD6kzXE3jOp38rboWo2PU9a/l2UVvw== 
-----END RSA PRIVATE KEY----- 
"; 


// RSA private key prod
$privateKey = "-----BEGIN RSA PRIVATE KEY-----
MIICXgIBAAKBgQCrwcOvfarqNRTh7e49ayTKLlWwWrHO/FTOTIjm17v6GRnPqtwm
L7cubf5URl/JZLWrFMdagGVb4+dY9dbE+a+jehJiPyWbXOINyDD5FiHASBE/Xu29
qoqgZMW97NdNT7j7r9J9ldv1HzNikfFihlk0NX3XIZGeSAUqtwDXitzGHwIDAQAB
AoGAWMPlLDcYM76HMlRTAe7zroHPyzq0FjMWaR/oyNTJ03FRg5/b8uhKFXbHMCrG
qkCgGvC8LquYtqrMD4/OFTKtcEiHcR6trB5ruc6iA5O3dC8yMx8dMl1BqbkAWnOp
GV+qClWHzViUqKpJmIdRBzFs1ulpLIc7o1HdyLnk2stnLuECQQDV7KdaCTtVmHU6
w7x9HXbPgD0OzG2S5Pz+DSXTP/9MVK6Z8dsT4yKyKUrTm4DozmWqEOZ7o+EbfR+n
C/ya6sIZAkEAzYns+bV0gsLf9e3kh8LJlFUwrk3lThysngweG9Tpits1XuekbLPt
FaIVj0+egmCdIGJUIKjF0ww7zP41C6eA9wJBAMtrmQttweU37ymtHRxgGy1fhTAA
RqWrZ8Nw3yoNLgf4cnti128GymReDZBAy4kVUukv3uttP05zYdjn9hGd8GkCQQCG
7gequgtdmC7MVLqUwTPx86b8llh1We+b5ZqSbMhQBq3Xuru/PLLkY75BkWQedOxR
iRtvQTx02vAbF7qdBv5rAkEAkH0lhqvt0RWewC21irEjsMvbbU12lMQJAjjhL6aI
DqAr2XckgsQ5XF00Oebafs56Zs8cQWflxEAjrX0jULRrFw==
-----END RSA PRIVATE KEY----- 
"; 
 
/** 
 * Data are first encoded using base64 before crypting in order not to 
 * alter your encoding system (windows/dos, mac, unix ...). 
 */ 
$crypted = base64_encode(encrypt(base64_encode($data), $privateKey)); 
$sign = base64_encode(sign(base64_encode($data), $privateKey)); 
 
?> 
 
<form target='_blank' action='https://payment.hipay.com/index/form/' method='post' > 
    <input type='hidden' name='mode' value='MODE_C' /> 
    <input type='hidden' name='website_id' value='2232' /> 
    <input type='hidden' name='sign' value="<?php echo $sign ?>" /> 
    <input type='hidden' name='data' value="<?php echo $crypted ?>" /> 
    <input type='image' name='send' src="https://test-www.hipay.com/images/bt_payment3.gif" /> 
</form> 