1. Dokumen Resmi WeChat Proses Pengembangan Pembayaran WeChat (Pembayaran Akun Publik)
Pertama, mari kita pergi ke bagian Langkah Pengembangan dari dokumentasi resmi WeChat Pay untuk memeriksa pengaturan yang diperlukan.
[Upload gambar gagal ... (gambar-5eb825-1531014079742)]
Karena pembayaran WeChat memerlukan izin tinggi, hanya akun layanan bersertifikat yang dapat memiliki izin untuk menggunakan antarmuka pembayaran WeChat. Sulit bagi kita untuk melamar secara pribadi, jadi kita perlu meminjam akun dari teman lain.
Datanglah ke bagian proses bisnis dari dokumen dan periksa proses pembayaran WeChat (saya pikir ini masih membutuhkan pemahaman dan tampilan yang sangat hati -hati, yang akan membantu Anda memahami proses pengembangan WeChat).
Kemudian, mengakses antarmuka pembayaran WeChat membutuhkan banyak parameter untuk dilewati. Lihat single terpadu
[Image Unggah gagal ... (Image-DF7051-1531014079742)]
Setelah memeriksa dokumen pembayaran WeChat resmi di atas, saya yakin Anda harus memiliki pemahaman tertentu tentang ini, tetapi saya masih berpikir bahwa pengembangan pembayaran WeChat sangat merepotkan, jadi kami akan menggunakan SDK pihak ketiga untuk berkembang.
2. WeChat Pay Pengembangan SDK Pihak Ketiga (Pembayaran Akun Publik)
Ini adalah pembayaran untuk akun resmi. Kami menggunakan Best-Pay-Sdk. SDK ini menggunakan PayRequest dan PayResponse untuk merangkum antarmuka permintaan dan hasil yang sesuai. Parameter utama yang perlu dilewati secara dinamis adalah OpenID (User Unique Identifier) dan OrderID. Selanjutnya, mari kita lihat cara berkembang.
1. Konfigurasi
// Konfigurasi Pembayaran Akun Publik WeChat WXPayH5Config wxpayh5config = wxpayh5config baru (); wxpayh5config.setAppid ("xxxxx"); wxpayh5config.setAppsecret ("xxxxxxx"); wxpayh5config.setMchid ("xxxxxx"); wxpayh5config.setMchkey ("xxxxxxx"); wxpayh5config.setNotifyUrl ("http: // xxxxx"); // Pay Class, semua metode ada di kelas ini BestPayServiceImpl BestPayService = new BestPayServiceImpl (); BestPayService.setwxpayh5config (wxpayh5config);2. Memulai pembayaran
Payrequest payRequest = payrequest baru (); payrequest.setPaytypeenum (BestPaytypeenum.wxpay_h5); payrequest.setorderId ("123456"); payRequest.setorderName ("Pesanan Pembayaran Akun Publik WeChat"); payrequest.setorderamount (0,01); payrequest.setopenId ("openId_xxxxxx"); BestPayService.pay (payRequest);3. Panggilan balik asinkron
bestPayService.asyncNotify();
Inilah yang dikatakan SDK 10 baris kode untuk menyelesaikan pembayaran WeChat.
Setelah pembayaran selesai, WeChat akan mengembalikan hasil pembayaran kepada kami sebagai bagian dari data XML pembayaran. Kita perlu meneruskan data ini ke URL pemberitahuan asinkron (notify_url) untuk menyelesaikan verifikasi hasil pembayaran (verifikasi tanda tangan, verifikasi status pembayaran). Kedua langkah SDK dilakukan untuk kita. Hubungi saja BestPayService.asyncNotify (notifyData);, setelah menyelesaikan verifikasi, kita perlu mengembalikan sepotong data ke weChat:
<xml> <return_code> <! [Cdata [Success]]> </return_code> <agulat_msg> <! [Cdata [ok]]> </return_msg> </xml>
Beri tahu WeChat bahwa verifikasi telah selesai dan tidak mengirimi kami permintaan untuk pemberitahuan asinkron.
Apakah masih belum jelas bagaimana mengintegrasikan ke dalam proyek? Tidak masalah, ada juga contoh demo, yang bisa lebih jelas.
3. Demo Run
URL demo adalah: https://github.com/pay-group/best-pay-demo
Pengontrol utama kami ada di sini:
@Controller @slf4jpublic kelas paycontroller {@Autowired private lestPayServiceImpl; /*** memulai pembayaran*/@getmapping (value = "/pay") public ModelAndView Pay (@RequestParam ("OpenId") String OpenId, Map <String, Object> Map) {payRequest request = new payRequest (); Acak acak = acak baru (); // PAYANI PARAMETER MERPANYAAN PARAMETER.SETPAYTYPEENUM (BESTPAYTYPEENUM.WXPAY_H5); request.setOrderId (string.ValueOf (random.nextint (1000000000))); request.setorderamount (0,01); request.setOrderName ("Pembayaran Terbaik SDK"); request.setopenid (openId); log.info ("【inisiasi pembayaran】 permintaan = {}", jsonutil.toJson (permintaan)); PayResponse PayResponse = BestPayservice.pay (permintaan); log.info ("【inisiasi pembayaran】 respons = {}", jsonutil.toJson (payResponse))); Map.put ("PayResponse", PayResponse); return new ModelAndView ("pay/create", peta); }/*** Callback asynchronous*/@postmapping (value = "/notify") public ModelAndView notify (@RequestBody String notifyData) melempar pengecualian {log.info ("【callback async】 request = {}", notifyData); PayResponse Response = BestPayService.asyncNotify (notifyData); log.info ("【async callback】 response = {}", jsonutil.toJson (respons)); return new ModelAndView ("Pay/Success"); }}Anda dapat mengunduh ini sendiri. Mari kita lihat cara kerjanya
Deskripsi proyek
Perlu dijalankan pada versi JDK> 1.8
Proyek ini dikembangkan menggunakan Springboot 1.5.1
Struktur proyek
src/main/java/com/github/lly835├── paydemoApplication.java ├── servletInitializer.java ├── konfigurasi └── payconfig.java // Kelas Konfigurasi Kunci └....
Contoh menjalankan
Anda perlu mengonfigurasi kunci sebelum berjalan, lihat payconfig.java
Jalankan perintah
git clone https://github.com/pay-group/best-pay-democd terbaik-demomvn clean packagejava -jar target/*.
Akses Browser http://127.0.0.1:8080/pay
Meringkaskan
Di atas adalah seluruh proses pengembangan pembayaran akun Java dari akun publik WeChat yang diperkenalkan kepada Anda oleh editor. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu!