Teknologi Platform-Dokumen Akses Perkhidmatan SPI


Apakah itu SPI

  • Antaramuka Pembekal Perkhidmatan
    • API: Platform menyediakan antara muka dan melaksanakannya, anda memanggilnya
    • SPI: Platform menyediakan standard, anda melaksanakannya, mungkin terdapat pelbagai pelaksanaan

image

Proses penyelesaian SPI

image

Apa yang perlu anda lakukan ialah kerja di kotak ketiga.

Senario perniagaan aplikasi

Pertama, anda mesti mempunyai APP dengan label "Permohonan Pihak Ketiga". Klik di sini untuk memohon.

Selepas aplikasi berjaya, masukkan konsol aplikasi dan anda akan melihat menu "Penyedia Perkhidmatan API"

image

Nota: Anda boleh melihat AppKey dan AppSecret aplikasi semasa dalam gambaran keseluruhan.

  • AppKey: Ia mempunyai dua fungsi
    • Selepas pemilik adegan (orang yang memperkenalkan anda kepada SPI) mengikat AppKey ini ke tempat kejadian, anda akan mempunyai hak pembangunan adegan tertentu. Anda boleh melihatnya di halaman ini tempat kejadian.
    • Pemanggil SPI perlu mengisi AppKey ini dalam TargetAppkey untuk memindahkan ke perkhidmatan yang anda laksanakan
  • AppSecret: Apabila platform terbuka (TOP) memanggil perkhidmatan yang anda laksanakan, ia akan menandatangani mesej (lihat tandatangan berkaitan untuk butiran; ) bab). Kunci ini digunakan semasa menandatangani. Anda perlu menggunakan kunci ini untuk pengesahan tandatangan.

Mari kita ambil adegan "cuaca" sebagai contoh. Apabila pemilik adegan mengikat pemandangan ini pada AppKey anda, anda boleh melihat pemandangan "cuaca" pada halaman ini.

Status adegan pada masa ini adalah "dalam pembangunan". Selain status ini, adegan itu juga mempunyai beberapa status seperti "dalam talian dan berjalan" dan "menaik taraf".

  • "Dalam pembangunan" kepada "Dalam talian dan berjalan": Permohonan untuk keluaran telah diluluskan;
  • "Dalam talian dan berjalan" kepada "Meningkatkan": Klik untuk memasuki naik taraf, dan klik pada mana-mana API untuk menaik taraf versi. Mengklik "Batalkan Naik Taraf" atau memohon pelepasan dan lulus semakan akan kembali ke "Dalam Talian dan Berjalan".

image

Selepas memasuki tempat kejadian, anda boleh melihat semua API yang akan dilaksanakan di tempat kejadian, seperti yang ditunjukkan dalam gambar di bawah.

image

Sementara itu, di sebelah tempat kejadian adalah keadaan semasa.

Baca dokumentasi

Pastikan anda membaca dokumentasi dengan teliti sebelum membangunkan Selepas mengklik "Develop Documentation", anda boleh melihat gambar di bawah.

image

Sila kembangkan dengan ketat mengikut dokumentasi, beri perhatian khusus kepada:

  • Kaedah permintaan: POST atau GET;
  • Pengekodan permintaan: UTF-8 atau GBK
  • Parameter permintaan awam, parameter permintaan perniagaan dan parameter tindak balas mestilah konsisten sepenuhnya dengan dokumen. Untuk nilai pulangan, sila rujuk contoh pemulangan;
  • Pengendalian pengecualian: Kembalikan medan yang ditentukan mengikut spesifikasi di sini, dan platform terbuka menggunakan ini untuk menentukan sama ada pemulangan anda berjaya atau gagal
  • Contoh permintaan: Anda boleh gunakan contoh di sini untuk menggantikan parameter anda Uji perkhidmatan yang anda laksanakan. Ambil perhatian bahawa kaedah ini sangat berguna untuk menyelesaikan masalah ralat.

Pembangunan Perkhidmatan

Penyelesaian pembangunan perkhidmatan adalah proses penyelidikan dan pembangunan anda sendiri Anda hanya perlu mematuhi protokol dalam dokumen untuk membangunkan. Tiada keperluan khas untuk bahasa pembangunan dan persekitaran penggunaan.

