Tài liệu Steamworks
Interface ISteamMicroTxn
Interface được dùng để hỗ trợ Giao dịch phụ (Mua hàng trong trò chơi).

Tham khảo Hướng dẫn áp dụng giao dịch phụ để biết thêm chi tiết.
LƯU Ý: Dùng ISteamMicroTxnSandbox khi thử nghiệm!

Để biết thêm thông tin về cách sử dụng API Web Steamworks, vui lòng xem Tổng quan về Web API.

AdjustAgreement

POST https://partner.steam-api.com/ISteamMicroTxn/AdjustAgreement/v1/
TênLoạiBắt buộcMô tả
keystringAPI Web Steamworks - Khóa xác thực nhà phát hành.
steamiduint64SteamID của khách hàng đang điều chỉnh thỏa thuận.
agreementiduint64ID thỏa thuận hóa đơn Steam dưới dạng 64-bit độc nhất.
appiduint32AppID của trò chơi cho thỏa thuận này.
nextprocessdatestringNgày bắt đầu đợt thanh toán định kỳ kế tiếp. Định dạng YYYYMMDD.
Ngày chỉ có thể điều chỉnh tới ngày trong tương lai nhằm báo hiệu bạn muốn thêm thời gian vào gói đăng ký. Nếu ngày vượt quá ngày kết thúc của gói đăng ký, thì ngày kết thúc sẽ được gia hạn.
oldnextprocessdatestringTham số không bắt buộc, đây là ngày thanh toán định kỳ tiếp theo được biết gần đây nhất để đối chiếu. Định dạng là YYYYMMDD.
Nếu tham số này được cung cấp, API sẽ xác thực rằng ngày thanh toán định kỳ tiếp theo không có thay đổi, trước khi tìm cách điều chỉnh các thay đổi tiếp theo như thỏa thuận.

Thêm thời gian vào lịch thanh toán của một thỏa thuận với loại hóa đơn "steam". Có thể lấy agreementid bằng GetUserAgreementInfo.

LƯU Ý: Lệnh gọi yêu cầu có khóa API từ nhà phát hành để dùng phương thức này. Vì vậy, API này PHẢI được gọi từ máy chủ bảo mật và không bao giờ được sử dụng trực tiếp bởi client!

Phản hồi:
  • response
    • result - Kết quả của thao tác. (OK hoặc Failure)
    • params
      • agreementid - ID 64-bit độc nhất cho thỏa thuận hóa đơn Steam.
      • nextprocessdate - Ngày bắt đầu đợt thanh toán định kỳ kế tiếp. Định dạng là YYYYMMDD.
    • error - Không bắt buộc, chỉ trả về nếu result là Failure.
      • errorcode - Mã của lỗi hoặc sự kiện. Xem: Phụ lục B: Mã lỗi
      • errordesc - Thông điệp cho lỗi hoặc sự kiện.

CancelAgreement

POST https://partner.steam-api.com/ISteamMicroTxn/CancelAgreement/v1/
TênLoạiBắt buộcMô tả
keystringAPI Web Steamworks - Khóa xác thực nhà phát hành.
steamiduint64SteamID của khách hàng đang hủy thỏa thuận.
agreementiduint64ID 64-bit độc nhất cho thỏa thuận hóa đơn Steam.
appiduint32AppID của trò chơi cho thỏa thuận này.

Hủy một thỏa thuận hóa đơn định kỳ (gói đăng ký). Có thể lấy agreementid bằng GetUserAgreementInfo.

LƯU Ý: Lệnh gọi yêu cầu có khóa API từ nhà phát hành để dùng phương thức này. Vì vậy, API này PHẢI được gọi từ máy chủ bảo mật và không bao giờ được sử dụng trực tiếp bởi client!

Phản hồi:
  • response
    • result - Kết quả của thao tác. (OK hoặc Failure)
    • params
      • agreementid - ID thỏa thuận hóa đơn Steam dưới dạng 64-bit độc nhất.
    • error - Không bắt buộc, chỉ trả về nếu result là Failure.
      • errorcode - Mã của lỗi hoặc sự kiện. Xem: Phụ lục B: Mã lỗi
      • errordesc - Thông điệp cho lỗi hoặc sự kiện.

FinalizeTxn

POST https://partner.steam-api.com/ISteamMicroTxn/FinalizeTxn/v2/
TênLoạiBắt buộcMô tả
keystringAPI Web Steamworks - Khóa xác thực nhà phát hành.
orderiduint64ID 64-bit độc nhất cho đơn hàng
appiduint32AppID cho trò chơi.

