Ik heb een webshop die gebruik maakt van pay.nl, deze betaalprovider genereerd betaal ids die ik gebruik als ordernummers voor elke bestelling. Nu komen er twee betaalopties bij die buiten pay.nl werken, namelijk `pinnen op locatie` en `contant op locatie`. Beide opties gaan totaal buiten de api van pay.nl om, oftewel hier wordt door pay geen betaalid gegenereerd, dat moet ik nu zelf doen.
Mijn vraag is hoe ik kan blijven genereren tot er een code is gegenereerd die nog niet in de database staat, om duplicaties te voorkomen? En hoe kan ik een soortgelijke code genereren als een pay.nl betaalid. Voorbeeld: 1171260197X25d00
Met een if else statement die checkt of het orderid al voorkomt in de database kom ik er niet denk ik, dan zou ik in de else opnieuw een id moeten genereren en daar wéér die check op doen etc etc. Dat moet beter kunnen.
Maar misschien denk je wel veel te moeilijk? Je zou ook voor deze betaalmethoden aparte tabellen bij kunnen houden? Dan zou je een code kunnen verzinnen voor pinnen (PIN_) en contant betalen (CASH_). Dit in combinatie met het volgnummer van de betaling (PIN_5 = de vijfde betaling via PIN) geeft je al een unieke code? Dan zou je dat uit kunnen breiden met een filiaalnummer ofzo (21_PIN_5 5e pinbetaling in filiaal 21). Of gewoon één tabel waar je een volgnummer uit trekt (auto increment id)? Net zoals het trekken van een lotje bij de bakker.
De oplossing hoeft helemaal niet ingewikkeld te zijn.
Pff overdrijf niet lol. Het gaat er toch om dat het getal uniek is met een check in de database en dat werkt. Zal best dat je met uitgebreide functies nog complexere random codes kunt maken maar daar heb ik in dit geval niks aan.
Pff overdrijf niet lol. Het gaat er toch om dat het getal uniek is met een check in de database en dat werkt. Zal best dat je met uitgebreide functies nog complexere random codes kunt maken maar daar heb ik in dit geval niks aan.
Nummertje trekken uit een database niet simpel genoeg? Dan kun je volstaan met één (INSERT-)query (en het opvragen van het auto-increment id). Veel simpeler wordt het niet. Hierbij laat je ook niets aan het toeval over. 100% garantie dat dit een uniek nummer is. Desnoods voeg je er een prefix of suffix aan toe. Dit zou mijn voorkeur hebben boven een query in een loop (op een mogelijk niet-geïndexeerde kolom).