Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 16619|Válasz: 0

[Interfész] C# alkalmazza a WeChat fizetést

[Linket másol]
Közzétéve 2019. 03. 15. 11:59:31 | | |

Nemrég WeChat hivatalos fiókfejlesztéssel foglalkoztam, és problémákba ütköztem a WeChat fizetéssel, és három napig összezavarodtam, de ma végre sikerült. Ebben az időszakban szeretném megköszönni néhány nagy istennek a segítségüket, és megosztom velük a tapasztalataimat, amíg melegek vannak.

Mielőtt bevezetnék a WeChat Pay-t,

A WeChat fejlesztői platformhoz kell mennem a tanúsításhoz, nem fogok sokat mondani ezekről az autentifikációs és konfigurációs információkról, itt főként a kód szintjéről van szó, hogy a fizetés megvalósítsa.

Hivatalos dokumentáció: https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_7.

Több paraméterrel szemben a JS-ben, egy fő magyarázatot adok:


A fejlesztési folyamat során négy nagyon fontos paraméter létezik: az appid, AppSecret, apikey és kereskedői szám. A fenti js appID az egyik ilyen. timeStamp egy időbélyeg, 10 számjegy, nonceStr egy véletlenszám, 32 biten belül, itt a két legfontosabb paraméter, és a leginkább hibaigényesek a csomag és a paySign. Hadd mondjam el egyenként. Először a csomagról beszéljünk, itt prepay_id kell használnunk, ez a paraméter a WeChat által generált rendelésszám, hívnunk kell az egységes rendelési felületet, hogy megkapjuk. Hivatalos dokumentáció: https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1. Ahogy a dokumentációból is látható, a prepay_id eléréséhez sok paraméterre van szükség, és az egyik legfontosabb paraméter az aláírás. Megjegyzés: Az itt leírt aláírás eltér a JS fizetési aláírásától. Az aláírt algoritmus dokumentumban két pont van, és csak két pontot hangsúlyozok. Az egyik a paraméterek sorrendje, amelyeket az ASCII szerint kicsitől nagyig kell párogatni, a másik pedig az, hogy az apikey nem tévedhet, hol van ez az apikey? Jelentkezz be a kereskedői platformra, hogy beállítsd.

Az aláíráshoz szükséges stringek összefűzése után MD5 titkosítás segítségével megszerezhető az aláírás. Ezután egyesítsük az aláírást és az összes korábbi paramétert egy xml formátumú stringbe, és hívjuk meg az interfész URL címét:
https://api.mch.weixin.qq.com/pay/unifiedorder就可以返回一个xml结果,解析出其中的prepay_id,这样这个参数就成功获取到了。
Beszéljünk a JS utolsó paraméteréről, a PaySignről: PaySignről. Ugyanez igaz a fizetési aláírás algoritmusra is, a másik 5 paramétert sorrendben párogatva a JS-ben, plusz apikey, MD5 titkosítás, rendben.
Az aláírási algoritmus ugyanaz, de a paraméterértékek eltérnek. Itt egy dolog, amit érdemes megjegyezni. Az aláírásért fizetve a véletlenszerű nonceStr és az időbélyeg timeStamp szerepel, és ezek a két paraméter az aláíráskor is használatos
Ha e két paraméter értékei megegyeznek a JS-ben, akkor ugyanaz a véletlenszám és ugyanaz az időbélyeg. Miért? Bár a dokumentáció nem írja ki, az én értelmezésem szerint a fizetési aláírásokat véletlenszerű számok és időbélyegek generálják,
Fizetéskor küldd el a véletlenszerű számot, időbélyeget és a fizetési aláírást együtt, majd amikor a WeChat ellenőrizi, a véletlenszerű szám és időbélyeg alapján is a JS-ben aláírást generál, és összehasonlítja azt a felküldött fizetési aláírással.
Ha újra megkapod az új véletlenszámot és időbélyeget js-ben, a kiszámított aláírás eltér az általad küldött aláírástól, és egy hibát jelentenek: aláírás meghibásodott.

Ennyi a kód szintjére vonatkozóan, és persze van még néhány szempont is, amit érdemes megjegyezni. Például a hasznos openid paramétert is meg kell szerezni az interfész meghívásával, és annak megítélésével, hogy a fizetési engedélyezési könyvtár helyesen be van-e állítva.
Az utolsó mondat összefoglalója: Nézd meg alaposan a dokumentumot, és végül kérdezz meg másokat, találhatsz WeChat fizetési témájú csoportokat, sok isten van benne, nekem is volt egy problémám, és két napig küzdöttem meg anélkül, hogy megoldottam, (néha már csak a dokumentum nézése nem elég),
Ezután dühösen hozzáadott 8 WeChat fejlesztő csoportot, és végül a szakértők irányítása alatt megjelent. Még egyszer köszönöm. A programozók olyan emberekből álló csoport, akik szeretnek megosztani, és szívesen osztják meg, amit tudnak. Szóval ha nem érted, kérdezz többet.






Előző:Példa a C# WeChat interfész push sablon üzenet funkciójára
Következő:Érzek a nagyvállalatok ügyfélszolgálati rendszerével kapcsolatban
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com