Hoàn thành một lệnh mua bắt đầu bởi API InitTxn.

Lệnh này sẽ ghi nhận số tiền cho một giao dịch và chỉ nên được gọi sau khi người dùng đã duyệt giao dịch đó và bạn đã nhận thông báo đã duyệt thành công. Thông báo duyệt giao dịch đến từ phần mềm Steam (trò chơi của bạn đăng ký nhận thông báo) hoặc qua việc người dùng chuyển hướng lại về trang web của bạn (URL trả về được chỉ định lúc bạn chuyển hướng phiên web của người dùng về Steam). Giá trị usersession chỉ định trong InitTXN quyết định cơ chế thông báo.

Lệnh nhận được phản hồi thành công tức thanh toán đã hoàn thành và bạn có thể an toàn trao vật phẩm cho người dùng. Trong trường hợp hết thời gian chờ hay lỗi giao tiếp khác, dùng API QueryTxn hoặc GetReport để lấy trạng thái của giao dịch.

Phương thức này có phiên bản cũ mà hiện không còn được chính thức hỗ trợ. Bạn vẫn có thể tiếp tục dùng chúng nhưng chúng tôi khuyến nghị chuyển qua phiên bản mới nhất.
Lịch sử thay đổi:
  • Phiên bản 2 - Thay đổi thành số 64 bit theo định dạng chuỗi.

LƯU Ý: Lệnh gọi yêu cầu có khóa API từ nhà phát hành để dùng phương thức này. Vì vậy, API này PHẢI được gọi từ máy chủ bảo mật và không bao giờ được sử dụng trực tiếp bởi client!

Phản hồi:
  • response
    • result - Kết quả của thao tác. (OK hoặc Failure)
    • params
      • orderid - ID 64-bit độc nhất cho đơn hàng.
      • transid - ID 64-bit độc nhất cho giao dịch Steam.
    • error - Không bắt buộc, chỉ trả về nếu result là Failure.
      • errorcode - Mã của lỗi hoặc sự kiện. Xem: Phụ lục B: Mã lỗi
      • errordesc - Thông điệp cho lỗi hoặc sự kiện.

Phản hồi ví dụ:
<response> <result>OK</result> <params> <orderid>938473</orderid> <transid>374839</transid> </params> </response>

GetReport

GET https://partner.steam-api.com/ISteamMicroTxn/GetReport/v5/
TênLoạiBắt buộcMô tả
keystringAPI Web Steamworks - Khóa xác thực nhà phát hành.
appiduint32AppID của trò chơi để lấy báo cáo.
typestringLoại báo cáo (Một trong các loại sau: "GAMESALES", "STEAMSTORESALES", "SETTLEMENT", "CHARGEBACK")
timestringThời điểm bắt đầu báo cáo. (Giờ UTC chuẩn RFC 3339 định dạng như sau: 2010-01-01T00:00:00Z)
maxresultsuint32Số lượng kết quả tối đa có thể trả về trong báo cáo. (Mặc định là 1000 nếu không đặt giá trị). Lưu ý số lượng kết quả trả về có thể ít hơn giá trị maxresult, cho dù có nhiều kết quả hơn

Steam cung cấp báo cáo giao dịch có thể tải xuống với mục đích đối chiếu. Báo cáo này hiển thị chi tiết thông tin về mỗi giao dịch ảnh hưởng tới khoản tiền chuyển vào tài khoản của bạn.

LƯU Ý: Lệnh gọi yêu cầu có khóa API từ nhà phát hành để dùng phương thức này. Vì vậy, API này PHẢI được gọi từ máy chủ bảo mật và không bao giờ được sử dụng trực tiếp bởi client!

LƯU Ý: Phương thức này có phiên bản cũ mà hiện không còn được chính thức hỗ trợ. Bạn vẫn có thể tiếp tục dùng chúng nhưng chúng tôi khuyến nghị chuyển qua phiên bản mới nhất. Lịch sử thay đổi:
  • Phiên bản 2 - Thay đổi kết quả trả về thành array.
  • Phiên bản 3 - Thay đổi thành số 64 bit theo định dạng chuỗi.
  • Phiên bản 4 - Thêm mục storepurchasereference để trả về thông tin doanh số cho DLC đã bán trên cửa hàng có liên quan tới vật phẩm giao dịch phụ trong trò chơi.
  • Phiên bản 5 - Thêm giá trị trạng thái (status) mới cho giao dịch để phản ánh nghi vấn gian lận hoặc gian lận bồi hoàn.

