在PHP中通过mercanet付款
在法国一家公司的电子商务网站上,我们希望通过Mercanet(法国巴黎银行)进行支付。我下载了linux的API,它只包含两个二进制文件(请求、响应),没有PHP示例。服务台也没有答复。我还下载了该网站的证书,但由于没有howto文件而卡住了。对于任何使用ATOS/Mercanet/Sips支付系统的人,下面是他们发送给我的PHP文件的示例。 他们所有的帮助文档都是法语 需要注意的是,有32位和64位版本-您必须使用正确的版本。我试过这里提到的技巧 FTP技巧不起作用 32位hack不起作用 这给了你很好的指导。翻译看起来很好,足以理解它 唯一有效的方法就是有正确的版本 还请记住,如果您使用git,推送可能会重置权限,那么每次推送时都需要755请求文件 PHP示例:在PHP中通过mercanet付款,php,e-commerce,payment-gateway,Php,E Commerce,Payment Gateway,在法国一家公司的电子商务网站上,我们希望通过Mercanet(法国巴黎银行)进行支付。我下载了linux的API,它只包含两个二进制文件(请求、响应),没有PHP示例。服务台也没有答复。我还下载了该网站的证书,但由于没有howto文件而卡住了。对于任何使用ATOS/Mercanet/Sips支付系统的人,下面是他们发送给我的PHP文件的示例。 他们所有的帮助文档都是法语 需要注意的是,有32位和64位版本-您必须使用正确的版本。我试过这里提到的技巧 FTP技巧不起作用 32位hack不起作用
print ("<HTML><HEAD><TITLE>MERCANET - Paiement Securise sur Internet</TITLE></HEAD>");
print ("<BODY bgcolor=#ffffff>");
print ("<Font color=#000000>");
print ("<center><H1>Test de l'API plug-in MERCANET</H1></center><br><br>");
// Affectation des paramètres obligatoires
$parm="merchant_id=082584341411111";
$parm="$parm merchant_country=fr";
$parm="$parm amount=100";
$parm="$parm currency_code=978";
// Initialisation du chemin du fichier pathfile (à modifier)
// ex :
// -> Windows : $parm="$parm pathfile=c:/repertoire/pathfile";
// -> Unix : $parm="$parm pathfile=/home/repertoire/pathfile";
$parm="$parm pathfile=" . XOOPS_ROOT_PATH.'/tray_code/payment_gateways/sips/param/pathfile';
// Si aucun transaction_id n'est affecté, request en génère
// un automatiquement à partir de heure/minutes/secondes
// Référez vous au Guide du Programmeur pour
// les réserves émises sur cette fonctionnalité
//
// $parm="$parm transaction_id=123456";
// Affectation dynamique des autres paramètres
// Les valeurs proposées ne sont que des exemples
// Les champs et leur utilisation sont expliqués dans le Dictionnaire des données
//
// $parm="$parm normal_return_url=http://www.maboutique.fr/cgi-bin/call_response.php";
// $parm="$parm cancel_return_url=http://www.maboutique.fr/cgi-bin/call_response.php";
// $parm="$parm automatic_response_url=http://www.maboutique.fr/cgi-bin/call_autoresponse.php";
// $parm="$parm language=fr";
// $parm="$parm payment_means=CB,2,VISA,2,MASTERCARD,2";
// $parm="$parm header_flag=no";
// $parm="$parm capture_day=";
// $parm="$parm capture_mode=";
// $parm="$parm bgcolor=";
// $parm="$parm block_align=";
// $parm="$parm block_order=";
// $parm="$parm textcolor=";
// $parm="$parm receipt_complement=";
// $parm="$parm caddie=mon_caddie";
// $parm="$parm customer_id=";
// $parm="$parm customer_email=";
// $parm="$parm customer_ip_address=";
// $parm="$parm data=";
// $parm="$parm return_context=";
// $parm="$parm target=";
// $parm="$parm order_id=";
// Les valeurs suivantes ne sont utilisables qu'en pré-production
// Elles nécessitent l'installation de vos fichiers sur le serveur de paiement
//
// $parm="$parm normal_return_logo=";
// $parm="$parm cancel_return_logo=";
// $parm="$parm submit_logo=";
// $parm="$parm logo_id=";
// $parm="$parm logo_id2=";
// $parm="$parm advert=";
// $parm="$parm background_id=";
// $parm="$parm templatefile=";
// insertion de la commande en base de données (optionnel)
// A développer en fonction de votre système d'information
// Initialisation du chemin de l'executable request (à modifier)
// ex :
// -> Windows : $path_bin = "c:/repertoire/bin/request";
// -> Unix : $path_bin = "/home/repertoire/bin/request";
//
$path_bin = XOOPS_ROOT_PATH.'/tray_code/payment_gateways/sips/bin/static/request';
// Appel du binaire request
// La fonction escapeshellcmd() est incompatible avec certaines options avancées
// comme le paiement en plusieurs fois qui nécessite des caractères spéciaux
// dans le paramètre data de la requête de paiement.
// Dans ce cas particulier, il est préférable d.exécuter la fonction escapeshellcmd()
// sur chacun des paramètres que l.on veut passer à l.exécutable sauf sur le paramètre data.
$parm = escapeshellcmd($parm);
$result=exec("$path_bin $parm");
// sortie de la fonction : $result=!code!error!buffer!
// - code=0 : la fonction génère une page html contenue dans la variable buffer
// - code=-1 : La fonction retourne un message d'erreur dans la variable error
//On separe les differents champs et on les met dans une variable tableau
$tableau = explode ("!", "$result");
// récupération des paramètres
$code = $tableau[1];
$error = $tableau[2];
$message = $tableau[3];
// analyse du code retour
if (( $code == "" ) && ( $error == "" ) )
{
print ("<BR><CENTER>erreur appel request</CENTER><BR>");
print ("executable request non trouve $path_bin");
}
// Erreur, affiche le message d'erreur
else if ($code != 0){
print ("<center><b><h2>Erreur appel API de paiement.</h2></center></b>");
print ("<br><br><br>");
print (" message erreur : $error <br>");
}
// OK, affiche le formulaire HTML
else {
print ("<br><br>");
# OK, affichage du mode DEBUG si activé
print (" $error <br>");
print (" $message <br>");
}
print ("</BODY></HTML>");
print(“互联网上的MERCANET-Paiement证券”);
打印(“”);
打印(“”);
打印(“测试l'API插件MERCANET
”;
//假装履行义务
$parm=“商户id=082584341411111”;
$parm=“$parm merchant\u country=fr”;
$parm=“$parm金额=100”;
$parm=“$parm货币代码=978”;
//fichier路径文件的化学初始化(A修饰符)
//例:
//->Windows:$parm=“$parm pathfile=c:/repertoire/pathfile”;
//->Unix:$parm=“$parm pathfile=/home/repertoire/pathfile”;
$parm=“$parm pathfile=”。XOOPS_ROOT_PATH.'/tray_code/payment_gateways/sips/param/pathfile';
//斯奥坤交易不受影响,请求延期
//联合国自动请求/分钟/秒
//你的计划指南是什么
//这是一个很好的例子
//
//$parm=“$parm transaction_id=123456”;
//矫揉造作的活力
//这是一个很好的例子
//《和平与光明》的使用说明
//
//$parm=“$parm normal\u return\u url=http://www.maboutique.fr/cgi-bin/call_response.php";
//$parm=“$parm取消\u返回\u url=http://www.maboutique.fr/cgi-bin/call_response.php";
//$parm=“$parm自动\u响应\u url=http://www.maboutique.fr/cgi-bin/call_autoresponse.php";
//$parm=“$parm语言=fr”;
//$parm=“$parm payment_意味着=CB,2,VISA,2,万事达卡,2”;
//$parm=“$parm头_标志=否”;
//$parm=“$parm capture_day=”;
//$parm=“$parm capture_mode=“”;
//$parm=“$parm bgcolor=”;
//$parm=“$parm block_align=“”;
//$parm=“$parm block_order=“”;
//$parm=“$parm textcolor=”;
//$parm=“$parm收据_补充=“”;
//$parm=“$parm caddie=mon_caddie”;
//$parm=“$parm customer_id=”;
//$parm=“$parm customer_email=“”;
//$parm=“$parm客户_ip_地址=“”;
//$parm=“$parm data=”;
//$parm=“$parm return_context=”;
//$parm=“$parm target=”;
//$parm=“$parm order_id=”;
//瑞士瓦勒酒店(Les valeurs suivantes ne sont)可利用资源-生产
//安装在付款服务台上的设备
//
//$parm=“$parm normal_return_logo=“”;
//$parm=“$parm cancel_return_logo=“”;
//$parm=“$parm submit_logo=”;
//$parm=“$parm logo_id=“”;
//$parm=“$parm logo_id2=”;
//$parm=“$parm广告=”;
//$parm=“$parm background_id=”;
//$parm=“$parm templatefile=”;
//在données基地插入命令(可选)
//信息系统功能的开发人员
//可执行请求的化学初始化(A修饰符)
//例:
//->Windows:$path\u bin=“c:/repertoire/bin/request”;
//->Unix:$path_bin=“/home/repertoire/bin/request”;
//
$path_bin=XOOPS_ROOT_path'/tray_code/payment_gateways/sips/bin/static/request';
//上诉请求
//La fonction escapeshellcmd()是不兼容的avec certaines选项avancées
//在caractères spéciaux酒店的公寓
//支付要求的数据参数。
//在特殊情况下,这是一个非常好的解决方案
//在参数数据上的可切割sauf上的参数。
$parm=escapeshellcmd($parm);
$result=exec(“$path_bin$parm”);
//飞行架次:结果=!密码!错误!缓冲器
//-code=0:la fonction génère une页面html内容与变量缓冲区
//-code=-1:La FONTION retourne un message d'ERRUR dans La variable error
//关于萼片,不同的,不同的,不同的,不同的,不同的
$tableau=爆炸(“!”,“$result”);
//情人节
$code=$tableau[1];
$error=$tableau[2];
$message=$tableau[3];
//du码回退分析
如果($code==“”)和($error==“”)
{
打印(
erreur appel request
);
打印(“可执行请求非trouve$path_bin”);
}
//错误,贴上错误的信息
否则如果($code!=0){
印刷品(如有);
打印(“
”);
打印(“消息错误:$error
”;
}
//好的,贴上公式HTML
否则{
打印(“
”);
#好的,附加模式调试激活
打印($error
);
打印(“$message
”);
}
打印(“”);
您试过给他们打电话吗?如果他们真的不提供任何支持