Paytr Sanal Pos Entegre Yaparken paytr_token gonderilmedi veya gecersiz hatası daha önce bir çok kez iframe vs kullandım şuan direkt api ile kendi formumu yapmak istiyorum örnek kodları birebir aynı yaptım bu hatayı alıyorum.
Kodlarım ;
merchant_id = "xx";
merchant_key = "xx";
merchant_salt = "xx";
//
// Müşterinizin sitenizde kayıtlı veya form vasıtasıyla aldığınız eposta adresi
emailstr = "info@siteniz.com";
//
// Tahsil edilecek tutar.
payment_amountstr = "100";
//
// Sipariş numarası: Her işlemde benzersiz olmalıdır!! Bu bilgi bildirim sayfanıza yapılacak bildirimde geri gönderilir.
merchant_oid = "safdasfkjldsa121232";
//
// Müşterinizin sitenizde kayıtlı veya form aracılığıyla aldığınız ad ve soyad bilgisi
user_namestr = "user name";
//
// Müşterinizin sitenizde kayıtlı veya form aracılığıyla aldığınız adres bilgisi
user_addressstr = "merke Merkez";
//
// Müşterinizin sitenizde kayıtlı veya form aracılığıyla aldığınız telefon bilgisi
user_phonestr = "08505555511";
//
// 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ü).
merchant_ok_url = "http://siteniz.com/Success";
//
// Ö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ü).
merchant_fail_url = "http://siteniz.com/Failed";
//
// !!! 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.
user_ip = "alinanipadresi";
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)
};
/* ############################################################################################ */
// Alabileceği değerler; advantage, axess, combo, bonus, cardfinans, maximum, paraf, world, saglamkart
card_type = "bonus";
//
// Hata mesajlarının ekrana basılması için entegrasyon ve test sürecinde 1 olarak bırakın. Daha sonra 0 yapabilirsiniz.
debug_on = "1";
//
// Mağaza canlı modda iken test işlem yapmak için 1 olarak gönderilebilir.
test_mode = "0";
//
// 3D'siz işlem
non_3d = "0";
//
// Non3d Test Failed
non3d_test_failed = "0";
//
// Taksit Sayısı
installment_count = "0";
//
// Ödeme türü
payment_type = "card";
//
// Post adresi
string post_url = "https://www.paytr.com/odeme";
//
// Para birimi olarak TL, EUR, USD gönderilebilir. USD ve EUR kullanmak için kurumsal@paytr.com
// üzerinden bilgi almanız gerekmektedir. Boş gönderilirse TL geçerli olur.
currency = "TL";
//
//
// Sepet içerği oluşturma fonksiyonu, değiştirilmeden kullanılabilir.
JavaScriptSerializer ser = new JavaScriptSerializer();
user_basket_json = ser.Serialize(user_basket);
// 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(), payment_type, installment_count, currency, test_mode, non_3d, merchant_salt);
HMACSHA256 hmac = new HMACSHA256(Encoding.UTF8.GetBytes(merchant_key));
byte[] b = hmac.ComputeHash(Encoding.UTF8.GetBytes(Birlestir));
token = Convert.ToBase64String(b); <form action="https://www.paytr.com/odeme" method="post">
Kart Sahibi Adı:
<input type="text" name="cc_owner" value="TEST KARTI"><br>
Kart Numarası:
<input type="text" name="card_number" value="9792030394440796"><br>
Kart Son Kullanma Ay:
<input type="text" name="expiry_month" value="12"><br>
Kart Son Kullanma Yıl:
<input type="text" name="expiry_year" value="99"><br>
Kart Güvenlik Kodu:
<input type="text" name="cvv" value="000"><br>
<input type="hidden" name="merchant_id" value="<%=merchant_id %>">
<input type="hidden" name="user_ip" value="<%=user_ip %>">
<input type="hidden" name="merchant_oid" value="<%=merchant_oid %>">
<input type="hidden" name="email" value="<%=emailstr %>">
<input type="hidden" name="payment_type" value="<%=payment_type %>">
<input type="hidden" name="payment_amount" value="<%=payment_amountstr %>">
<input type="hidden" name="currency" value="<%=currency %>">
<input type="hidden" name="test_mode" value="<%=test_mode %>">
<input type="hidden" name="non_3d" value="<%=non_3d %>">
<input type="hidden" name="merchant_ok_url" value="<%=merchant_ok_url %>">
<input type="hidden" name="merchant_fail_url" value="<%=merchant_fail_url %>">
<input type="hidden" name="user_name" value="<%=user_namestr %>">
<input type="hidden" name="user_address" value="<%=user_addressstr %>">
<input type="hidden" name="user_phone" value="<%=user_phonestr %>">
<input type="hidden" name="user_basket" value="<%=user_basket_json %>">
<input type="hidden" name="debug_on" value="<%=debug_on %>">
<input type="hidden" name="paytr_token" value="<%=token %>">
<input type="hidden" name="non3d_test_failed" value="<%=non3d_test_failed %>">
<input type="hidden" name="installment_count" value="<%=installment_count %>">
<input type="hidden" name="no_installment" value="0">
<input type="hidden" name="max_installment" value="0">
<input type="hidden" name="lang" value="tr">
<input type="hidden" name="card_type" value="<%=card_type %>">
<input type="submit" value="Submit">
</form>