Phản hồi:
  • response
    • result - Kết quả của thao tác. (OK hoặc Failure)
    • params
      • timecreated - Thời gian của giao dịch (Giờ UTC chuẩn RFC 3339 định dạng như sau: 2010-01-01T00:00:00Z)
      • orderid - ID 64-bit độc nhất cho đơn hàng. (Sẽ là 0 cho gói đăng ký định kỳ bắt đầu từ cửa hàng Steam, thay vào đó hãy dùng transid.)
      • transid - ID 64-bit độc nhất cho giao dịch Steam.
      • steamid - SteamID của người dùng thuộc về đơn hàng/giao dịch đó.
      • status - Trạng thái của đơn hàng. Xem: Phụ lục A: Giá trị trạng thái
      • currency - Mã đơn vị tiền tệ theo chuẩn ISO 4217.
      • time - Thời gian cập nhật gần đây nhất của giao dịch. (Giờ UTC chuẩn RFC 3339 định dạng như sau: 2010-01-01T00:00:00Z)
      • country - Mã quốc gia theo chuẩn ISO 3166-1-alpha-2.
      • usstate - Tiểu bang Hoa Kỳ. Trống cho các quốc gia ngoài Hoa Kỳ.
    • items
      • itemid - Số ID trò chơi của vật phẩm.
      • qty - Số lượng vật phẩm này.
      • amount - Tổng phí của người dùng không tính VAT (tính bằng cent). (199 = 1,99)
      • vat - Tổng VAT hoặc thuế (tính bằng cent). (19 = 0,19)
      • itemstatus - Trạng thái vật phẩm trong đơn hàng.
      • storepurchasereference - Không bắt buộc, chỉ trả về nếu việc mua hàng là qua DLC trên cửa hàng được kết nối tới một id vật phẩm giao dịch phụ trong trò chơi.
        • packageid - Gói DLC được mua trên cửa hàng đó.
        • bundleid - ID bộ sản phẩm liên quan đến gói DLC, nếu có.
        • referenceid - referenceid theo dòng tạo ra bởi Steam liên kết với gói đó.
        • amount - Giá mà người dùng trả.
        • vat - Thuế VAT nếu có khi mua hàng.
        • currency - Loại tiền tệ được dùng để mua hàng.
    • error - Không bắt buộc, chỉ trả về nếu result là Failure.
      • errorcode - Mã của lỗi hoặc sự kiện. Xem: Phụ lục B: Mã lỗi
      • errordesc - Thông điệp cho lỗi hoặc sự kiện.

Phản hồi ví dụ:
{ "response": { "result": "OK", "params": { "count": 4, "orders": [ { "orderid": "1233", "transid": "1234567890123456788", "steamid": "76561197972751825", "status": "PartialRefund", "currency": "USD", "time": "2024-01-23T18:30:00Z", "country": "US", "usstate": "WA", "timecreated": "2024-01-23T18:15:00Z", "items": [ { "itemid": 100, "qty": 1, "amount": 99, "vat": 9, "itemstatus": "Refunded" }, { "itemid": 101, "qty": 1, "amount": 1299, "vat": 116, "itemstatus": "Succeeded" } ] }, { "orderid": "1234", "transid": "1234567890123456789", "steamid": "76561197972751825", "status": "Failed", "currency": "USD", "time": "2024-01-23T18:40:30Z", "country": "US", "usstate": "WA", "timecreated": "2024-01-23T18:39:00Z", "items": [ { "itemid": 100, "qty": 1, "amount": 99, "vat": 9, "itemstatus": "Failed" } ] }, { "orderid": "1235", "transid": "1234567890123456790", "steamid": "76561197972751825", "status": "Succeeded", "currency": "USD", "time": "2024-01-23T18:40:40Z", "country": "US", "usstate": "WA", "timecreated": "2024-01-23T18:39:30Z", "items": [ { "itemid": 101, "qty": 1, "amount": 1299, "vat": 116, "itemstatus": "Succeeded" } ] }, { "orderid": "1236", "transid": "1234567890123456791", "steamid": "76561197972751825", "status": "Chargedback", "currency": "USD", "time": "2024-01-23T19:55:00Z", "country": "US", "usstate": "WA", "timecreated": "2024-01-23T18:40:00Z", "items": [ { "itemid": 102, "qty": 1, "amount": 999, "vat": 89, "itemstatus": "Chargedback" } ] } ] } } }

GetUserAgreementInfo

GET https://partner.steam-api.com/ISteamMicroTxn/GetUserAgreementInfo/v2/
TênLoạiBắt buộcMô tả
keystringAPI Web Steamworks - Khóa xác thực nhà phát hành.
steamiduint64SteamID của khách hàng.
appiduint32AppID của trò chơi cho thỏa thuận này.

