<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Divineshop.net API</title>
    <description>The latest articles on DEV Community by Divineshop.net API (@divineshop-api).</description>
    <link>https://dev.to/divineshop-api</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4172459%2F0f40f176-7ca7-4746-8db9-c8a5b7b4736d.png</url>
      <title>DEV Community: Divineshop.net API</title>
      <link>https://dev.to/divineshop-api</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/divineshop-api"/>
    <language>en</language>
    <item>
      <title>TaiVPS API v19: liệt kê dịch vụ VPS bằng cURL</title>
      <dc:creator>Divineshop.net API</dc:creator>
      <pubDate>Fri, 09 Oct 2026 05:34:39 +0000</pubDate>
      <link>https://dev.to/taivps/taivps-api-v19-liet-ke-dich-vu-vps-bang-curl-1ife</link>
      <guid>https://dev.to/taivps/taivps-api-v19-liet-ke-dich-vu-vps-bang-curl-1ife</guid>
      <description>&lt;p&gt;Bài này được đăng trong tổ chức TaiVPS trên DEV. Tài khoản tác giả đang hiển thị tên Divineshop.net API.&lt;/p&gt;

&lt;p&gt;Nếu đang xây bảng chọn gói VPS hoặc tích hợp đại lý, hãy bắt đầu bằng yêu cầu chỉ đọc &lt;code&gt;loaivps&lt;/code&gt;. Yêu cầu này trả về các loại dịch vụ VPS mà tài khoản có thể dùng. Không cần thử thao tác mua hay thay đổi máy chủ để kiểm kết nối API.&lt;/p&gt;

&lt;h2&gt;
  
  
  Chuẩn bị
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Có tài khoản TaiVPS và &lt;code&gt;auth_token&lt;/code&gt; của chính bạn. Giữ token ngoài mã nguồn, bài đăng và ảnh chụp màn hình.&lt;/li&gt;
&lt;li&gt;Endpoint v19: &lt;code&gt;https://taivps.net/api/v19&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Gửi tham số trong body của yêu cầu &lt;code&gt;POST&lt;/code&gt;, dạng form data.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Yêu cầu mẫu
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;--request&lt;/span&gt; POST &lt;span class="nt"&gt;--url&lt;/span&gt; &lt;span class="s2"&gt;"https://taivps.net/api/v19"&lt;/span&gt; &lt;span class="nt"&gt;--form&lt;/span&gt; &lt;span class="s2"&gt;"auth_token=YOUR_TOKEN"&lt;/span&gt; &lt;span class="nt"&gt;--form&lt;/span&gt; &lt;span class="s2"&gt;"action=loaivps"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Thay &lt;code&gt;YOUR_TOKEN&lt;/code&gt; bằng token riêng trong môi trường chạy của bạn. Đừng đưa token thật lên Git, Postman workspace công khai hoặc bình luận.&lt;/p&gt;

&lt;p&gt;Theo &lt;a href="https://taivps.net/api-docs" rel="noopener noreferrer"&gt;tài liệu API TaiVPS&lt;/a&gt;, phản hồi mẫu có các cặp &lt;code&gt;type&lt;/code&gt; và &lt;code&gt;name&lt;/code&gt;, ví dụ &lt;code&gt;vps-gold&lt;/code&gt;, &lt;code&gt;vps-platinum&lt;/code&gt;, &lt;code&gt;vps-vip&lt;/code&gt;. Đây là ví dụ tài liệu, không phải danh sách gói cố định; hãy dùng dữ liệu phản hồi hiện tại để dựng giao diện.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"vps-gold"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"VPS Gold"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"vps-platinum"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"VPS Platinum"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"vps-vip"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"VPS VIP"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Bước tiếp theo
&lt;/h2&gt;

&lt;p&gt;Sau khi lấy được &lt;code&gt;type&lt;/code&gt;, yêu cầu &lt;code&gt;action=services&lt;/code&gt; nhận thêm tham số &lt;code&gt;type&lt;/code&gt; để đọc các gói thuộc loại đó. &lt;a href="https://documenter.getpostman.com/view/25675425/2sBYHQ1hiU" rel="noopener noreferrer"&gt;Bộ sưu tập Postman công khai&lt;/a&gt; có ba ví dụ chỉ đọc: loại dịch vụ, gói VPS và hệ điều hành. Các yêu cầu mua, cài lại, gia hạn hoặc hủy VPS cần kiểm tham số và tác động trong tài liệu trước khi dùng.&lt;/p&gt;

&lt;p&gt;Bài này mô tả luồng từ tài liệu công khai; không chạy thử bằng token khách hàng. Giá và cấu hình nên lấy từ &lt;a href="https://taivps.net/store-vps" rel="noopener noreferrer"&gt;bảng gói hiện tại&lt;/a&gt;, vì chúng có thể thay đổi.&lt;/p&gt;

