Beberapa file fungsi kernel dari Alipay:
Alipayfunction.java
paket com.test.util.alipay; impor java.io.filewriter; impor java.io.ioException; impor java.net.malformedurlexception; impor java.net.url; impor java.util.arraylist; impor java.util.collections; impor java.util.hashmap; impor java.util.list; impor java.util.map; impor org.dom4j.document; impor org.dom4j.documentException; impor org.dom4j.node; impor org.dom4j.io.saxreader; Kelas Publik alipayfunction { / *** Fungsi: Hasilkan hasil tanda tangan* @param Sarray Array yang akan ditandatangani* @param Kode Verifikasi Keamanan Kunci* @Return Signature Hasil String* / Public Static String BuildMYsign (MAP SARRAY, KUNCI STRING) {String Prestr = CreateLinkString (SARRAY); // spline Semua elemen array ke dalam string menggunakan karakter "&" sesuai dengan "parameter = nilai parameter" prestr = prestr + kunci; // Hubungkan string yang disambung secara langsung dengan string kode pemeriksaan keamanan mySign = md5encrypt.md5 (prestr); Kembalikan MySign; } / *** Fungsi: Hapus nilai null dan parameter tanda tangan dalam grup parameter tanda tangan array* @param Sarray* @Return Hapus nilai null dan grup parameter tanda tangan baru* / peta peta statis public (peta sarray) {daftar kunci = new arraylist (sarray.keyset ()); Peta SarrayNew = new HashMap (); untuk (int i = 0; i <keys.size (); i ++) {string key = (string) keys.get (i); String value = (string) Sarray.get (key); if (value == null || value.equals ("") || key.equalSignorecase ("tanda") || key.equalSignorecase ("Sign_type")) {lanjutkan; } SarrayNew.put (tombol, nilai); } return SarrayNew; } /** * Function: Sort all elements of the array and splice them into strings in the "&" character according to the "parameter = parameter value" pattern* @param params Params parameter groups that need to be sorted and participated in character splicing* @return String after splicing */ public static String CreateLinkString(Map params){ List keys = new ArrayList(params.keySet()); Collections.sort (kunci); String prestr = ""; untuk (int i = 0; i <keys.size (); i ++) {string key = (string) keys.get (i); String value = (string) params.get (key); if (i == keys.size () - 1) {// Saat menyambung, karakter terakhir tidak termasuk prestr = prestr + key + "=" + nilai; } else {prestr = prestr + key + "=" + value + "&"; }} return prestr; } / *** Fungsi: Tulis log untuk pengujian yang mudah (lihat persyaratan situs web, Anda juga dapat mengubah untuk menyimpan catatan dalam database)* @param pedang konten teks yang akan ditulis dalam log* / public static void gogresult (string Sword) {// file ini ada dalam direktori waktu yang sama dengan file startup server aplikasi, nama file {// server plus server {file server Application, file startup server {nama server {file server {file server FileWriter ("d: // alipay_log" + system.currentTimeMillis () + ".txt"); writer.write (pedang); writer.close (); } catch (Exception e) {E.PrintStackTrace (); }} /** * Fungsi: Digunakan untuk mencegah phishing, panggil antarmuka query_timestamp untuk mendapatkan fungsi pemrosesan timestamp * Catatan: Terjadi kesalahan dalam XML parsing jarak jauh, yang terkait dengan apakah server mendukung ssl dan konfigurasi @trowscept mitra @trowsceptceptcepte * */Public Static String query_timestamp (mitra string) melempar Malformedurlexception, DocumentException, ioException {string strurl = "https://mapi.alipay.com/gateway.do?service=Query_Timestamp&partner="+Partner; StringBuffer buf1 = new StringBuffer (); Saxreader Reader = SaxReader baru (); Dokumen doc = reader.read (URL baru (strurl) .openstream ()); Daftar <Node> nodelist = doc.selectnodes ("// alipay/*"); untuk (simpul simpul: nodelist) {// mencegat informasi yang tidak perlu diuraikan if (node.getName (). Equals ("is_success") && node.getText (). Equals ("t") {// Tentukan apakah ada daftar tanda yang berhasil <node> nodelist1 = doc. untuk (node node1: nodeList1) {buf1.append (node1.getText ()); }} return buf1.toString (); }}}Alipaynotify.java
paket com.test.util.alipay; impor java.io.bufferedReader; impor java.io.inputStreamReader; impor java.net.httpurlconnection; impor java.net.url; impor java.util.map; impor com.test.constants.alipayConfig; Fungsi kelas publik alipaynotify {/***: menghasilkan hasil tanda tangan berdasarkan informasi yang dikembalikan* @param params parameter pemberitahuan array dikembalikan* @param kode verifikasi keamanan kunci* @return hasil tanda tangan yang dihasilkan*/string statis public. mySign = alipayfunction.buildmysign (sparanew, key); // Dapatkan hasil tanda tangan mengembalikan mysign; } /** * * Fungsi: Dapatkan hasil ATN server jarak jauh, verifikasi URL return * @param notify_id Notify ID verifikasi * @return server ATN hasil * Verifikasi Hasil Set: * Kesalahan ini terjadi ketika parameter perintah yang tidak valid salah. Harap periksa apakah mitra dan kunci kosong dalam proses pengembalian* True Return Information* False Harap periksa masalah port pemblokiran firewall atau server dan verifikasi apakah waktu melebihi satu menit*/public static string verifikasi (string notify_id) {// Dapatkan hasil ATN dari server jarak jauh dan memverifikasi apakah itu permintaan yang dikirim oleh alipay server transport = alipansconfig. String mitra = alipayconfig.partner; String vergyfy_url = ""; if (transport.equalsignorecase ("https")) {veryfy_url = "https://www.alipay.com/cooperate/gateway.do?service=notify_verify"; } else {veryfy_url = "http://notify.alipay.com/trade/notify_query.do?"; } veryfy_url = veryfy_url + "& mitra =" + mitra + "¬yy_id =" + notify_id; String responsetxt = checkUrl (veryfy_url); mengembalikan responsetxt; } /**** Fungsi: Dapatkan hasil ATN server jarak jauh* @param urlvalue Tentukan alamat jalur URL* @Return server ATN hasil* Hasil verifikasi set:* Kesalahan ini terjadi ketika parameter perintah tidak valid salah. Harap periksa apakah mitra dan kunci kosong dalam proses pengembalian* benar -benar pengembalian informasi yang benar* false Silakan periksa masalah port pemblokiran firewall atau server dan verifikasi bahwa waktu melebihi satu menit*/ public static string checkUrl (string urlvalue) {string inputline = ""; coba {url url = url baru (urlvalue); HttpurlConnection urlConnection = (httpurlconnection) url .openconnection (); BufferedReader di = BufferedReader baru (inputStreamReader baru (urlConnection.getInputStream ())); inputline = in.readline (). ToString (); } catch (Exception e) {E.PrintStackTrace (); } return inputline; }}Alipayservice.java
paket com.test.util.alipay; impor java.util.arraylist; impor java.util.hashmap; impor java.util.list; impor java.util.map; Fungsi Kelas Publik AliPayService { /** *: Konstruksi Formulir Kirim HTML * @param Mitra Koperasi ID * @param Seller_email Menandatangani akun alipay atau akun Alipay Penjual * @param return_url Halaman yang melonjak setelah pembayaran harus digunakan untuk memulai dengan http. Parameter khusus seperti? ID = 123 tidak diperbolehkan ditambahkan* @param notify_url selama proses transaksi, halaman yang diberitahukan oleh server harus menggunakan jalur lengkap dalam format yang dibuka oleh HTTP. Parameter khusus seperti? ID = 123 tidak diperbolehkan ditambahkan. * @param show_url Alamat tampilan produk situs web, dan parameter khusus seperti? Id = 123 tidak diperbolehkan ditambahkan. * @param out_trade_no Harap cocokkan nomor pesanan unik di sistem pesanan situs web Anda* @param subjek nama pesanan ditampilkan dalam "nama produk" di Alipay Cashier dan dalam daftar "nama produk" dalam manajemen transaksi Alipay. * @param Body Order Deskripsi, Detail Pesanan, Catatan Pesanan, Ditampilkan dalam "Deskripsi Produk" di Alipay kasir* @param Total_fee Jumlah pesanan total ditampilkan dalam "Total Hutang" di Alipay Cashier* @param Paymentmethod Metode pembayaran default, empat nilai tersedia: BankPay (bank online); kartun (kartun); DirectPay (Balance); Tunai (pembayaran internet) * @param defaultBank Kode perbankan online default, lihat club.alipay.com/read.php?tid=8681379 * @param encrypt_key anti-phishing timestamp * @param exter_invoke_ip alamat IP yang dapat diselesaikan, yang dapat diselidiki oleh pembeli. di halaman * @param buyer_email Pembeli Default Akun Alipay * @param royalty_type Jenis komitmen, yang merupakan nilai tetap: 10, dan tidak perlu dimodifikasi * @param royalty_parameters komitmen yang ditetapkan, dan secara dinamis memperoleh setiap akun pengumpulan laba, setiap jumlah laba, dan setiap deskripsi laba untuk setiap transaksi berdasarkan situs web Merchant sendiri. Hanya 10 karakter yang dapat diatur paling banyak* @param input_charset Format pengkodean karakter saat ini mendukung GBK atau UTF-8* @param Kode Verifikasi Keamanan Kunci* @param Sign_type Metode tanda tangan tidak perlu dimodifikasi, String String, String String, String String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String Static, String String, String String, show_url, String out_trade_no, String subject, String body, String total_fee, String paymethod, String defaultbank, String anti_phishing_key, String exter_invoke_ip, String extra_common_param, String buyer_email, String royalty_type, String royalty_parameters, String input_charset, String key, String sign_type, String it_b_pay){ Map spara = hashmap baru (); spara.put ("service", "create_direct_pay_by_user"); spara.put ("payment_type", "1"); spara.put ("mitra", mitra); spara.put ("seller_email", seller_email); spara.put ("return_url", return_url); spara.put ("notify_url", notify_url); spara.put ("_ input_charset", input_charset); spara.put ("show_url", show_url); spara.put ("out_trade_no", out_trade_no); spara.put ("subjek", subjek); spara.put ("tubuh", tubuh); spara.put ("total_fee", total_fee); spara.put ("paymethod", paymethod); spara.put ("DefaultBank", DefaultBank); spara.put ("anti_phishing_key", anti_phishing_key); spara.put ("exter_invoke_ip", exter_invoke_ip); spara.put ("extra_common_param", extra_common_param); spara.put ("pembeli_email", pembeli_email); spara.put ("royalty_type", royalty_type); spara.put ("royalty_parameters", royalty_parameters); spara.put ("it_b_pay", it_b_pay); Peta sparanew = alipayfunction.parafilter (spara); // Hapus nilai null dalam parameter array dan tanda tangan string mySign = alipayfunction.buildmysign (sparanew, key); // Hasilkan hasil tanda tangan StringBuffer sbHtml = new StringBuffer (); Daftar kunci = ArrayList baru (sparanew.keyset ()); String gateway = "https://www.alipay.com/cooperate/gateway.do?"; // Dapatkan metode pass // sbhtml.append ("<form id =/" alipaysubmit/"name =/" alipaysubmit/"action =/" " + gateway +" _input_charset = " + input_charset +"/"metode =/" get/">"); // POST METODE PASS (GET DAN POST HARUS DIPILIH) SBHTML.Append ("<Form ID =/" ALIPAYSUBMIT/"NAME =/" ALIPAYSUBMIT/"ACTION =/" " + GATEWAY +" _INPUT_CARSET = " + INPUT_CHARSET +"/"METODE =/" POST/">"); untuk (int i = 0; i <keys.size (); i ++) {string name = (string) keys.get (i); String value = (string) sparanew.get (name); sbhtml.append ("<input type =/" hidden/"name =/" " + name +"/"value =/" + value + "/" // ");} sbhtml.append (" <input type =/"hidden/" name =/"tanda/" value =/" + mySign +"/"/" name =/"toTap/" n value =/" + mysign +"/"/" type =/"hidden/" name =/"Sign_type/" value =/"" + Sign_type + "/" // "); // Kontrol tombol Kirim, jangan mengandung atribut nama SBHTML.Append (" <Input Type =/"Kirim/" Value =/"AliPay Konfirmasi Pembayaran/"> </Form> "); SBHTML.Append ("<script> Document.Forms ['ALIPAYSUBMIT'].Md5encrypt.java
paket com.test.util.alipay; impor java.io.unsupportedencodingException; impor java.security.messagedigest; impor java.security.nosuchalgorithmException; impor com.test.constants.alipayConfig; /** * Fungsi: Alipay MD5 mengenkripsi dan memproses file inti, dan tidak memerlukan modifikasi * Versi: 3.1 * Tanggal Modifikasi: 2010-11-01 * Deskripsi: * Kode berikut hanyalah kode sampel yang disediakan untuk kenyamanan untuk pengujian pedagang. Pedagang dapat menulisnya sesuai dengan kebutuhan situs web mereka sendiri dan menurut dokumen teknis. Kode ini belum tentu diperlukan. * Kode ini hanya untuk belajar dan meneliti antarmuka alipay, tetapi hanya menyediakan * */ kelas publik md5Encrypt {/ ** * menggunakan output bangunan sebagai hex */ private static final char [] digit = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '8', '9', '9', ',' ',' ',', ',', '', ',' ',' ',' ',' ',', '', '', '', 'e', 'f'}; / *** MD5 Enkripsi string** @param Text* Plaintext** @return ciphertext*/ public static string md5 (string text) {messageSmest msgdigest = null; coba {msgdigest = messageSmentIgest.getInstance ("md5"); } catch (nosuchalgorithMexception e) {lempar baru ilegalstateException ("Sistem tidak mendukung algoritma MD5."); } coba {msgdigest.update (text.getbytes (alipayconfig.input_charset)); // Perhatikan bahwa mengubah antarmuka ditandatangani dalam format pengkodean yang ditentukan} catch (UnsupportedencodingException e) {melempar IllegalStateException baru ("Sistem tidak mendukung EncodingException Anda."); } byte [] bytes = msgdigest.digest (); String md5str = string baru (encodehex (bytes)); mengembalikan md5str; } public static char [] encodehex (byte [] data) {int l = data.length; char [] out = char baru [l << 1]; // Dua karakter membentuk nilai hex. untuk (int i = 0, j = 0; i <l; i ++) {out [j ++] = digit [(0xf0 & data [i]) >>> 4]; out [j ++] = digit [0x0f & data [i]]; } kembali; }}Alipayconfig.java Berikut adalah beberapa pengaturan untuk nomor akun, kunci, alamat koneksi callback, dll.
paket com.test.constants; impor java.util.properties; impor com.test.util.propertiesutil; kelas publik alipayconfig {private static alipayconfig alconfig = null; private alipayconfig () {} public static alipayconfig getInstance () {if (alconfig == null) {alconfig = new alipayconfig (); } return alconfig; } // Cara Mendapatkan Kode Verifikasi Keamanan dan ID Mitra // 1. Kunjungi Pusat Layanan Pedagang Alipay (b.alipay.com), dan kemudian masuk dengan akun Alipay yang dikontrak. // 2. Akses "Layanan Teknis" → "Unduh Dokumen Integrasi Teknologi" (https://b.alipay.com/support/helperapply.htm?action=Integration) // 3. Dalam "Bantuan Integrasi Layanan Mandiri", Klik "Mitra ID Query" dan "Kode Verifikasi Keselamatan (Kunci) Query" // ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ PERNAHAKAN ptabatabatabatabatamahide Denganamah00000000000000000000 kopamahideide0000000000000000000000000000000000abat0000 14 14 menangk 10angk 10angk 10angk 10angk 10angk 14angk 14angk 14angk 14angk 14angk 14 Ap 14ingk titik titik titik titik titikap titik titikimpan 14impanimpanimpanimpanimpanimpanimpanimpanimpanangk titik dapat 14angkangkangkangkangkangkangkangkangkangkangkangkangkangkangkangkangkangkangkangkangkangkangkinyaangkangk 10angkangkangkangkangkangkangkangkangkangkangkangkangkangkangkangkangkangkangkangkangkinyaangkangkantangk 10angkangkangkangkangkangkangk 10antaiantaiangkangkangkangkangkangkangkangkangkangkangk 10antaiantaiangkangkangkangkangk 10angkangkangkangkangkangkangkangkangkangkangkangkangkangkangkangkangkangkangkangkangkangkangkinya tetapiangkangkangkangkangkangkangkangkangkangkangkangkangkangkangkangkangkangkangkangkinya ””es iat iman mitra = "2088601003079118"; layanan string statis publik = "create_direct_pay_by_user"; // Kode Verifikasi Keamanan Transaksi, string 32-bit terdiri dari angka dan huruf Key string statis publik = "ZXCDVXGKSAAM2ZJRMV5CV0P4JQESAIH"; // mendaftar untuk akun alipay atau pembayaran akun alipay statis public static string seller_email = "[email protected]"; // Baca file konfigurasi // notify_url halaman pemberitahuan server selama transaksi harus menggunakan jalur lengkap dalam format format http: //, dan parameter khusus seperti? Id = 123 tidak diperbolehkan ditambahkan public static notify_url = "http: www.xxx.com/projecname. // Halaman yang melompat setelah pembayaran harus menggunakan jalur lengkap dalam format http: //., Dan parameter khusus seperti? ID = 123 tidak diizinkan untuk ditambahkan. Nama domain return_url tidak dapat ditulis sebagai http: //localhost/js_jsp_utf8/return_url.jsp, jika tidak, eksekusi return_url akan tidak valid. // string statis public return_url = "http: www.xxx.com/projectname/alipaytrade.action"; // Alamat tampilan produk situs web, parameter khusus seperti? Id = 123 tidak diizinkan untuk ditambahkan string statis public show_url = "http://www.alipay.com"; // Nama penerima pembayaran, seperti: nama perusahaan, nama situs web, nama penerima, dll. Public Static String Mainname = "Pembayar Nama"; // ↑↑↑↑ Chaparan EMPLTISIKOIKAHogrokentalostostostostostost aamin Aisan↑uhi Kepatepatepatepatepatepatepat aepatuas aiman benepat benepatoloepatuas aepat ben meningkatkantimambat Yambatepatepatepategankanepatepatepat A ↑↑↑↑epategan↑↑epatuas 0 korasan Asikentalostingostingostingostingostingostingostingitismati kentern↑↑ Chiapomaterta Amaatiden Amaatidenepatepatuas aepatepatuasepatepatepatepatepatepatepatepatepatepatepatepatepatepatepatepatepatepatepatepatepatepatepatepataminargargeganostingamin: fi String transport = "http"; }Berikut adalah proses aplikasi sederhana:
Saya tidak akan berbicara tentang apa yang Anda panggil dari JSP, karena ini baru saja diteruskan ke latar belakang, berapa harganya, dan parameter lainnya.
Berikut adalah deskripsi pemrosesan latar belakang:
PaymentAction.java
/ *** Dapatkan Nomor Pesanan Transaksi Alipay* @Return*/ String statis yang disinkronkan publik getOrdNum () {date date = new date (); DateFormat df = new SimpleDateFormat ("yyyymmddhhmmsssss"); return df.format (tanggal); } protected httpservletRequest getRequest () {return servletActionContext.getRequest (); } // Alipay Transaction Order Number String orderNum = getOrdNum (); // Jumlah total transaksi ini getRequest (). SetAttribute ("TotalMoney", "0,01"); // Jumlah pesanan transaksi ini getRequest (). SetAttribute ("out_trade_no", ordernum); // Nama Produk Deskripsi getRequest (). SetAttribute ("Subjek", "Nama Produk"); // Proses menyimpan informasi pesanan ini ke database dihilangkan di sinialipay.jsp
<%@page import="com.test.constants.AlipayConfig"%> <%@page import="com.test.util.alipay.UtilDate"%> <%@page import="com.test.util.alipay.AlipayService"%> <% /* Function: Set product-related information (entry page) *Details: This page is the interface portal page, the URL when generating payment * Version: 3.1 * Tanggal: 2010-11-01 * Deskripsi: * Kode berikut hanyalah kode sampel yang disediakan untuk kenyamanan pengujian pedagang. Pedagang dapat menulisnya sesuai dengan kebutuhan situs web mereka sendiri dan menurut dokumen teknis, dan tidak perlu menggunakan kode ini. *Kode ini hanya untuk belajar dan meneliti antarmuka Alipay, dan hanya disediakan sebagai referensi. ************************************* Jika Anda menghadapi masalah selama integrasi antarmuka, Anda dapat pergi ke Pusat Layanan Pedagang (https://b.alipay.com/support/helperapply.htm?action=consultationApply) untuk mengirimkan aplikasi untuk bantuan integrasi. Kami akan memiliki insinyur teknis profesional untuk menghubungi Anda untuk membantu menyelesaikan masalah. Anda juga dapat pergi ke Forum Alipay (http://club.alipay.com/read-htm-tid-8681712.html) untuk menemukan solusi yang relevan. Parameter yang akan dilewati tidak diizinkan kosong, atau tidak muncul di array, kontrol tersembunyi atau tautan URL. *******************************************************/%> <%@ page language = "java" contentType = "text/html; charset = UTF-8" pageEncoding = "UTF-8"%> <! Doctml html public "-// w3c/w3c/uTf-8"%> <! DocType html publik "-//W3c/w3c//dtt. <html> <head> <meta http-equiv = "konten-tipe" content = "text /html; charset = utf-8"> <itement> tes </iteme> <tautan rel = "ikon pintas" href = "favicon.ico"> <meta name = "kata kunci" content = "" type = "text/css"> .font_content {font-family: "客"; Ukuran font: 14px; Warna:#FF6600; } .font_title {font-family: "客"; font-size: 16px; Warna:#FF0000; font-weight: tebal; } tabel {border: 1px solid #cccccc; } </style> <script type = "text/javascript"> var _gaq = _gaq || []; _gaq.push (['_ setAccount', 'UA-25469955-1']); _gaq.push (['_ trackpageView']); (function () {var ga = document.createelement ('skrip'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol? 'https: // ssl': 'http: // www'; document.geteLementsbyTagname ('skrip') [0]; </script> </head> <% //request.setcharacterencoding("utf-8 "); // konfigurasi informasi di alipyconfig.java (tidak dapat dimodifikasi) string input_charset = alipayconfig.getInstance (). Input_charset; String Sign_Type = ALIPAYConfig.GetInstance (). Sign_type; String seller_email = alipayconfig.getInstance (). Seller_email; String mitra = alipayconfig.getInstance (). Mitra; String key = alipayconfig.getInstance (). Key; String show_url = alipayconfig.getInstance (). Show_url; String notify_url = alipayconfig.getInstance (). Notify_url; String return_url = alipayconfig.getInstance (). Return_url; String it_b_pay = alipayconfig.getInstance (). It_b_pay; ///////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////// String subjek = (string) request.getAttribute ("subjek"); // Deskripsi Pesanan, Detail Pesanan, Catatan Pesanan ditampilkan di "Deskripsi Produk" di alipay kasir string body = (string) request.getAttribute ("body"); // Jumlah pesanan total ditampilkan dalam "Total Hutang" di string kasir Alipay Total_Fee = (String) request.getAttribute ("TotalMoney"); // Parameter Fungsi Diperpanjang - Metode Pembayaran Default // String pay_mode = request.getParameter ("pay_bank"); String paymentMethod = ""; // Metode pembayaran default, empat nilai tersedia: BankPay (Perbankan Online); kartun (kartun); DirectPay (Balance); Tunai (pembayaran internet) string defaultBank = ""; // Kode perbankan online default, lihat http://club.alipay.com/read.php?tid=8681379 /*if(pay_mode.equals("DirectPay ")) {paymethod =" DirectPay "; } else {paymethod = "BankPay"; defaultBank = pay_mode; }*/// Parameter fungsi yang diperluas-Anti-phishing // Harap dengan hati-hati memilih apakah akan mengaktifkan fungsi anti-phishing // Setelah exter_invoke_ip dan anti-phishing_key telah ditetapkan, mereka akan menjadi parameter yang diperlukan // Setelah menyalakan fungsi anti-fishing, server dan komputer lokal harus mendukung parsing XML jarak jauh, mohon configure. // disarankan untuk menggunakan pos untuk meminta string data anti_phishing_key = ""; // string timestamp anti-phishing exter_invoke_ip = ""; // Dapatkan alamat IP klien, sarankan: tulis program untuk mendapatkan alamat IP klien // misalnya: // anti-phishing_key = alipayfunction.query_timestamp (mitra); // Dapatkan fungsi timestamp anti-phishing // exter_invoke_ip = "202.1.1.1"; // Parameter Fungsi Diperpanjang - String lain Extra_Common_Param = ""; // parameter khusus, dapat menyimpan konten apa pun (kecuali karakter khusus seperti = dan &), dan tidak akan ditampilkan pada halaman string buyer_email = "137672927"; // Pembeli Default Akun ALIPAY String Extand_Param = ""; // Parameter fungsi yang diperluas - laba terbagi (jika Anda ingin menggunakannya, harap tetapkan nilai sesuai dengan format yang diperlukan oleh komentar) string royalty_type = ""; // Jenis komisi, nilai ini adalah nilai tetap: 10, tidak perlu memodifikasi string royalty_parameters = ""; // Set Informasi Komisi, Secara dinamis dapatkan setiap akun pembayaran split, setiap jumlah split, dan setiap deskripsi terpisah dari setiap transaksi berdasarkan situasi situs web pedagang sendiri. Anda hanya dapat mengatur hingga 10 item // jumlah dari setiap jumlah saham harus kurang dari atau sama dengan total_fee // format dari set informasi komisi adalah: email_1^Jumlah 1^Komentar 1 | Email_2^Jumlah 2^Komentar 2 // Misalnya: // royalty_type = "10" // royalty_parameters = "[email protected] 1|[email protected]^0.01^remark 2 "// Set 1H sebelum akan mengembalikan // Deskripsi Kesalahan: Maaf, pedagang tidak memiliki izin batas waktu khusus untuk diaktifkan, silakan hubungi pedagang Anda. // kode kesalahan: self_timeout_not_support it_b_pay = ""; //Constructor, generate request URL String sHtmlText = AlipayService.BuildForm(partner,seller_email,return_url,notify_url,show_url,out_trade_no, subject,body,total_fee,paymethod,defaultbank,anti_phishing_key,exter_invoke_ip,extra_common_param,buyer_email, royalty_type, royalty_parameters, input_charset, key, Sign_type, it_b_pay); %> <body> <table align="center" cellpadding="5" cellpacing="0"> <tr> <td align="center" colspan="2">Order confirmation</td> </tr> <tr> <td align="right">Order number: </td> <td align="left"><%=out_trade_no%></td> </tr> <tr> <td align = "kanan"> Jumlah total pembayaran: </td> <td align = "left"> <%= total_fee%> </td> </tr> <tr> <td align = "center" colspan = "2"> <%= shtmltext%> </td> </tr> </tabel> </body> htmAntarmuka ke alipay callback: alipaynotify.java
paket com.test.action.payment; impor java.util.date; impor java.util.list; impor com.test.action.base.baseaction; impor com.test.dao.model.paymentcenter.orderform; impor com.test.dao.model.paymentcenter.orderlist; impor com.test.dao.model.paymentcenter.userpurview; kelas publik alipaynotify memperluas basa {private static final long serialversionuid = 1l; pembeli string pribadi_email; Private Long Buyer_id; Exterface string pribadi; string pribadi is_success; Private String notify_id; string pribadi notify_time; string private notify_type; string pribadi out_trade_no; Private String Payment_Type; Private String Seller_email; private long seller_id; subjek string pribadi; Private Float Total_fee; Private String Trade_no; Private String Trade_Status; tanda string pribadi; Private String Sign_Type; bentuk pesanan pribadi; // ... metode Get and Set dihilangkan Di Sini……………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………………………………… dari.setTradestatus (1); of.settradeno (this.trade_no); of.setNotifyTime (tanggal baru ()); orderFormService.updateOldModel (OF); // Daftar Perbarui <FertionList> OrderList = OrderListService .FIndOrdFormsByOuttradeno (this.out_trade_no); untuk (ordlist ol: orderlist) {// kode logika untuk pemrosesan pesanan dihilangkan di sini ………………}} // Setelah panggilan balik berhasil, mengembalikan kesuksesan ke alipay dan mengembalikan kesuksesan; } mengembalikan "kegagalan"; }}Dengan cara ini, antarmuka kedatangan akun instan pihak ketiga Alipay diimplementasikan.
Di atas adalah implementasi Java dari fungsi pembayaran Instan Alipay dari Alipay yang saya perkenalkan kepada Anda. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!