Lấy thông tin chi tiết của tất cả thỏa thuận hóa đơn định kỳ (gói đăng ký) cho một người dùng.

LƯU Ý: Lệnh gọi yêu cầu có khóa API từ nhà phát hành để dùng phương thức này. Vì vậy, API này PHẢI được gọi từ máy chủ bảo mật và không bao giờ được sử dụng trực tiếp bởi client!

Phiên bản 2 - Giá trị trạng thái trả về có thể là "processing", trong trường hợp Steam vẫn chưa tính phí người dùng cho thỏa thuận đó. Trước đây trạng thái trả về sẽ là "active"

Phản hồi:
  • response
    • result - Kết quả của thao tác. (OK hoặc Failure)
    • params
      • agreements
        • agreement
          • agreementid - ID 64-bit độc nhất cho thỏa thuận hóa đơn Steam.
          • itemid - Số ID trò chơi của vật phẩm
          • status - active (hoạt động), canceled (đã hủy), hoặc processing (đang xử lý).
          • period - Thời hạn thỏa thuận.
          • frequency - Tần suất của thời hạn.
          • startdate - Ngày bắt đầu đợt thanh toán định kỳ. Định dạng là YYYYMMDD.
          • enddate - Ngày kết thúc đợt thanh toán định kỳ. Định dạng là YYYYMMDD.
          • recurringamt - Khoản tiền lên hóa đơn (theo cent) cho mỗi khung thời gian định kì.
          • currency - Mã đơn vị tiền tệ theo tiêu chuẩn ISO 4217 của giá.
          • timecreated - Ngày thỏa thuận được tạo, theo định dạng YYYYMMDD.
          • lastpayment - Ngày thanh toán lần cuối thành công, theo định dạng YYYYMMDD.
          • lastamount - Khoản tiền thanh toán lần cuối thành công, theo cent.
          • nextpayment - Ngày dự tính thanh toán lần tiếp theo, theo định dạng YYYYMMDD.
          • outstanding - Số dư chưa thanh toán hiện có, theo cent.
          • failedattempts - Số lần thử lên hóa đơn không thành công trên số dư chưa thanh toán.
    • error - Không bắt buộc, chỉ trả về nếu result là Failure.
      • errorcode - Mã của lỗi hoặc sự kiện. Xem: Phụ lục B: Mã lỗi
      • errordesc - Thông điệp cho lỗi hoặc sự kiện.

GetUserInfo

GET https://partner.steam-api.com/ISteamMicroTxn/GetUserInfo/v2/
TênLoạiBắt buộcMô tả
keystringAPI Web Steamworks - Khóa xác thực nhà phát hành.
appiduint32AppID của trò chơi mà người dùng sẽ mua hàng trong đó.
steamiduint64SteamID của người dùng đặt đơn hàng.
ipaddressstringĐịa chỉ IP của người dùng theo định dạng string (xxx.xxx.xxx.xxx). Chỉ yêu cầu nếu usersession trong InitTxn được đặt thành web.

Nhận thông tin chi tiết cho dữ liệu thanh toán của người dùng.

Những thông tin chi tiết đó dựa trên ví người dùng Steam.
Với tài khoản mới hoặc tài khoản chưa có ví Steam, thông tin trả về sẽ dựa trên địa chỉ IP của người dùng đó. Sẽ lấy địa chỉ IP từ phiên dùng phần mềm Steam nếu người dùng có đăng nhập, còn không sẽ lấy từ tham số ipaddress của API. Nếu người dùng không có ví, hoặc chưa đăng nhập vào phần mềm Steam, và bạn chưa được cung cấp địa chỉ IP, hàm call này sẽ trả về lỗi báo hiệu người dùng chưa đăng nhập.

Phương thức này có phiên bản cũ mà hiện không còn được chính thức hỗ trợ. Bạn vẫn có thể tiếp tục dùng chúng nhưng chúng tôi khuyến nghị chuyển qua phiên bản mới nhất.
Lịch sử thay đổi:
  • Phiên bản 2 - Thay đổi thành số 64 bit theo định dạng chuỗi.

LƯU Ý: Lệnh gọi yêu cầu có khóa API từ nhà phát hành để dùng phương thức này. Vì vậy, API này PHẢI được gọi từ máy chủ bảo mật và không bao giờ được sử dụng trực tiếp bởi client!

