Örneğin a kişi sepete 5 TL tutarında bir ürün ekledi ve satın aldı.
Müşterileriniz satın aldıktan sonra weepay müşteriyi sitenize bazı bilgiler ile beraber geri gönderiyor. Örneğin sipariş tutarı, durumu, paymentId ve orderId değerleriyle birlikte.
Geri dönen değerler ile ise kullanıcı ödemeyi yapmış mı yapmışsa hangi sipariş ödenmiş diye kontrol ediliyor.
ilk öncelikle paymentId değeri weepayin oluşturduğu rastgele bir değer, orderId ile woocommerce in oluşturduğu bir nevi siparişe ait özel kod tc no gibi bir şey.
geri dönen değerleri kodlar alıp weepaye atması lazım weepaye 2 değer atılabiliyor, orderId ve paymentId değeri, weepay bu iki değerleri kendisi karşılaştırıyor.
Eğer bu 2 değer karşılaştırılmazsa örneğin ben weepayde kayıtlı bir değer buldum ve sizin mağazanızda bulunan bir sipariş id mi de alıp mağazaya iletirsem sipariş ödenmeden onaylanacak.
KISACA NE AÇIĞI VAR
5 TL ye ürün satın aldım ve weepayin bu siparişime ürettiği paymentId değerini ele geçirdim. Ardından 20.000 TL lik bir sepet oluşturdum ve woocommerce in ürettiği id yi siparişlerim kısmından veya ödeme sırasında vazgeçip tekrar siteye dönen değerler arasından orderId değerini ele geçirdim. Ardından sitenize kendim istek atacağım. 20.000 tllik ödemediğim siparişin orderId si ile 5 tllik ödediğim paymentId yi alıp gönderdim. Kodlarda sadece paymentId ödenmiş mi diye kontrol ediliyor. Bu paymentId hangi siparişe ait kontrol yok. Yani 5 tl ödediğim için orderId yani 20.000 tllik siparişim otomatik olarak onaylanacaktır.
Eğer dijital satış yapıp otomatik teslimat özelliğiniz varsa siz fark etmeden saldırgan dijital kodlara hesaplara ulaşacak, fiziksel teslimat yapıyorsanız fark etmeden ürünü kargo ile gönderebilirsiniz.
Bunu konuda belirtmiştim ama düzeltilmemiş hala.
AÇIKSIZ İNDİRMEK İÇİN
Açıksız şekilde DÜZENLENMİŞ KODLARI Aşağıdan İndirebilirsiniz (Sadece 2 kod eklendi kendime dair bir şey eklemedim diğer kodlar birebir weepay woocommerce kodlarının aynısı ve bana ait değildir.)
Github Linki => TIKLA
Direkt İndir => TIKLA
Sadece 2 satırlık eksik nedeniyle bu kod oluşmuştur.


İNDİRMEYEREK KENDİNİZ DÜZENLEMEK İSTİYORSANIZ
Kendiniz eklentiyi indirip kur uğraşmak istemiyorsanız veya dosyaya güvenmiyorsanız yapmanız gereken
class-wc-weepay-payment.php dosyasını düzenleyerek;
456. satırda bulunan
$Result = $this->GetOrderData($paymentId);bu kodu aşağıda ki ile değiştirin,
$Result = $this->GetOrderData($paymentId,$orderId);ve 513.satır ile 527. satır dahil satırlar arasında bulunan aşağıda ki kodları
function GetOrderData($id_order,$orderId)
{
$weepayArray = array();
$weepayArray['Auth'] = array(
'bayiId' => $this->weepay_payment_bayi_id,
'apiKey' => $this->weepay_payment_bayi_api,
'secretKey' => $this->weepay_payment_bayi_secret,
);
$weepayArray['Data'] = array(
'paymentId' => $id_order,
);
$weepayEndPoint = "https://api.weepay.co/GetPayment/Detail";
return json_decode($this->curlPostExt(json_encode($weepayArray), $weepayEndPoint, true));
}aşağıda ki şekilde doğrusuyla değiştirinfunction GetOrderData($id_order,$orderId)
{
$weepayArray = array();
$weepayArray['Auth'] = array(
'bayiId' => $this->weepay_payment_bayi_id,
'apiKey' => $this->weepay_payment_bayi_api,
'secretKey' => $this->weepay_payment_bayi_secret,
);
$weepayArray['Data'] = array(
'paymentId' => $id_order,
'orderId'=>$orderId, // DÜZENLENMİŞ KISIM
);
$weepayEndPoint = "https://api.weepay.co/GetPayment/Detail";
return json_decode($this->curlPostExt(json_encode($weepayArray), $weepayEndPoint, true));
}ve ardından açıksız şekilde düzenlemiş olacaksınız, hiç uğraşmak istemiyorsanız yukarıdan direkt indirerek eklentiyi kurabilirsiniz.
Eğer sitenize sanal pos ekletmek istiyorsanız veya WHMCS, PERFEX CRM, WOOCOMMERCE için modüller arıyorsanız forcescripts.com kontrol edebilir bulunmuyorsa kodlatmak için https://wa.me/908503099601 yazabilirsiniz. Teşekkürler
weepaye sayfalarından belirttim bugün ama forumdan önce ki konuya da bakmamışlar sanırım sizin de yaşadığınıza göre çok umursamayacaklar o zaman