Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 16619|Risposta: 0

[Interfaccia] C# implementa il pagamento su WeChat

[Copiato link]
Pubblicato su 15/03/2019 11:59:31 | | |

Recentemente stavo facendo lo sviluppo dell'account ufficiale su WeChat e ho incontrato alcuni problemi con il pagamento WeChat, sono rimasto confuso per 3 giorni, ma oggi finalmente ce l'ho fatta. Durante questo periodo, vorrei ringraziare alcuni grandi dèi per il loro aiuto, e condividerò la mia esperienza con loro mentre sono attraenti.

Prima di implementare WeChat Pay,

Devo andare sulla piattaforma di sviluppo WeChat per la certificazione, non dirò molto su queste informazioni di autenticazione e configurazione, qui sono principalmente a livello di codice per realizzare il pagamento.

Documentazione ufficiale: https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_7.

Affrontando diversi parametri in JS, darò una spiegazione principale:


Durante il processo di sviluppo, ci sono 4 parametri molto importanti: uno è appid, AppSecret, apikey e numero di commerciante. L'appID in js sopra è uno di questi. timeStamp è un timestamp, 10 cifre, nonceStr è un numero casuale, entro 32 bit, i due parametri più importanti qui, e i più soggetti a errori sono package e paySign. Lasciate che vi spieghi uno per uno. Parliamo prima del pacchetto, dobbiamo usare prepay_id qui, questo parametro è il numero d'ordine generato da WeChat, dobbiamo chiamare l'interfaccia unificata per ottenerlo. Documentazione ufficiale: https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1. Come puoi vedere dalla documentazione, per ottenere prepay_id sono necessari molti parametri, e uno dei parametri più importanti è la firma. Nota: La firma qui è diversa da quella del pagamento in JS. Ci sono due punti nel documento algoritmico firmato, e sottolineo solo due punti. Uno è l'ordine dei parametri, che devono essere splicati secondo ASCII da piccolo a grande, e l'altro è che l'apikey non deve essere sbagliato, dove si trova questo apikey? Accedi alla piattaforma del commerciante per configurarlo.

Dopo aver sbistato le stringhe richieste per la firma, può essere utilizzata la crittografia MD5 per ottenere la firma. Poi combina la firma e tutti i parametri precedenti in una stringa di formato xml e chiama l'indirizzo URL dell'interfaccia:
https://api.mch.weixin.qq.com/pay/unifiedorder就可以返回一个xml结果,解析出其中的prepay_id,这样这个参数就成功获取到了。
Parliamo dell'ultimo parametro in JS, PaySign: PaySign. Lo stesso vale per l'algoritmo della firma di pagamento, unendo gli altri 5 parametri in JS in ordine, più apikey, crittografia MD5, ok.
L'algoritmo di firma è lo stesso, ma i valori dei parametri sono diversi. Ecco una cosa da notare. Quando si paga per la firma, si usano il numero casuale nonceStr e il timestamp di timestamp, e questi due parametri vengono usati durante la firma
Se i valori di questi due parametri in JS sono gli stessi, sono lo stesso numero casuale e lo stesso timestamp. Perché? Anche se la documentazione non lo dice, da quanto ho capito le firme di pagamento vengono generate da numeri casuali e timestamp,
Poi, quando paghi, invia insieme il numero casuale, il timestamp e la firma del pagamento, poi, quando WeChat verifica, sarà anche basato sul numero casuale e sull'orario in JS per generare una firma e confrontarla con quella che hai inviato.
Se riottieni il nuovo numero casuale e il timestamp in js, la firma calcolata sarà diversa da quella che hai inviato e verrà segnalato un errore: firma fallita.

Questo riguarda tutto il livello di codice, e ovviamente ci sono altri punti da notare. Ad esempio, il parametro openid utile deve anche essere ottenuto chiamando l'interfaccia e verificando se la directory per l'autorizzazione al pagamento è configurata correttamente.
L'ultima frase riassunto: Guarda attentamente il documento e infine chiedi ad altri, puoi trovare gruppi WeChat relativi ai pagamenti, ci sono molti dèi in esso, ho incontrato un problema in passato e ho faticato per 2 giorni senza risolverlo (a volte basta guardare il documento),
Poi ha aggiunto con rabbia 8 gruppi di sviluppo su WeChat, e alla fine è uscito sotto la guida degli esperti. Grazie ancora. I programmatori sono un gruppo di persone che amano condividere e sono più che felici di condividere ciò che conoscono. Quindi, quando non capisci, chiedi di più.






Precedente:Esempio di funzione di messaggio template push dell'interfaccia WeChat C#
Prossimo:Mi interessa il sistema di assistenza clienti delle grandi aziende
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com