Phản hồi:
  • response
    • result - Kết quả của thao tác. (OK hoặc Failure)
    • params
      • state - Tiểu bang Hoa Kỳ. Trống cho các quốc gia ngoài Hoa Kỳ.
      • country - Mã quốc gia theo chuẩn ISO 3166-1-alpha-2.
      • currency - Mã đơn vị tiền tệ theo chuẩn ISO 4217 của giá.
      • status - Trạng thái của tài khoản. Có thể là:
        • Locked from purchasing - không thể thực hiện mua hàng
        • Active - trạng thái mặc định của tài khoản
        • Trusted - một tài khoản hoạt động có đơn hàng từ 90 ngày trở về trước mà không có bồi hoàn

    • error - Không bắt buộc, chỉ trả về nếu result là Failure.
      • errorcode - Mã của lỗi hoặc sự kiện. Xem: Phụ lục B: Mã lỗi
      • errordesc - Thông điệp cho lỗi hoặc sự kiện.

Phản hồi ví dụ:
<response> <result>OK</result> <params> <state>WA</state> <country>US</country> <currency>USD</currency> </params> </response>

InitTxn

POST https://partner.steam-api.com/ISteamMicroTxn/InitTxn/v3/
TênLoạiBắt buộcMô tả
keystringAPI Web Steamworks - Khóa xác thực nhà phát hành.
orderiduint64ID 64-bit độc nhất cho đơn hàng
steamiduint64SteamID của người dùng đặt đơn hàng.
appiduint32AppID của trò chơi cho giao dịch này.
itemcountuint32Số vật phẩm trong giỏ hàng.
languagestringMã ngôn ngữ theo chuẩn ISO 639-1 để mô tả vật phẩm. Chỉ hoạt động với 28 ngôn ngữ Steam hỗ trợ đầy đủ. Xem các ngôn ngữ được hỗ trợ
currencystringMã đơn vị tiền tệ theo chuẩn ISO 4217. Xem danh sách đơn vị tiền tệ để biết định dạng chính xác cho mỗi đơn vị tiền tệ.
usersessionstringPhiên người dùng sẽ ủy quyền giao dịch. Tham số hợp lệ là "client" hoặc "web". Nếu tham số này không được cung cấp, interface sẽ giả định phiên dùng hiện đăng nhập qua phần mềm Steam.
ipaddressstringĐịa chỉ IP của người dùng theo định dạng chuỗi (xxx.xxx.xxx.xxx). Chỉ bắt buộc nếu [param]usersession[/param] đặt thành web.
itemid[0]uint32ID bên thứ ba cho vật phẩm.
qty[0]int16Số lượng vật phẩm.
amount[0]int64Tổng chi phí (theo cent) của vật phẩm được tính phí lúc này. Xem các loại tiền tệ được hỗ trợ để biết định dạng chính xác cho mỗi khoản tiền. Lưu ý: khoản tiền bạn truyền vào nên có định dạng khớp với "currency" (mã tiền tệ) mà bạn truyền vào.
description[0]stringMô tả cho vật phẩm. Độ dài tối đa 128 ký tự.
category[0]stringĐoạn văn bản mô tả hạng mục nhóm của vật phẩm này (không bắt buộc). Giá trị này được dùng để nhóm dữ liệu bán hàng cho backend của báo cáo Steam và không bao giờ hiển thị tới người dùng. Độ dài tối đa 64 ký tự
associated_bundle[0]uint32Bundleid của bộ sản phẩm liên quan, không bắt buộc.
billingtype[0]stringLoại hóa đơn định kỳ, không bắt buộc. Lựa chọn hợp lệ bao gồm: "Steam" hoặc "Game"
  • Steam: Steam sẽ tự động lên hóa đơn lại
  • Game: Đối tác sẽ phải gọi hàm API ProcessAgreement để lên hóa đơn thanh toán
