Classic Asp PayTr Kodunu İş Ortağım dediği kişilere para ilse Sattırıyor Hakkında;
Arkadaşlar .Net için örnek kod aşağıda ama ASP için kod talebimizi firma yetkilileri 300 TL ile iş ortağımızdan alabilirsiniz diyorlar. Yani ücretsiz diye sundukları sanal pos ödeme noktasını baştan itibaren satmaya çalışıyorlar
// API Entegrasyon Bilgileri - Mağaza paneline giriş yaparak BİLGİ sayfasından alabilirsiniz.
string merchant_id = "XXXXXX";
string merchant_key = "YYYYYYYYYYYYYY";
string merchant_salt = "ZZZZZZZZZZZZZZ";
//
// Müşterinizin sitenizde kayıtlı veya form vasıtasıyla aldığınız eposta adresi
string emailstr = "XXXXXXXX";
//
// Tahsil edilecek tutar. 9.99 için 9.99 * 100 = 999 gönderilmelidir.
int payment_amountstr = 999;
//
// Sipariş numarası: Her işlemde benzersiz olmalıdır!! Bu bilgi bildirim sayfanıza yapılacak bildirimde geri gönderilir.
string merchant_oid = "";
//
// Müşterinizin sitenizde kayıtlı veya form aracılığıyla aldığınız ad ve soyad bilgisi
string user_namestr = "";
//
// Müşterinizin sitenizde kayıtlı veya form aracılığıyla aldığınız adres bilgisi
string user_addressstr = "";
//
// Müşterinizin sitenizde kayıtlı veya form aracılığıyla aldığınız telefon bilgisi
string user_phonestr = "";
//
// Başarılı ödeme sonrası müşterinizin yönlendirileceği sayfa
// !!! Bu sayfa siparişi onaylayacağınız sayfa değildir! Yalnızca müşterinizi bilgilendireceğiniz sayfadır!
// !!! Siparişi onaylayacağız sayfa "Bildirim URL" sayfasıdır (Bakınız: 2.ADIM Klasörü).
string merchant_ok_url = "http://www.siteniz.com/odeme_basarili.php";
//
// Ödeme sürecinde beklenmedik bir hata oluşması durumunda müşterinizin yönlendirileceği sayfa
// !!! Bu sayfa siparişi iptal edeceğiniz sayfa değildir! Yalnızca müşterinizi bilgilendireceğiniz sayfadır!
// !!! Siparişi iptal edeceğiniz sayfa "Bildirim URL" sayfasıdır (Bakınız: 2.ADIM Klasörü).
string merchant_fail_url = "http://www.siteniz.com/odeme_hata.php";
//
// !!! Eğer bu örnek kodu sunucuda değil local makinanızda çalıştırıyorsanız
// buraya dış ip adresinizi (https://www.whatismyip.com/) yazmalısınız. Aksi halde geçersiz paytr_token hatası alırsınız.
string user_ip = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (user_ip == "" || user_ip == null){
user_ip = Request.ServerVariables["REMOTE_ADDR"];
}
//
// ÖRNEK $user_basket oluşturma - Ürün adedine göre object”leri çoğaltabilirsiniz
object[][] user_basket = {
new object[] {"Örnek ürün 1", "18.00", 1}, // 1. ürün (Ürün Ad - Birim Fiyat - Adet)
new object[] {"Örnek ürün 2", "33.25", 2}, // 2. ürün (Ürün Ad - Birim Fiyat - Adet)
new object[] {"Örnek ürün 3", "45.42", 1}, // 3. ürün (Ürün Ad - Birim Fiyat - Adet)
};
/* ############################################################################################ */
// İşlem zaman aşımı süresi - dakika cinsinden
string timeout_limit = "30";
//
// Hata mesajlarının ekrana basılması için entegrasyon ve test sürecinde 1 olarak bırakın. Daha sonra 0 yapabilirsiniz.
string debug_on = "1";
//
// Mağaza canlı modda iken test işlem yapmak için 1 olarak gönderilebilir.
string test_mode = "0";
//
// Taksit yapılmasını istemiyorsanız, sadece tek çekim sunacaksanız 1 yapın
string no_installment = "0";
//
// Sayfada görüntülenecek taksit adedini sınırlamak istiyorsanız uygun şekilde değiştirin.
// Sıfır (0) gönderilmesi durumunda yürürlükteki en fazla izin verilen taksit geçerli olur.
string max_installment = "0";
//
// Para birimi olarak TL, EUR, USD gönderilebilir. USD ve EUR kullanmak için [email protected]
// üzerinden bilgi almanız gerekmektedir. Boş gönderilirse TL geçerli olur.
string currency = "TL";
//
// Türkçe için tr veya İngilizce için en gönderilebilir. Boş gönderilirse tr geçerli olur.
string lang = "";
// Gönderilecek veriler oluşturuluyor
NameValueCollection data = new NameValueCollection();
data["merchant_id"] = merchant_id;
data["user_ip"] = user_ip;
data["merchant_oid"] = merchant_oid;
data["email"] = emailstr;
data["payment_amount"] = payment_amountstr.ToString();
//
// Sepet içerği oluşturma fonksiyonu, değiştirilmeden kullanılabilir.
JavaScriptSerializer ser = new JavaScriptSerializer();
string user_basket_json = ser.Serialize(user_basket);
string user_basketstr = Convert.ToBase64String(Encoding.UTF8.GetBytes(user_basket_json));
data["user_basket"] = user_basketstr;
//
// Token oluşturma fonksiyonu, değiştirilmeden kullanılmalıdır.
string Birlestir = string.Concat(merchant_id, user_ip, merchant_oid, emailstr, payment_amountstr.ToString(), user_basketstr, no_installment, max_installment, currency, test_mode, merchant_salt);
HMACSHA256 hmac = new HMACSHA256(Encoding.UTF8.GetBytes(merchant_key));
byte[] b = hmac.ComputeHash(Encoding.UTF8.GetBytes(Birlestir));
data["paytr_token"] = Convert.ToBase64String(b);
//
data["debug_on"] = debug_on;
data["test_mode"] = test_mode;
data["no_installment"] = no_installment;
data["max_installment"] = max_installment;
data["user_name"] = user_namestr;
data["user_address"] = user_addressstr;
data["user_phone"] = user_phonestr;
data["merchant_ok_url"] = merchant_ok_url;
data["merchant_fail_url"] = merchant_fail_url;
data["timeout_limit"] = timeout_limit;
data["currency"] = currency;
data["lang"] = lang;
using (WebClient client = new WebClient()) {
client.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
byte[] result = client.UploadValues("https://www.paytr.com/odeme/api/get-token", "POST", data);
string ResultAuthTicket = Encoding.UTF8.GetString(result);
dynamic json = JValue.Parse(ResultAuthTicket);
if (json.status == "success") {
ViewBag.Src = "https://www.paytr.com/odeme/guvenli/" + json.token + "";
}else{
Response.Write("PAYTR IFRAME failed. reason:" + json.reason + "");
}
}