Untuk keselamatan, kami amat mengesyorkan agar perkhidmatan anda mengesahkan tandatangan dan mengesahkan IP peminta. Untuk memudahkan pembangunan anda, kami telah menyediakan SDK kepada anda Sila lihat gambar di bawah untuk halaman muat turun SDK.

image

Pengesahan Tandatangan

Mesti pilih! Tujuan pengesahan tandatangan adalah untuk menghalang penggodam daripada berniat jahat memanggil perkhidmatan anda dan memastikan bahawa sumber permulaan perkhidmatan adalah platform Alibaba.

Pada masa ini, kaedah pengesahan tandatangan hanya menyediakan tiga versi SDK: JAVA, PHP dan .NET Bahasa lain perlu dilaksanakan oleh anda sendiri.

Peraturan penjanaan kaedah tandatangan ialah:

  • Simpan parameter pertanyaan dan parameter pengepala ke dalam peta untuk kegunaan kemudian. Untuk kemudahan penjelasan, peta ini dinamakan params. Nota: Parameter tanda dalam pertanyaan tidak boleh dimasukkan ke dalam param
  • Jika jenis dalam badan ialah data bentuk, letakkan semua parameter dalam badan kecuali fail ke dalam param. Disebabkan beberapa sebab teknikal, fail yang melalui borang-data tidak ditandatangani
  • Jika jenis dalam badan ialah json atau xml, simpan sementara badan untuk kegunaan kemudian. Untuk kemudahan penjelasan, kandungan ini dinamakan badan;
  • Isih params dalam susunan abjad mengikut kekunci, kemudian lintasinya, dan bentuk rentetan dalam bentuk key1+value2+key2+value2..., untuk kemudahan penjelasan, Ia kemudiannya akan dipanggil rentetan tandatangan. Jika nilai kosong, gunakan "" sebaliknya. Jika badan tidak kosong, tambahkan semua kandungan badan di hujung rentetan tandatangan
  • Tambah rahsia pada permulaan dan akhir rentetan tandatangan. Rahsia ini diperoleh apabila SP memohon permohonan. Pada ketika ini, rentetan tandatangan dijana;
  • melakukan md5 dan hex pada rentetan tandatangan, dan akhirnya mendapat tanda. Untuk meringkaskan, formula untuk menjana tanda ialah:
    hex(md5(secret+sorted(header_params+url_params+form_params)+body)+secret)
  • Akhir sekali, bandingkan tanda yang dijana dengan tanda yang diperoleh daripada pertanyaan, iaitu The ketepatan tandatangan boleh disahkan.

Contoh kod untuk pengesahan tandatangan adalah seperti berikut:

import java.io.IOException;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletseimportS;
 
import com.taobao.api.internal.spi.CheckResult;
import com.taobao.api.internal.spi.SpiUtils;
 
kelas awam TestHttpServlet memanjangkan Http Servlet Unit akhir sendirian selalu = -7841738585932624564L;
 
protected void doPost(HttpServletRequest req, HttpServletResponse rsp) melemparkan ServletException, IOException {
        CheckResult result = SpiUtils.checkSign(req, "408521bc1608f8f1bc122484722240242472222247222422222482222222422424224242424242242424244242646624 );
        System.out.println(result.isSuccess());
        System.out.println (result.getRequestBody());
    }
 
}


Nota: Set aksara pengekodan parameter URL dalam permintaan HTTP dan set aksara apabila menukar rentetan kepada strim bait untuk ringkasan MD5 mestilah konsisten, jika tidak, tandatangan yang mengandungi parameter Cina akan tidak konsisten dengan TOP.

Pengesahan sumber IP

Diperlukan! Halang penggodam daripada memintas permintaan HTTP yang dimulakan oleh platform terbuka dan membawa mereka ke tempat lain untuk serangan ulangan.

Segmen egress IP Gateway Platform Terbuka Taobao boleh diperolehi melalui taobao.top.ipout.get Anda perlu menghubungi API secara berkala untuk mendapatkan data terkini.

Kod sampel pengesahan sumber IP adalah seperti berikut:

UjianHttpServlet kelas awam memanjangkan HttpServlet {

siri panjang akhir statik peribadiVersionUID = -784173858593426;dott pServletRequest req, HttpServletResponse rsp) membuang ServletException, IOException {
// Senarai segmen IP terkini boleh diperolehi melalui taobao.top.ipout.get
List<String> ipList = new ArrayList<String>();
ipList.add("140.205.144.0/24");
ip .add( "140.205.145.0/24");
ipList.add("140.205.40.0/24");
ipList.add("140.205.39.0/24");
ipList.add("01. 24") ;
ipList.add("140.205.56.0/24");
boolean isSuccess = SpiUtils.checkRemoteIp(req, ipList);
if (!isSuccess) {
                      ter().write("akses ditolak") ;
              rsp.getWriter().flush();

Cara lain ialah mengkonfigurasi peraturan capaian IP pada Pelayan HTTP Contohnya, mengkonfigurasi Nginx untuk hanya membenarkan IP TOP mengakses direktori /taobao:

lokasi /taobao {
benarkan 140.205.144.0/24;
. 140.205 .145.0/24;
benarkan 140.205.39.0/24;
benarkan 140.205.40.0/24;
benarkan 140.205.51.0/24;
benar 140.5.600;

Perkhidmatan Konfigurasi

Klik "Develop and Test" untuk memasuki halaman yang ditunjukkan di bawah:

image

Terdapat dua kotak input alamat di sini:

  • Alamat persekitaran ujian: Alamat ini untuk ujian sahaja. Ini dibincangkan secara terperinci dalam bahagian seterusnya.
  • Alamat persekitaran dalam talian: Apabila perkhidmatan SPI ini dikeluarkan dan dalam talian, alamat yang dipanggil oleh persekitaran dalam talian ialah URL ini.

Perkhidmatan ujian

Terdapat dua tempat untuk memulakan ujian,

1) Alat ujian SPI. Klik "Masukkan Ujian" pada halaman ini untuk memasuki alat ini. Lihat imej di bawah:

image

Secara lalai, hanya terdapat satu kes ujian: ujian asap. Ujian ini hanyalah permintaan HTTP yang dipasang oleh alat ujian SPI mengikut protokol dan dihantar ke alamat persekitaran ujian.

Jika anda ingin menambah kes ujian, sila hubungi orang yang bertanggungjawab ke atas platform SPI.

Selepas ujian selesai, anda boleh melihat semua parameter permintaan HTTP ini dalam butiran ujian. Anda harus memberi perhatian terutamanya kepada kandungan dalam "maklumat respons", yang mungkin pada mulanya menyemak sama ada perkhidmatan anda adalah normal.

image

2) Alat ujian API setiap hari, persekitaran kotak pasir: Ujian di sini adalah untuk menguji proses lengkap SPI Ia merupakan langkah penting sebelum perkhidmatan anda dikeluarkan dalam talian Hanya dengan melepasi langkah ini anda boleh membuktikan bahawa anda perkhidmatan berjalan seperti biasa.

Panggil API TOP akan menghalakan permintaan ke alamat persekitaran ujian anda. Anda perlu memberitahu pemanggil API AppKey, dan yang terakhir akan menambah "10" di hadapannya untuk mengisi parameter targetAppkey.

Anda juga boleh menjadi pemanggil API tetamu sendiri Prasyaratnya ialah pemilik tempat kejadian mula-mula menambahkan API ini pada kotak pasir, dan kemudian anda memohon kebenaran untuk memanggil API ini. Perlu diingatkan bahawa targetAppkey untuk ujian kotak pasir juga ialah kunci aplikasi anda dengan "10" di hadapannya juga, kunci tandatangan ialah kunci kotak pasir.

Anda boleh pergi ke di sini untuk membaca dokumentasi cara memanggil API.

Mohon pelepasan

Selepas ujian selesai, klik "Complete Test" untuk kembali ke halaman senarai tempat kejadian dalam Rajah 5. Jika anda fikir URL yang baru dikonfigurasikan boleh diterbitkan untuk berkuat kuasa, klik "Mohon untuk penerbitan". Jika senario ini dikonfigurasikan sebagai "Memerlukan Semakan", ia perlu disemak oleh orang yang bertanggungjawab ke atas platform SPI sebelum ia boleh dikeluarkan dan berkuat kuasa jika tidak, ia boleh berkuat kuasa serta-merta.

FAQ

  • Belum ada FAQ tentang dokumen ini