startdate[0]stringThời điểm bắt đầu hóa đơn định kỳ, không bắt buộc (Theo giờ UTC chuẩn RFC 3339 định dạng như sau: 2010-01-01T00:00:00Z).
enddate[0]stringThời điểm kết thúc hóa đơn định kỳ, không bắt buộc (Theo giờ UTC chuẩn RFC 3339 định dạng như sau: 2010-01-01T00:00:00Z).
period[0]stringKhung thời gian lên hóa đơn định kỳ, không bắt buộc. Tham số hợp lệ bao gồm: "Day", "Week", "Month", "Year"
frequency[0]uint32Tần suất lên hóa đơn định kỳ (tính theo số ngày), không bắt buộc. Giá trị hỗ trợ: 1 - 255
recurringamt[0]int64Khoản tiền không bắt buộc sẽ được lên hóa đơn cho các giao dịch định kỳ trong tương lai.
bundlecountuint32Số bộ sản phẩm trong giỏ hàng.
bundleid[0]uint32ID bên thứ ba của bộ sản phẩm. Mục này chia sẻ chung không gian ID với các vật phẩm từ bên thứ ba.
bundle_qty[0]uint32Số lượng bộ sản phẩm này.
bundle_desc[0]stringMô tả bộ sản phẩm. Độ dài tối đa 128 ký tự.
bundle_category[0]stringĐoạn văn bản mô tả hạng mục bộ sản phẩm của loại vật phẩm này (không bắt buộc). Giá trị này được dùng để nhóm dữ liệu bán hàng cho backend của báo cáo Steam và không bao giờ hiển thị tới người dùng. Độ dài tối đa 64 ký tự.

Tạo lệnh mua mới. Gửi thông tin đơn hàng cùng với SteamID để tạo giao dịch trên Steam.

Lệnh này cho phép bạn tạo một giỏ hàng chứa một hoặc nhiều vật phẩm cho người dùng. Chi phí và mô tả các vật phẩm này sẽ hiển thị để người dùng phê duyệt. Interface mua hàng có thể được thiết lập cho phần mềm Steam hoặc trình duyệt web tùy theo việc mua hàng diễn ra trong trò chơi hay từ một trang web.

Định dạng tiền tệ/số tiền

Lưu ý rằng một số loại tiền tệ phải được tính theo gia số nhất định. Ví dụ, gia số của đồng Hryvnia Ukraina (UAH) là 100. Vì thế nếu bạn thử định giá 1050 UAH cho vật phẩm, InitTxn sẽ thất bại với lỗi kết quả là k_EMicroTxnResultInvalidParam. Để biết toàn bộ yêu cầu về định giá, xem Các loại tiền tệ được hỗ trợ

Nếu bạn không muốn định giá cho mỗi giao dịch theo tiền tệ của người dùng, Steam có thể tự động chuyển đổi bất kỳ đơn hàng nào thành loại tiền tệ trong ví người dùng dựa theo tỉ giá hối đoái hiện tại. Nếu truyền currency là "USD" và amount là "999", thì người dùng tại Nga sẽ được tính theo giá rúp với tỉ giá hối đoái hiện tại cho 9,99 USD, tức 614,90 pуб vào thời điểm viết bài này. Tuy nhiên, vui lòng lưu ý rằng hộp thoại xác nhận giao dịch mà khách hàng thấy sẽ hiện giá và loại tiền tệ mà bạn đã chỉ định; việc chuyển đổi tiền tệ sẽ diễn ra khi giao dịch được hoàn tất. Trong ví dụ trước, khách hàng ở Nga sẽ thấy giá 9,99 USD trong hộp thoại xác nhận nhưng sẽ được tính 614,90 pуб khi giao dịch hoàn tất. Chúng tôi đề xuất định giá riêng cho mỗi loại tiền tệ mà bạn nghĩ là khách hàng sẽ dùng để giao dịch thường xuyên.

Lưu ý rằng bạn cần truyền amount theo cùng định dạng với mã currency.

Phản hồi thành công cho lệnh này tức giao dịch đã được tạo. Nếu interface mua hàng là phần mềm Steam, một hộp thoại sẽ tự động hiển thị tới người dùng để yêu cầu xác thực việc mua hàng. Với interface web, chuyển hướng người dùng về URL Steam được trả về trong phản hồi (response). Trong trường hợp hết thời gian chờ (timeout) hoặc lỗi giao tiếp khác, hủy bỏ giao dịch và tạo mới.

Khi phiên người dùng "client" được chỉ định qua [param]usersession[/param], người dùng đó sẽ được yêu cầu duyệt giao dịch từ bên trong lớp phủ trò chơi trên phần mềm. Phiên web sẽ yêu cầu người dùng đăng nhập vào Steam qua trình duyệt, là nơi sẽ hiển thị giao dịch cùng tùy chọn chấp thuận.

Phương thức này có phiên bản cũ mà hiện không còn được chính thức hỗ trợ. Bạn vẫn có thể tiếp tục dùng chúng nhưng chúng tôi khuyến nghị chuyển qua phiên bản mới nhất.
Lịch sử thay đổi:
  • Phiên bản 2 - Thay đổi thành số 64 bit theo định dạng chuỗi.

