conedevelopment / simplepay-gateway

OTP SimplePay bővítmény WooCommerce (WordPress) áruházak részére.
https://simplepay.conedevelopment.com
MIT License
57 stars 22 forks source link

Következő rendeléshez rendelt Simple azonosító #153

Closed gulyaskrisztian closed 9 months ago

gulyaskrisztian commented 9 months ago

Üdv! A bővítmény szuperül teszi a dolgát, azonban most már másodszor futottunk bele az alábbi hibába: 1-2 percen belül ad le rendelést két különböző vásárló.

-Az első vásárló Simple-vel fizet, a fizetés szépen végigmegy, az ő oldaláról, illetve a Simple oldaláról is. -Közben a másik vásárló lead egy rendelést személyes átvétellel és fizetéssel. -Valamiért az IPN hívás után ennek a második vásárlónak a rendeléséhez rendeli hozzá a Simple azonosítót. A fizetési mód, összegek, stb. mindenhol rendben vannak, viszont a Woo úgy érzékeli, hogy az eredeti rendelés nem ment végbe.

ucsendre commented 9 months ago

cache-ben ki van zárva a woocommerce?

gulyaskrisztian commented 9 months ago

cache-ben ki van zárva a woocommerce? Most már igen. :)

iamgergo commented 9 months ago

@gulyaskrisztian Hogy látod, a cache volt a gond?

gulyaskrisztian commented 9 months ago

Szia! Azóta nincs hiba, de nem volt ilyen 1-2 percen belüli rendelésleadás. Szerintem zárhatod, ha mégis újra előjönne, jelentkezek! És köszönöm!

gulyaskrisztian commented 9 months ago

Ma megint előjött a hiba, megint 1 percen belül leadott 2 rendelésnél. Az első rendelés volt a SimplePay-es. A Log szerint rendben elment az IPN hívás, stimmel a rendelésszám is, de valamiért megint a másik vásárláshoz rendelte a Simple azonosítót.

WPRocket-et használunk az oldalon.

A múltkor mindenhova beletettem exclude-ba a WooCommerce-et,plusz a Simple plugint is. A WPRocket a Woo végpontokat (kosár,pénztár,stb) automatikusan kizárja a gyorsítótárazásból.

Mivel a hibáról más nem ír, biztos, hogy valami nálunk nem kerek... :)

Most kikapcsolom a WPRocket-et ideiglenesen, és meglátjuk.

gulyaskrisztian commented 9 months ago

Még annyi, hogy most kiváncsiságból csináltam egy tesztet:

  1. Kikapcsoltam a WPRocket-et
  2. Inkognitólapról elindítottam egy online fizetéses megrendelést. Rányomtam a megrendelésre.
  3. Ezután a kollegám másik gépről inkognitóból elindított egy utánvétes fizetést.
  4. Végigment minden, és így is övéhez rendelte a Simple azonosítót.
iamgergo commented 9 months ago

Hát ez nagyon érdekes. Megnézem, hogy tudom-e reprodukálni. De akkor fixen nem cache.

gulyaskrisztian commented 9 months ago

Ha esetleg szükséged van valamilyen hozzáférésre, használt plugin listára, stb, kérlek jelezd, és írok nektek mailt.

gulyaskrisztian commented 9 months ago

@iamgergo Elvileg megtaláltam a hibát. Visszaálltam Simple Sandbox módba, és ott is előjött ugyanez a hiba. Gondoltam, hogy megnézem azon plugineket, amelyek valamilyen hatással vannak a rendelésekre, 2 ilyen van: -WooCommerce Sequential Order Numbers Pro -WooCommerce Order Status Manager Kikapcsoltam a Sequential Order Numbers-et, és így generáltam pár rendelést (Sandbox Simple-vel), és így nem jelentkezik a hiba.

A hibát nagy valószínűséggel tehát a Sequential Order Numbers Pro okozta.

iamgergo commented 9 months ago

Köszi!

Hogy lehet ez szerinted? Mi mehet félre?

A következő verzióban valahogy ki fogjuk váltani ennek a bővítménynek a támogatását, mert 10 esetből 8-ban ezzel van a gond.

gulyaskrisztian commented 9 months ago

Nem tudom. :) Az biztos, hogy a Simple log fájlban, is felismeri a WCSONP plugin által létrehozott _order_number -t, illetve Simple oldalán is felismeri, ez elé teszi a prefixet.

A hiba akkor jelentkezik, ha az első vásárló a Simple fizetési oldalon van, és közben valaki lead egy másik rendelést. Ilyenkor ennek az új rendelésnek a _transaction_id mezőjébe írja be az előző rendelés Simple által generált ID-jét.

A logokban nincs semmi extra, ami ezzel kapcsolatos.

iamgergo commented 9 months ago

Hosszas mérlegelés után arra jutottunk, hogy ezt ebben a verzióban már nem módosítjuk, potenciálisan nagy a breaking change esélye.

A következő verzióban egyszerűen a rendelés egyedi kulcsát fogjuk használni, így ilyen probléma nem lesz a jövőben. Az adminról kikerül a prefix lehetősége, és egy filterrel lehet majd felülírni a default értéket annak aki akarja.

Azért csináljuk így, mert igyekszünk a lehető legjobban elizolálni a bővítmény működését pl a WCSONP-tól, mert sajnos a hibák egy nagyon nagy részét ennek a bővítménynek a használata okozza.

Köszi az infókat és a közreműködést!