Förstår mig inte på payson API IPN där emot den i formen ipn var enklare.
Måste man skapa det man ska handla i en databas för sedan hämta det med TOKEN eller så kallad trackingid för dela ut det i IPN.
Vilka sidor är det man kan spara ner tooken och det till mysql i sådan fall.
Eller någon som är haj på payson nya API som kan lösa det åt oss mot en betalning eller något.
<form action='../payments/payson/pay/payments.php' method='post'>
<input type='hidden' name='buyers_email' value='$useremail'>
<input type='hidden' name='buyers_firstname' value='$userfirstname'>
<input type='hidden' name='buyers_lastname' value='$userlastname'>
<input type='hidden' name='payson_description' value='Purchase {$_SESSION['sess_payson_months']} months vip services'>
<input type='hidden' name='payson_ref' value='{$_SESSION['sess_payson_ref']}'>
<input type='hidden' name='payson_price' value='$pricsss'>
<input style='MARGIN-LEFT: 0px' type='image' src='../images/bestall{$lang['RELOAD_COUNTRY_DIFFERENCE']}.png' border='0' name='Submit'>
</form>
i alla tjänster har samma form.
för vip så har jag
vip_medlemsid
för krediter så har jag
sms_medlemsid
för virtualanumer så har jag
num_medlemsid
Detta är för splita sedan för ta redan på vad dem är det dem har handlad.
min gamla IPN såg ut så här postar den för ge bättre förståelser.
<?php
session_start();
include("../mysql.php");
include("../languages/languages.php");
$strYourSecretKey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxx";
$strOkURL = $_REQUEST["OkURL"];
$strPaysonRef = $_REQUEST["Paysonref"];
$strTestMD5String = htmlspecialchars( $strOkURL . $strPaysonRef ). $strYourSecretKey;
$strMD5Hash = md5($strTestMD5String);
// Övriga värden
$text = urldecode($strPaysonRef);
$text1 = explode("_", $text);
//Tjänst $text1[0]
//MedlemId $text1[1]
if($strMD5Hash == "{$_REQUEST['MD5']}" AND $text1[0] = "sms") {
// Uppdatera krediter
$price = "{$_SESSION['sess_pris12']}";
$price = str_replace(',', '.', $price);
$sql = "UPDATE Users SET credits = credits +{$_SESSION['sess_antal']}, exchange_rate = exchange_rate +{$_SESSION['sess_antal']} WHERE id = '{$_SESSION['sess_id']}'";
mysql_query($sql) or die("SQL: $sql<br />" . mysql_error());
$sql = "UPDATE State SET state_credit_purchase = state_credit_purchase +1, state_loyalty_points = state_loyalty_points +{$_SESSION['sess_antal']} WHERE state_uid = '{$_SESSION['sess_id']}'";
mysql_query($sql) or die("SQL: $sql<br />" . mysql_error());
$sql = "INSERT INTO Logs(logs_picture, logs_uid, logs_name, logs_credit_fee, logs_message, logs_queue, logs_amount, logs_service, logs_date)VALUES('3', '{$_SESSION['sess_id']}', '{$lang['WOBTEL_PAYSON_PAYSON_BUY_OF']} {$_SESSION['sess_antal']} {$lang['HELP_CONTACT_US_CREDITS']} ({$_SESSION['sess_pris12']} {$lang['WOBTEL_PAYSON_SEK']})', '+{$_SESSION['sess_antal']}', '{$lang['WOBTEL_PAYSON_PAYSON_BUY_OF']}', '1', '$price', 'sms',NOW())";
mysql_query($sql) or die(mysql_error());
echo "<script type='text/javascript'>self.location=('../historic.php?type=buy')</script>";
} elseif ($strMD5Hash == "{$_REQUEST['MD5']}" AND $text1[0] = "vip") {
$Prittan = floor($_SESSION['sess_antalmonader'] * 200);
$sql = "UPDATE Users SET vip_membership = '{$_SESSION['sess_VIP_TYPE']}', free_credit = '0', vip_date = DATE_ADD(IF(vip_date > NOW(), vip_date, NOW()), INTERVAL {$_SESSION['sess_antalmonader']} MONTH) WHERE id = '{$_SESSION['sess_id']}'";
mysql_query($sql) or die("Something went wrong please contact us at info@smsnetwork.org");
$sql = "INSERT INTO Logs(logs_picture, logs_uid, logs_name, logs_message, logs_queue, logs_amount, logs_service, logs_date)VALUES('3', '{$_SESSION['sess_id']}', '{$lang['WOBTEL_PAYSON_BUY_VIP']} {$_SESSION['sess_antalmonader']} {$lang['BECOME_A_VIP_MONTHS']} ($Prittan {$lang['WOBTEL_PAYSON_SEK']})', '{$lang['WOBTEL_PAYSON_PAYSON_BUY_OF']}', '1', '$Prittan', 'vip',NOW())";
mysql_query($sql, $conn) or die(mysql_error());
$sql = "UPDATE State SET state_credit_purchase = state_credit_purchase +1, state_loyalty_points = state_loyalty_points +200 WHERE state_uid = '{$_SESSION['sess_id']}'";
mysql_query($sql) or die("SQL: $sql<br />" . mysql_error());
echo "<script type='text/javascript'>self.location=('../historic.php?type=buy&payment=07a4292842c715920f6d091bc85981ce')</script>";
} elseif ($strMD5Hash == "{$_REQUEST['MD5']}" AND $text1[0] = "ads") {
$sql1 = "UPDATE Advertisers SET blanac = blanac +{$_SESSION['sess_pris']} WHERE id = '{$_SESSION['sess_aid']}'";
mysql_query($sql1) or die("Something went wrong in the purchase updates contact support@smsnetwork.org");
echo "<script type='text/javascript'>self.location=('../ads/index.php')</script>";
} elseif ($strMD5Hash == "{$_REQUEST['MD5']}" AND $text1[0] = "num") {
$price = "{$_SESSION['sess_pris12']}";
$price = str_replace(',', '.', $price);
$sql = "UPDATE State SET state_credit_purchase = state_credit_purchase +1, state_loyalty_points = state_loyalty_points +{$_SESSION['sess_antal']} WHERE state_uid = '{$_SESSION['sess_id']}'";
mysql_query($sql) or die("SQL: $sql<br />" . mysql_error());
$sql = "INSERT INTO Logs(logs_picture, logs_uid, logs_name, logs_credit_fee, logs_message, logs_queue, logs_amount, logs_service, logs_date)VALUES('3', '{$_SESSION['sess_id']}', '{$lang['WOBTEL_PAYSON_PAYSON_BUY_OF']} {$_SESSION['sess_antal']} {$lang['HELP_CONTACT_US_CREDITS']} ({$_SESSION['sess_pris12']} {$lang['WOBTEL_PAYSON_SEK']})', '+{$_SESSION['sess_antal']}', '{$lang['WOBTEL_PAYSON_PAYSON_BUY_OF']}', '1', '$price', 'Virtual Number',NOW())";
mysql_query($sql) or die(mysql_error());
echo "<script type='text/javascript'>self.location=('../ads/index.php')</script>";
} else {
//Felaktigt anrop från någon annan.
echo "Felaktig MD5-summa";
}
?>
Den nya IPN förstår jag mig inte på som ser ut så här.
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
require '../lib/paysonapi.php';
// Get the POST data
$postData = file_get_contents("php://input");
// Set up API
$credentials = new PaysonCredentials("4949", "650082f0-22cf-4dce-9e6e-d4416819cf4e");
$api = new PaysonApi($credentials);
// Validate the request
$response = $api->validate($postData);
if($response->isVerified()){
// IPN request is verified with Payson
// Check details to find out what happened with the payment
$details = $response->getPaymentDetails();
}
?>