Phương thức này có phiên bản cũ mà hiện không còn được chính thức hỗ trợ. Bạn vẫn có thể tiếp tục dùng chúng nhưng chúng tôi khuyến nghị chuyển qua phiên bản mới nhất.
Lịch sử thay đổi:
  • Phiên bản 3 - Bắt buộc số lượng là số 16 bit.

LƯU Ý: Lệnh gọi yêu cầu có khóa API từ nhà phát hành để dùng phương thức này. Vì vậy, API này PHẢI được gọi từ máy chủ bảo mật và không bao giờ được sử dụng trực tiếp bởi client!

Phản hồi:
  • response
    • result - Kết quả của thao tác. (OK hoặc Failure)
    • params
      • orderid - ID 64-bit độc nhất cho đơn hàng.
      • transid - ID 64-bit độc nhất cho giao dịch Steam.
      • steamurl - Trả về URL (không bắt buộc) khi đầu vào usersession là web. URL này có thể được dùng để chuyển hướng phiên web của người dùng về Steam để họ có thể duyệt giao dịch.
      • agreements - Danh sách (không bắt buộc) các thỏa thuận khi loại hóa đơn là định kỳ.
    • error - Không bắt buộc, chỉ trả về nếu result là Failure.
      • errorcode - Mã của lỗi hoặc sự kiện. Xem: Phụ lục B: Mã lỗi
      • errordesc - Thông điệp cho lỗi hoặc sự kiện.

Phản hồi ví dụ:
<response> <result>OK</result> <params> <orderid>938473</orderid> <transid>374839</transid> </params> </response> <response> <result>Failure</result> <params> <orderid>938474</orderid> </params> <error> <errorcode>1001</errorcode> <errordesc>Action not allowed</errordesc> </error> </response>

ProcessAgreement

POST https://partner.steam-api.com/ISteamMicroTxn/ProcessAgreement/v1/
TênLoạiBắt buộcMô tả
keystringAPI Web Steamworks - Khóa xác thực nhà phát hành.
orderiduint64ID 64-bit độc nhất cho đơn hàng. Nếu gói đăng ký định kỳ được khởi tạo từ cửa hàng Steam, thì trường này sẽ là 0.
steamiduint64SteamID của khách hàng.
agreementiduint64ID 64-bit độc nhất cho thỏa thuận hóa đơn Steam.
appiduint32AppID của trò chơi cho thỏa thuận này.
amountint32Tổng phí (theo cent).

Giá trị này tương ứng với khoản tiền tính một lần vào lúc đầu, áp dụng ngay cho người dùng.
currencystringMã đơn vị tiền tệ của giá theo chuẩn ISO 4217

Khởi tạo thanh toán định kỳ (gói đăng ký) cho người dùng.

Phản hồi thành công nghĩa là Steam sẽ khởi tạo chu kỳ lên hóa đơn cho người dùng. Điều này không có nghĩa chu kỳ hóa đơn đã hoàn tất thành công. Dùng API GetReport hoặc GetUserAgreementInfo để kiểm tra trạng thái hóa đơn thực sự.

LƯU Ý: Lệnh gọi yêu cầu có khóa API từ nhà phát hành để dùng phương thức này. Vì vậy, API này PHẢI được gọi từ máy chủ bảo mật và không bao giờ được sử dụng trực tiếp bởi client!

Phản hồi:
  • response
    • result - Kết quả của thao tác. (OK hoặc Failure)
    • params
      • orderid - ID 64-bit độc nhất cho đơn hàng.
      • transid - ID 64-bit độc nhất cho giao dịch Steam.
      • agreementid - ID 64-bit độc nhất cho thỏa thuận hóa đơn Steam.
    • error - Không bắt buộc, chỉ trả về nếu result là Failure.
      • errorcode - Mã của lỗi hoặc sự kiện. Xem: Phụ lục B: Mã lỗi
      • errordesc - Thông điệp cho lỗi hoặc sự kiện.

QueryTxn

GET https://partner.steam-api.com/ISteamMicroTxn/QueryTxn/v3/
TênLoạiBắt buộcMô tả
keystringAPI Web Steamworks - Khóa xác thực nhà phát hành.
appiduint32AppID của trò chơi cho giao dịch này.
orderiduint64ID 64-bit độc nhất cho đơn hàng.
transiduint64ID 64-bit độc nhất cho giao dịch Steam.

Truy vấn trạng thái đơn hàng được tạo trước đó bởi InitTxn.

