Php bug soap hívás közben

Nemrég a Voxinfo Kft. Payplaza fizetési megoldását használtam fel egy webalkalmazás implementálása közben és egy PHP hibával találkoztam:

Röviden a szolgáltatásról:

A Voxinfo (VoxPay, Payplaza) és még rajta kívül számos szolgáltató többek között lehetőséget nyújt emelt díjas SMS, emelt díjas telefon illetve bankkártyás fizetés megvalósítására. Közkedvelt, mivel a látogató előkapja a mobiltelefonját és már fizethet is. Ami miatt előnyös még, hogy a számlázással járó terheket is leveszi az üzemeltető válláról, ez digitális tartalomszolgáltatás esetében kedvez, mivel nem kell külön számlázást megvalósítanunk. Természetesen vannak előnyei és hátrányai is. Hátránya, hogy jelentős jutalékot számol fel mind a mobil szolgáltató, amihez hozzájönnek még az egyéb tranzakciós költségek is. A fizetés során SMS sávokból tudunk választani. Van amikor ez az igényünknek nem felel meg, mert nem sávokat és előre meghatározott árakat szeretnénk, hanem mi szeretnénk megválasztani a pontos összeget.

A hibajelenség:

Az implementáció és a tesztelés során derült ki, hogy a webservice hívás során megadott 16 számjegyű long típusú tranzakció azonosítót a PHP érdekesen kezeli. Ezt tudtuk is, hiszen a biginteger használatához alapból be kell állítani a php.ini -ben vagy az ini_set fügvénnyel a precision változót. A meglepetés most jön. A soap hívás során ezt nem veszi figyelembe és közben ezt átkonvertálja (2147483647), így érvénytelen lesz a trid és a hívás után nem megfelelő formátumú hibaüzenettel tér vissza. Utána is néztem a dolognak és azt találtam, hogy ez egy php bug, amit nem sikerült még kijavítani. Az általam felhasznált környezet: php 5.2.13, Macintosh 10.5.6 operációs rendszer volt.

Ideiglenes megoldás:

A változót float típusúnak definiáltam. Ezzel a hiba megszűnt, viszont úgy gondolom nem ez a hagyományos útja és módja ennek a lekezelésnek.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter


A bejegyzés kategóriája:Programozás and tagged . Vedd fel a kedvencek közé: link. Szólj hozzá vagy hagyj egy trackback-et:Trackback URL.

Szólj hozzá

Hozzászólás küldéséhez Be kell jelentkezni