quardianwolf / paytr-react

The integration package for PAYTR payment system provider for React and other React frameworks.
https://www.npmjs.com/package/paytr-react
MIT License
4 stars 0 forks source link

paytr_token gönderilemedi veya geçersiz #1

Closed joshuadesigner05 closed 4 months ago

joshuadesigner05 commented 5 months ago

@quardianwolf Selam hocam. Next JS projemde PayTR'e Direct API ile gönderirken, PayTR panelinden "paytr_token gönderilemedi veya geçersiz" hatasını alıyorum. Ama tarayıcı Network kısmından baktığımda ise bir token oluştuğunu ve POST 200 OK döndüğünü görüyorum. Bunun sebebi ne olabilir acaba?

Ek olarak process.env ile merchant id, key ve salt değerlerini eklemeye çalıştığımda ise "TypeError: Cannot read properties of undefined (reading 'length')" hatası alıyorum. Değerleri okumuyor.

const paytrPayment = async () => {

    const paytr = new PayTRClient({
      merchant_id: "myID", // Merchant kısımlarına kendi değerlerimi giriyorum. Ama ona rağmen paytr_token gönderilemedi hatası alıyorum.
      merchant_key: "myKEY",
      merchant_salt: "mySALT",
      debug_on: true,
      no_installment: true,
      max_installment: 0,
      timeout_limit: 0,
      test_mode: 1,
      non_3d: 1,
      lang: "tr",
    });

    const response = await paytr.directApi({
      user_ip: "0.0.0.0", //your ip address
      merchant_oid: "124321423", // Sipariş no id'si
      payment_amount: 12345, // integer | total price | check paytr documents
      currency: "TL", //  you will check documents for the other options
      email: "email@email.com,
      payment_type: "card",
      installment_count: 0,
      cc_owner: "PAYTR TEST",
      card_number: "4355 0843 5508 4358",
      expiry_month: "12",
      expiry_year: "30",
      cvv: "000",
      user_name: "PAYTR TEST",
      user_phone: "+905350000000",
      user_address: "adres adres adres",
       user_basket: [
         {
           name: "product name",
         price: "1500", // interger value | Check paytr value
           quantity: 1,
        },
       ],
      merchant_ok_url: "http://localhost:3000/checkout?success", // customize the url
      merchant_fail_url: "http://localhost:3000/checkout?canceled", // customize the url
    });
  };
quardianwolf commented 5 months ago

Selamlar Josh,

Birkac nedenden kaynaklanan bir sorun bu ama temel olarak DirectAPI kullaniminin tanimlanmamasindan kaynaklaniyor. Paytr dokumanlarina goz attigimizda directAPi icin basvuru yapilmali ve sonrasinda islem gerceklestirme evresine gecmeliyiz. DirectAPI basvurusunu yaptiginizdan emin olun.

Bunun haricinde user_basket hesaplama adiminda bir sorun gerceklesiyor olabilir.

process.env ile merchant id, key ve salt değerlerini eklemeye çalıştığımda ise "TypeError: Cannot read properties of undefined (reading 'length')" hatası alıyorum.

Kismi icin ise

const paytr = new PayTRClient({
  merchant_id: `${process.env.NEXT_PUBLIC_MERCHANT_ID}`,
  merchant_key: `${process.env.NEXT_PUBLIC_MERCHANT_KEY}`,
  merchant_salt: `${process.env.NEXT_PUBLIC_MERCHANT_SALT}`,
});

seklinde eklerseniz sorun olmayacagini saniyorum.

**Not:

Ayrica paytr apisine geri yanit verme islemi icin asagidaki hash generatoru kullanabilirsiniz.

import jsSHA from "jssha";

function calculateHash(input: any[], key: string): string { const sha = new jsSHA("SHA-256", "TEXT"); sha.setHMACKey(key, "TEXT"); sha.update(input.join("")); return sha.getHMAC("B64"); }

DirectAPI yetkisi hesapta tanimli mi degil mi bir kontrol edelim, eger tanimli ise hata ayiklama islemine tekrar bakalim. Iyi gunler dilerim