Phương thức này có phiên bản cũ mà hiện không còn được chính thức hỗ trợ. Bạn vẫn có thể tiếp tục dùng chúng nhưng chúng tôi khuyến nghị chuyển qua phiên bản mới nhất.
Lịch sử thay đổi:
  • Phiên bản 2 - Thay đổi thành số 64 bit theo định dạng chuỗi.
  • Phiên bản 3 - Thêm giá trị trạng thái (status) mới cho giao dịch để phản ánh nghi vấn gian lận hoặc gian lận bồi hoàn.

LƯU Ý: Lệnh gọi yêu cầu có khóa API từ nhà phát hành để dùng phương thức này. Vì vậy, API này PHẢI được gọi từ máy chủ bảo mật và không bao giờ được sử dụng trực tiếp bởi client!

Phản hồi:
  • response
    • result - Kết quả của thao tác. (OK hoặc Failure)
    • params
      • orderid - ID 64-bit độc nhất cho đơn hàng.
      • transid - ID 64-bit độc nhất cho giao dịch Steam.
      • steamid - SteamID của người dùng thuộc về đơn hàng/giao dịch đó.
      • status - Trạng thái của đơn hàng. Xem: Phụ lục A: Giá trị trạng thái
      • currency - Mã đơn vị tiền tệ theo chuẩn ISO 4217.
      • time - Thời gian của giao dịch (Giờ UTC chuẩn RFC 3339 định dạng như sau: 2010-01-01T00:00:00Z)
      • country - Mã quốc gia theo chuẩn ISO 3166-1-alpha-2.
      • usstate - Tiểu bang Hoa Kỳ. Trống cho các quốc gia ngoài Hoa Kỳ.

      • items
        • itemid - Số ID trò chơi của vật phẩm.
        • qty - Số lượng vật phẩm này.
        • amount - Tổng phí của người dùng không tính VAT (tính bằng cent). (199 = 1,99)
        • vat - Tổng VAT hoặc thuế (tính bằng cent). (19 = 0,19)
        • itemstatus - Trạng thái vật phẩm trong đơn hàng.
    • error - Không bắt buộc, chỉ trả về nếu result là Failure.
      • errorcode - Mã của lỗi hoặc sự kiện. Xem: Phụ lục B: Mã lỗi
      • errordesc - Thông điệp cho lỗi hoặc sự kiện.

Phản hồi ví dụ:
<response> <result>OK</result> <params> <orderid>938474</orderid> <transid>374839</transid> <steamid>48392063</steamid> <status>Succeeded</status> <currency>GBP</currency> <time>2010-01-01T00:23:45Z</time> <items> <item> <itemid>12345</itemid> <qty>1</qty> <amount>199</amount> <vat>38</vat> <itemstatus>Succeeded</itemstatus> </item> <item> <itemid>12345</itemid> <qty>1</qty> <amount>199</amount> <vat>38</vat> <itemstatus>Succeeded</itemstatus> </item> </items> </params> </response>

RefundTxn

POST https://partner.steam-api.com/ISteamMicroTxn/RefundTxn/v2/
TênLoạiBắt buộcMô tả
keystringAPI Web Steamworks - Khóa xác thực nhà phát hành.
orderiduint64ID 64-bit độc nhất cho đơn hàng cần hoàn tiền.
appiduint32AppID cho trò chơi.

Báo Steam hoàn tiền lại người dùng cho một đơn hàng. Hoàn tiền chỉ có thể thực hiện cho toàn bộ giá trị của đơn hàng ban đầu.

Phương thức này có phiên bản cũ mà hiện không còn được chính thức hỗ trợ. Bạn vẫn có thể tiếp tục dùng chúng nhưng chúng tôi khuyến nghị chuyển qua phiên bản mới nhất.
Lịch sử thay đổi:
  • Phiên bản 2 - Thay đổi thành số 64 bit theo định dạng chuỗi.

LƯU Ý: Lệnh gọi yêu cầu có khóa API từ nhà phát hành để dùng phương thức này. Vì vậy, API này PHẢI được gọi từ máy chủ bảo mật và không bao giờ được sử dụng trực tiếp bởi client!

Phản hồi:
  • response
    • result - Kết quả của thao tác. (OK hoặc Failure)
    • params
      • orderid - ID 64-bit độc nhất cho đơn hàng.
      • transid - ID 64-bit độc nhất cho giao dịch Steam.
    • error - Không bắt buộc, chỉ trả về nếu result là Failure.
      • errorcode - Mã của lỗi hoặc sự kiện. Xem: Phụ lục B: Mã lỗi
      • errordesc - Thông điệp cho lỗi hoặc sự kiện.

Phản hồi ví dụ:
<response> <result>OK</result> <params> <orderid>938474</orderid> <transid>374839</transid> </params> </response>