Payson och teckenkodning
Publicerat 30 juni 2010 av Christian
Jag har tidigare byggt ett slags webbutik med Certitrade, men nu bytte kunden till Payson istället (pga att Certitrade skulle hålla inne pengarna väldigt länge). Det var ganska enkelt att byta betalningslösning eftersom det fungerar ungefär likadant.
Payson skriver dock ingenstans vilken teckenkodning man ska använda, och när jag frågade fick jag till svar att jag borde kontakta en programmerare som kan hjälpa mig… Till slut fick jag dock en PHP-kodsnutt som förklarar hur det fungerar.
De använder ISO 8859-1 (Latin-1) istället för UTF-8, som jag alltid använder. (Även Certitrade använder ISO 8859-1, men man kan skicka med ett argument som ställer om till UTF-8.) Hela formulärsidan måste då vara i ISO 8859-1.
Dessutom kräver de att man ”URL-kodar” data i formuläret som skickas till dem med POST. När formuläret sedan skickas av webbläsaren, URL-kodar webbläsaren automatiskt all data igen, och det är tydligen så det ska vara enligt Payson. Dubbel URL-kodning.
Dock får du inte URL-koda decimalkommat i pris och fraktavgift.
Nu vet du, när det blir din tur att integrera med Payson!



”kontakta en programmerare som kan hjälpa dig!”, LOL!
Livet blev mycket lättare sen jag började köra UTF-8 över hela linjen, som du rekommenderade i förra teckenkodningsinlägget. Vet du förresten varför jag ibland måste uttryckligen tala om för MySQL att det är UTF-8 jag väntar mig innan jag börjar skicka queries (”SET NAMES utf8, SET CHARACTER SET utf8″). Men ibland behövs det inte.
Jag kände inte till SET NAMES och SET CHARACTER SET, men tydligen fixar ”mitt” ramverk Kohana det automatiskt, så jag behöver inte bry mig…
Om du vill gräva mer i det kan du läsa i MySQL-dokumentationen.
Klockrent post. En sån post man borde skriva oftare. Man har löst ett problem och förstår att fler kanske kommer stöta på det.
Vad fick du för problem om du inte teckenkodade? Har nämligen bekymmer med payson. Betallösningen är byggd i .NET med teckenkodningen ISO-8859-1 som du nämner ovan. Men vissa kunder verkar ha bekymmer med själva paysonbetalningen i webbshoppen. Jag kan själv inte återskapa problemen, men min uppdragsgivare får ibland problem. Kan olika webbläsare korrigera teckentolkningsproblem/ URL encode?