Tích hợp thanh toán tùy chỉnh¶
Chủ đề này sẽ giải thích cách thiết lập tích hợp thanh toán trả sau với bất kỳ hệ thống thanh toán nào ngoại trừ WHMCS (ví dụ: Blesta, Hostbill, Ubersmith hoặc các hệ thống khác).
Bước 1 - Xác định tỷ lệ chuyển đổi giữa token và tiền tệ¶
SolusVM 2 cung cấp tính năng thanh toán theo giờ và hàng tháng. Quyết định giá một token là bao nhiêu tiền thật (bằng loại tiền tệ mong muốn).
Note
Mã thông báo chỉ có thể là số nguyên.
Chúng tôi khuyên bạn nên chuẩn bị một bảng chuyển đổi chi tiết, ví dụ:
Mã thông báo | Giá mã thông báo bằng USD | Giá mã thông báo bằng EUR |
1 | 0,00100 USD | €0,00091 |
10 | $0,01000 | €0,00910 |
100 | $0,10000 | €0,09100 |
1.000 | $1,00000 | €0,91000 |
10.000 | $10,00000 | €9,10000 |
Bước 2 – Tính giá theo giờ và theo tháng của bạn¶
Điều kiện tiên quyết: Giả sử rằng bạn đã thêm kế hoạch. Nếu không, đã đến lúc phải làm như vậy.
Bây giờ bạn cần phải quyết định số tiền sẽ tính phí cho các kế hoạch của mình. Mỗi gói trong SolusVM 2 có thể có giá theo giờ và hàng tháng bằng mã thông báo:
- “Mã thông báo mỗi giờ” là giá tính bằng mã thông báo để sử dụng tài nguyên trong mỗi giờ.
Ví dụ: nếu bạn khởi động máy chủ và kết thúc nó sau năm phút, người dùng máy chủ phải trả giá trong một giờ.
- “Mã thông báo mỗi tháng” là giá tính theo mã thông báo để sử dụng tài nguyên trong khoảng cả tháng.
Các tháng có độ dài khác nhau nhưng giá hàng tháng là cố định. Để đạt được điều này, bạn đặt giá hàng tháng bằng cách tính giới hạn hàng tháng. Hãy xem một ví dụ.
Chúng tôi có mức giá hàng giờ là 7 mã thông báo (tương đương 0,007 USD/giờ). Toàn bộ tháng 31 ngày sẽ có giá như sau:
7 mã thông báo × 24 giờ × 31 ngày = 7 × 744 giờ = 5208 mã thông báo (tương đương 5,21 USD)
Mọi người thích số tròn. Chúng tôi có thể khấu trừ 208 mã thông báo ($0,21) và nhận được giá 5000 mã thông báo ($5,00). Đây sẽ là giới hạn hàng tháng của chúng tôi và đồng thời là giá hàng tháng. SolusVM 2 sẽ chọn mức giá (theo giờ hoặc theo tháng) để tính phí tùy theo giá hàng tháng.
Ví dụ: một người dùng đã chạy máy chủ trong 700 giờ, tiêu tốn 4900 mã thông báo. Giới hạn hàng tháng chưa đến 5000 token nên người dùng sẽ bị tính phí hàng giờ. Tháng tiếp theo, người dùng đã chạy máy chủ trong 730 giờ, tiêu tốn 5110 token. Đó là hơn 5000 mã thông báo giới hạn hàng tháng nên người dùng sẽ bị tính phí hàng tháng ($5,00).
Chúng tôi khuyên bạn nên tính toán giá hàng giờ và hàng tháng trước khi thực sự đặt chúng trong SolusVM 2. Dưới đây bạn có thể xem ví dụ về cách chúng tôi tính giá bằng cách sử dụng bảng chuyển đổi được hiển thị ở bước 1.
Các kế hoạch | Token mỗi giờ | Mã thông báo tổng hợp mỗi tháng (mã thông báo mỗi giờ × 24 giờ × 31 ngày) | Tổng giá mỗi tháng bằng USD | Token mỗi tháng (theo giá cố định) | Giá mỗi tháng bằng USD nếu áp dụng “mã thông báo mỗi tháng” |
RAM 1 lõi, 1 GiB | 7 | 5.208 | 5,21 USD | 5.000 | $5,00 |
RAM 1 lõi, 2 GiB | 14 | 10,416 | $10,42 | 10.000 | $10,00 |
2 lõi, RAM 2 GiB | 21 | 15.624 | $15,62 | 15.000 | $15,00 |
2 lõi, RAM 4 GiB | 28 | 20,832 | $20,83 | 20.000 | $20,00 |
Note
Trong ví dụ trên, chúng tôi đã làm tròn giá hàng tháng (hai cột cuối cùng). Nó thuận tiện hơn cho khách hàng và có thể coi như một khoản giảm giá hàng tháng. Bạn có làm như vậy hay không là tùy bạn.
Bước 3 – Đặt giá bằng token cho các gói trong SolusVM 2¶
Trong bước trước, bạn đã tạo bảng giá chi tiết. Bây giờ bạn cần đặt giá theo giờ và hàng tháng (cột thứ hai và thứ năm trong bảng giá tương ứng) cho các gói trong SolusVM 2:
-
Đăng nhập vào SolusVM 2.
-
Đi tới Tài nguyên điện toán > Gói.
-
Bạn có thể chỉ định các giá trị mã thông báo trong khi chỉnh sửa gói hiện có hoặc tạo gói mới:
-
Để chỉnh sửa gói hiện có, hãy nhấp vào biểu tượng
trên hàng của gói.
-
Để tạo gói mới, hãy nhấp vào Thêm gói.
-
Chỉ định giá theo giờ và hàng tháng bằng mã thông báo tương ứng trong “Mã thông báo mỗi giờ” và “Mã thông báo mỗi tháng”.
-
Nếu bạn đang tạo một kế hoạch, hãy cũng điền vào các trường bắt buộc.
!!! note
Nếu bạn đặt “Mã thông báo mỗi tháng” thành “0”, thì chỉ có thể thanh toán theo giờ.
Nếu bạn đặt “Mã thông báo mỗi giờ” thành “0” nhưng bạn chỉ định giá trị cho “Mã thông báo (mỗi tháng)”,
thì tính năng thanh toán theo giờ sẽ không khả dụng.
Khách hàng sẽ luôn bị tính mức giá cố định hàng tháng được xác định bởi “Mã thông báo mỗi tháng”.
- Nhấp vào để Lưu.
Bước 4 - Vô hiệu hóa đăng ký trong vùng người dùng SolusVM 2¶
Hệ thống thanh toán được định cấu hình bằng SolusVM 2 phải là cơ sở dữ liệu chính cho người dùng SolusVM 2. Chỉ cơ sở dữ liệu hệ thống thanh toán mới phải kiểm soát người dùng nào có hoặc không có quyền tạo máy chủ.
Tuy nhiên, SolusVM 2 có một phần giao diện được gọi là “khu vực người dùng” nơi người dùng tạo máy chủ. Có thể bỏ qua cơ sở dữ liệu hệ thống thanh toán bằng cách tạo người dùng trực tiếp trong khu vực người dùng. Để ngăn chặn điều này, bạn cần tắt đăng ký trong khu vực người dùng:
- Đăng nhập vào SolusVM 2.
- Đi tới Cài đặt > Khu vực người dùng và bỏ chọn hộp kiểm “Bật đăng ký”.
- Nhấp vào để Lưu.
Bạn đã vô hiệu hóa đăng ký trong khu vực người dùng. Cơ sở dữ liệu hệ thống thanh toán hiện là cơ sở dữ liệu chính cho người dùng SolusVM 2.
Bước 5 – Tạo nhóm giới hạn¶
Nhóm giới hạn giúp bạn đặt giới hạn về số lượng máy chủ mà một người dùng cụ thể có thể tạo và có thể duy trì ở trạng thái hoạt động. Chúng tôi khuyên bạn nên tạo nhóm giới hạn và chọn nhóm giới hạn mặc định cho người dùng mới. Tìm hiểu cách thực hiện.
Bước 6 - Định cấu hình điểm cuối API ở phía hệ thống thanh toán¶
Bây giờ bạn cần định cấu hình điểm cuối GetTokenPricing
ở phía hệ thống thanh toán.
Bạn có thể dễ dàng định cấu hình nó bằng ngôn ngữ mã hóa mà bạn chọn.
Bạn cần điểm cuối này để SolusVM 2 có thể hiển thị giá cho khách hàng.
Note
Hiện tại, bạn chỉ cần định cấu hình điểm cuối GetTokenPricing
.
Nhưng chúng tôi có thể mở rộng danh sách điểm cuối API trong tương lai.
Điểm cuối GetTokenPricing
có các tham số yêu cầu và phản hồi sau:
Thông số yêu cầu¶
Tham số | Kiểu | Sự miêu tả | Yêu cầu |
`mã thông báo` | sợi dây | Mã thông báo ủy quyền | KHÔNG |
`userid` | int | ID người dùng trong hệ thống thanh toán | Đúng |
Thông số phản hồi¶
Tham số | Kiểu | Sự miêu tả |
`base_token_unit_cost` | trôi nổi | Giá của một mã thông báo trước bất kỳ khoản giảm giá và/hoặc thuế nào. |
`user_token_unit_cost` | trôi nổi | Giá đầy đủ và cuối cùng của một mã thông báo bao gồm chiết khấu và thuế. |
`currency` | mảng | Mảng bao gồm các tham số định dạng tiền tệ: mã ISO, tiền tố, hậu tố, số thập phân, hàng nghìn và dấu phân cách số thập phân. Ví dụ: ``` "currency": { "code": "GBP", "display_prefix": "\u00a3", "display_suffix": " GBP", "thousands_separator ": ",", "dấu phân cách thập phân": ".", "số thập phân_mỗi_tháng": 2, "số thập phân_mỗi_giờ": 4 } ``` |
`discounts` | mảng |
Mảng giảm giá được áp dụng bao gồm tên, mô tả và số nhân.
Ví dụ:
|
`taxes` | mảng | Mảng thông tin thuế bao gồm loại thuế (thuế gộp hoặc không) và thuế suất (nhãn và thuế suất). Ví dụ: ``` "thuế": { "hợp chất": true, "rates": [ { "label": "Thuế thành phố", "rate": 6 }, { " label": "Thuế tiểu bang", "rate": 2 } ] } ``` |
Khi SolusVM 2 cần hiển thị giá cho khách hàng,
SolusVM 2 sẽ gửi yêu cầu API có ID người dùng
đến điểm cuối GetTokenPricing
:
curl -X POST "https://www.mybilling.com/solusio/api/"
\ -H "Accept: application/json"
\ -H "Content-Type: application/x-www-form-urlencoded"
\ -d "token=xxxxxxx&action=GetTokenPricing&userid=1"
Sau đó, hệ thống thanh toán sẽ gửi phản hồi API kèm theo thông tin liên quan đến giá, ví dụ:
{
"base_token_unit_cost": 1.34,
"user_token_unit_cost": 1.0812,
"currency": {
"code": "GBP",
"display_prefix": "\u00a3",
"display_suffix": " GBP",
"thousands_separator": ",",
"decimals_separator": ".",
"decimals_per_month": 2,
"decimals_per_hour": 4
},
"discounts": [
{
"name": "Special Client Group Discount",
"description": "5% Recurring Discount",
"multipler": 0.95
}
],
"taxes": {
"compound": true,
"rates": [
{
"label": "City Tax",
"rate": 6
},
{
"label": "State Tax",
"rate": 2
}
]
}
}
user_token_unit_cost
trong phản hồi là hệ số phản ánh
tất cả các loại thuế, chiết khấu và ưu đãi đặc biệt của một người dùng cụ thể.
Sau đó, SolusVM 2 nhân user_token_unit_cost
với giá của gói tính bằng mã thông báo,
lấy giá thực bằng loại tiền tệ (trong ví dụ của chúng tôi là bảng Anh),
và hiển thị giá này cho người dùng.
Bước 7 - Kích hoạt tích hợp thanh toán trong SolusVM 2¶
Bạn đã định cấu hình điểm cuối API ở phía hệ thống thanh toán. Bây giờ chúng ta sẽ sử dụng nó.
- Đăng nhập vào SolusVM 2.
- Đi tới Cài đặt > Tích hợp thanh toán.
- Trong “Loại”, chọn “Thanh toán tùy chỉnh”.
- Chỉ định URL của điểm cuối
GetTokenPricing
ở phía hệ thống thanh toán, ví dụhttps://www.mybilling.com/solusio/api/
- (Tùy chọn) Hệ thống thanh toán có thể yêu cầu mã thông báo để ủy quyền. Nếu vậy, hãy dán mã thông báo ủy quyền hệ thống thanh toán của bạn.
- Nhấp vào để Lưu.
Bước 8 – Tích hợp quản lý người dùng với SolusVM 2 ở phía hệ thống thanh toán¶
Hệ thống thanh toán phải quản lý người dùng trong SolusVM 2 khi cần thiết.
Để đạt được điều này, bạn cần thiết lập tích hợp quản lý người dùng với SolusVM 2 ở phía hệ thống thanh toán. Khi bạn làm như vậy, hệ thống thanh toán sẽ có thể tạo, chỉnh sửa, xóa, khóa và tạm dừng người dùng trong SolusVM 2 bằng cách sử dụng điểm cuối API SolusVM 2.
Note
Khi tích hợp quản lý người dùng,
đảm bảo rằng hệ thống thanh toán gửi billing_user_id
tới SolusVM 2.
SolusVM 2 cần có billing_user_id
để khớp với người dùng được lưu trong hệ thống thanh toán
với những thứ được lưu trữ trong SolusVM 2.
Bước 9 – Cấu hình đăng nhập tự động vào SolusVM 2¶
Hệ thống thanh toán chuyển hướng người dùng đến khu vực người dùng SolusVM 2. Để giúp người dùng vào SolusVM 2 mà không cần phải đăng nhập lần thứ hai, hãy cấu hình đăng nhập tự động . Để làm như vậy, trước tiên bạn cần tạo mã thông báo truy cập cho người dùng. Sau đó, sử dụng liên kết đăng nhập có chứa mã thông báo để ủy quyền cho người dùng trong tập lệnh tích hợp:
GET https://www.solus-user-ui.com/auth/by_token/{access_token}
Bước 10 - Định cấu hình tạo hóa đơn ở phía hệ thống thanh toán¶
Bước cuối cùng, bạn cần định cấu hình hệ thống thanh toán để gửi yêu cầu API đến /usage SolusVM 2 Điểm cuối API.
Khi kết thúc chu kỳ thanh toán, hệ thống thanh toán sẽ tạo và gửi hóa đơn cho người dùng.
Để tính phí, hệ thống thanh toán phải nhận số liệu thống kê tài nguyên đã tiêu thụ
bằng cách gửi yêu cầu API đến điểm cuối /usage
.
Chúc mừng! Bạn đã hoàn tất việc tích hợp hệ thống thanh toán của mình với SolusVM 2. Chúng tôi hy vọng tiền đã đến.