<?php
include("nusoap/nusoap.php");
$url = "https://www.paysbuy.com/api_paynow/api_paynow.asmx?WSDL";
$client = new soapclient($url, true);
$strPSBID = "หมายเลขเพย์สบายของคุณ";
$strUsername = "ชื่ออีเมลล์ของคุณที่สมัครเพย์สบาย";
$strSecureCode = "Secure Code ของคุณ";
$strInv = "หมายเลขสินค้าของคุณ";
$strItm = "รายละเอียดสินค้าของคุณ";
$dbAtm = "ราคาสินค้า";
$strCurr_type = "TH";
$strCom = "";
$strMethod = "1" // 1 = รับเงินจากบัญชีเพย์สบาย , 2 = รับเงินจาก Credit Card;
$strLanguage = "T";
//เปลี่ยนเป็น URL ของคุณ
$strResp_front_url = "URL ของคุณที่รับค่าจาก PAYSBUY ทาง Frontend";
$strResp_back_url = "URL ของคุณที่รับค่าจาก PAYSBUY ทาง Backend";
$result = " ";
//1. ก่อนเรียกใช้งาน ต้องทำการ Authentication โดยเรียก method api_paynow_authentication
$params =
array("psbID"=>$strPSBID,"username"=>$strUsername,"password"=>$strPassword,"secureCode"=>$strSecureCode,
"inv"=>$strInv,"itm"=>$strItm,"atm"=>$dbAtm,"curr_type"=>$strCurr_type,"com"=>$strCom,"method"=>$strMethod,
"language"=>$strLanguage,"resp_front_url"=>$strResp_front_url,"resp_back_url"=>$strResp_back_url);
$result = $client->call('api_paynow_authentication', array('parameters' => $params), 'http://tempuri.org/', 'http://tempuri.org/Currency', false, true);
$err = $client->getError();
if ($err) {
echo "<h2>Constructor error</h2><pre>" . $err . "</pre>";
} else {
$result = $result["api_paynow_authenticationResult"];
}
echo "<br>result ->".$result;
$approveCode = substr($result,0,2);
echo "<br>approveCode->".$approveCode;
$intLen = strlen($result);
$strRef = substr($result,2, $intLen-2);
//2. หาก Authen ผ่าน PAYSBUY จะ Return 00 ให้ Redirect ไปที่หน้า API Page
if($approveCode=="00"){
echo "<meta http-equiv='refresh'
content='0;url=https://www.paysbuy.com/api_payment/paynow.aspx?securecode=".$strSecureCode."&refid=".$strRef."'>";
}else{
echo "<br>Can't login to paysbuy server";
}
?>
>?php
//1. รับค่าจากทาง PAYSBUY โดย POST Method
$strResult = trim($_REQUEST["result"]);
$strApCode = trim($_REQUEST["apCode"]);
$strAmt = trim($_REQUEST["amt"]);
$strMethod = trim($_REQUEST["method"]);
if(($strResult!="")&&($strApCode!="")&&($strAmt!="")&&($strMethod!="")){
$len = strlen($strResult);
$payment_status = substr($strResult, 0,2);
$strInvoice = substr($strResult, 2,$len-2);
//2 บันทึกข้อมูลลง Database ชื่อ api
if (!$link = mysql_connect('localhost', 'ชื่อผู้มีสิทธิ์ใช้ฐานข้อมูล', 'รหัสผ่าน')) {
echo 'Could not connect to mysql';
exit;
}
if (!mysql_select_db('ชื่อฐานข้อมูล', $link)) {
echo 'Could not select database';
exit;
}
$sql = "INSERT INTO payment(PaymentResult, PaymentApCode, PaymentAmt, PaymentMethod,
PaymentDate,PaymentInvoice, PaymentStatus )VALUES ('$strResult', '$strApCode', '$strAmt', '$strMethod',
NOW(),'$strInvoice','$payment_status' )";
$result = mysql_query($sql, $link);
if (!$result) {
echo "DB Error, could not query the database\n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
mysql_close($link);
}else{
//insert error log into table
}
?>
<?php
$IsTrue = "false";
//1. รับค่าจากทาง PAYSBUY โดย POST Method
$strResult = trim($_REQUEST["result"]);
$strApCode = trim($_REQUEST["apCode"]);
$strAmt = trim($_REQUEST["amt"]);
$strMethod = trim($_REQUEST["method"]);
if(($strResult!="")&&($strApCode!="")&&($strAmt!="")&&($strMethod!="")){
$len = strlen($strApCode);
$payment_status = substr($strApCode, 0,2);
$strInvoice = substr($strApCode, 2,$len-2);
//2. ตรวจสอบค่าที่ได้จาก Backend Process
$IsTrue = checkBackEndProcess($strResult,$strApCode,$strAmt);
//echo "<br>checkBackEndProcess=>".$IsTrue ;
if($IsTrue){
//Delivery the product to customer.
echo "<br>This transaction is complete.";
}else{
echo "<br>This transaction is uncomplete.";
}
}else{
echo "<br>Can't receive data from paysbuy";
}
//************************ Function checkBackEndProcess *****************************//
function checkBackEndProcess($strResult,$strApCode,$strAmt){
$isBackend = "true";
$strResultB="";
$strApCodeB="";
$strAmtB="";
if (!$link = mysql_connect('localhost', 'ชื่อผู้มีสิทธิ์ใช้ฐานข้อมูล', 'รหัสผ่าน')) {
echo 'Could not connect to mysql';
exit;
}
if (!mysql_select_db('ชื่อฐานข้อมูล', $link)) {
echo 'Could not select database';
exit;
}
$sql = 'SELECT * FROM payment WHERE PaymentResult= '.$strResult;
$result = mysql_query($sql, $link);
if (!$result) {
echo "DB Error, could not query the database\n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
while ($row = mysql_fetch_assoc($result)) {
$strResultB = trim($row['PaymentResult']);
$strApCodeB = trim($row['PaymentApCode']);
$strAmtB = trim($row['PaymentAmt']);
}
//echo "<br>strResultB=>".$strResultB ;
//echo "<br>strApCodeB=>".$strApCodeB ;
//echo "<br>strAmtB=>".$strAmtB ;
if($strResultB!=$strResult){
$isBackend = "false";
}
if($strApCodeB!=$strApCode){
$isBackend = "false";
}
if($strAmtB!=$strAmt){
$isBackend = "false";
}
mysql_free_result($result);
mysql_close($link);
//echo "<br>isBackend=>".$isBackend ;
return $isBackend;
}
//************** End Function checkBackEndProcess ************************//
?>