</description>
      <category>api</category>
      <category>tutorial</category>
      <category>devops</category>
    </item>
    <item>
      <title>Tích hợp API Divineshop: đọc danh mục, sản phẩm và số dư bằng cURL</title>
      <dc:creator>Divineshop.net API</dc:creator>
      <pubDate>Fri, 09 Oct 2026 04:34:53 +0000</pubDate>
      <link>https://dev.to/divineshop-api/tich-hop-api-divineshop-doc-danh-muc-san-pham-va-so-du-bang-curl-19c2</link>
      <guid>https://dev.to/divineshop-api/tich-hop-api-divineshop-doc-danh-muc-san-pham-va-so-du-bang-curl-19c2</guid>
      <description>&lt;p&gt;Nếu đang xây công cụ quản lý sản phẩm số hoặc kết nối cửa hàng với Divineshop, hãy bắt đầu bằng ba request chỉ đọc. Bài này dùng API chính thức của Divineshop; tôi có liên quan đến Divineshop. Tham số và tính năng có thể thay đổi, nên &lt;a href="https://divineshop.net/document-api" rel="noopener noreferrer"&gt;tài liệu API gốc&lt;/a&gt; là nguồn đối chiếu.&lt;/p&gt;

&lt;h2&gt;
  
  
  Chuẩn bị
&lt;/h2&gt;

&lt;p&gt;Tạo API Key và API Secret trong tài khoản được cấp quyền. Hai giá trị này gửi qua header &lt;code&gt;X-API-Key&lt;/code&gt; và &lt;code&gt;X-API-Secret&lt;/code&gt;. Giữ chúng ở môi trường chạy phía server, không đặt vào JavaScript công khai, ảnh chụp màn hình, URL hay kho Git.&lt;/p&gt;

&lt;p&gt;Đặt hai biến môi trường &lt;code&gt;DIVINESHOP_API_KEY&lt;/code&gt; và &lt;code&gt;DIVINESHOP_API_SECRET&lt;/code&gt; trong môi trường riêng của bạn. Ví dụ dưới đây dùng cú pháp shell POSIX; trên PowerShell, thay &lt;code&gt;$DIVINESHOP_API_KEY&lt;/code&gt; bằng &lt;code&gt;$env:DIVINESHOP_API_KEY&lt;/code&gt; và tương tự cho secret.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Lấy danh mục
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;--fail-with-body&lt;/span&gt; &lt;span class="nt"&gt;--silent&lt;/span&gt; &lt;span class="nt"&gt;--show-error&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"X-API-Key: &lt;/span&gt;&lt;span class="nv"&gt;$DIVINESHOP_API_KEY&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"X-API-Secret: &lt;/span&gt;&lt;span class="nv"&gt;$DIVINESHOP_API_SECRET&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="s1"&gt;'https://divineshop.net/api/v1/categories/list'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Request này giúp lấy danh mục trước khi lọc sản phẩm. Không đoán &lt;code&gt;category_id&lt;/code&gt; từ tên hiển thị; dùng ID mà API trả về.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Lấy sản phẩm
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;--fail-with-body&lt;/span&gt; &lt;span class="nt"&gt;--silent&lt;/span&gt; &lt;span class="nt"&gt;--show-error&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"X-API-Key: &lt;/span&gt;&lt;span class="nv"&gt;$DIVINESHOP_API_KEY&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"X-API-Secret: &lt;/span&gt;&lt;span class="nv"&gt;$DIVINESHOP_API_SECRET&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="s1"&gt;'https://divineshop.net/api/v1/products/list'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Endpoint hỗ trợ query &lt;code&gt;category_id&lt;/code&gt; để lọc theo danh mục và &lt;code&gt;search&lt;/code&gt; để tìm theo tên. Khi ghép query trong ứng dụng, hãy URL-encode giá trị tìm kiếm. Giá, gói và tình trạng sản phẩm cần đọc từ phản hồi hiện tại; đừng lưu cứng theo bài viết.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Kiểm tra số dư
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;--fail-with-body&lt;/span&gt; &lt;span class="nt"&gt;--silent&lt;/span&gt; &lt;span class="nt"&gt;--show-error&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"X-API-Key: &lt;/span&gt;&lt;span class="nv"&gt;$DIVINESHOP_API_KEY&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"X-API-Secret: &lt;/span&gt;&lt;span class="nv"&gt;$DIVINESHOP_API_SECRET&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="s1"&gt;'https://divineshop.net/api/v1/account/balance'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Đây là dữ liệu tài khoản. Chỉ gọi từ backend có quyền, không đưa phản hồi số dư vào log công khai hoặc trang frontend.&lt;/p&gt;

&lt;h2&gt;
  
  
  Khi request lỗi
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Kiểm tra đường dẫn bắt đầu bằng &lt;code&gt;https://divineshop.net/api/v1&lt;/code&gt; và header đúng tên.&lt;/li&gt;
&lt;li&gt;Nếu bị từ chối xác thực, kiểm tra cặp key/secret trong môi trường chạy; không dán chúng vào bình luận để nhờ sửa lỗi.&lt;/li&gt;
&lt;li&gt;Kiểm tra HTTP status và nội dung phản hồi trước khi cập nhật dữ liệu. Đừng coi response lỗi là danh sách rỗng.&lt;/li&gt;
&lt;li&gt;Với tác vụ định kỳ, giới hạn tần suất gọi và ghi log mã lỗi, thời điểm, endpoint; che khóa khỏi log.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Có thể nhập &lt;a href="https://www.postman.com/altimetry-architect-69675833-s-team/divineshop-api/collection/oiempeg/divineshop-api-yu-cu-ch-c" rel="noopener noreferrer"&gt;collection Postman công khai&lt;/a&gt; để thử ba request với biến key/secret trống. Đối chiếu các endpoint khác và điều kiện sử dụng tại &lt;a href="https://divineshop.net/document-api" rel="noopener noreferrer"&gt;tài liệu chính thức&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>api</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
