积分充值
PaymentKit 的基于积分的计费系统允许客户通过充值来补充其积分余额。您可以将一种积分货币配置为可充值,从而实现手动单次充值和当余额低于设定阈值时的自动充值。
本指南将引导您完成以编程方式为积分货币设置充值的过程。客户的实际自动充值设置(例如,低余额阈值和充值金额)由客户直接通过 Payment Kit 计费门户管理,以确保无缝的用户体验。
充值工作流程概述#
在深入实施之前,从用户的角度了解整个充值过程会很有帮助。当积分货币被配置为可充值时,会生成一个结账链接。您的应用程序将用户重定向到此链接以完成支付,PaymentKit 会在成功后自动处理积分的发放。

步骤 1:创建充值套餐#
充值套餐是一个标准的 Product 和 Price,它定义了客户可以获得多少积分以及他们需要支付多少费用。关键是在产品的元数据中嵌入一个 credit_config 对象。
首先,创建一个代表积分包的产品。元数据应指定该产品补充哪种积分货币以及购买后授予的积分数量。
Create a Product for the Top-Up Package
const topUpProduct = await payment.products.create({
name: '1000 Credits Pack',
description: 'Top up your account with 1000 credits.',
type: 'service',
metadata: {
// 购买此产品可授予积分
credit_config: {
currency_id: 'pc_credit_xxxxxx', // 您的积分货币 ID
amount: '1000', // 授予的积分数量
},
},
});接下来,为此产品创建一个一次性价格。此价格将决定充值的成本和支付货币(例如,USDT、ETH)。
Create a Price for the Top-Up Package
const topUpPrice = await payment.prices.create({
product_id: topUpProduct.id,
type: 'one_time',
unit_amount: '10', // 例如,10 USDT
currency_id: 'pc_usdt_xxxxxx', // 用于支付积分的货币
});步骤 2:配置积分货币#
一旦您为充值套餐设定了价格,就需要将其链接到您的积分货币。这可以通过使用 updateRechargeConfig 方法来完成,该方法将您的新价格指定为充值的基础套餐。
updateRechargeConfig(id, data)#
此方法将 base_price_id 与积分货币关联,从而启用充值功能。
参数
名称 | 类型 | 描述 |
|---|---|---|
|
| 必需。 要配置的积分货币的 ID(例如, |
|
| 必需。 作为充值套餐的 |
示例
Configure a Credit Currency for Recharge
import payment from '@blocklet/payment-js';
async function configureRecharge() {
try {
const creditCurrencyId = 'pc_credit_xxxxxx'; // 您的积分货币 ID
const topUpPriceId = 'price_yyyyyyyy'; // 步骤 1 中的价格 ID
const updatedCurrency = await payment.paymentCurrencies.updateRechargeConfig(
creditCurrencyId,
{
base_price_id: topUpPriceId,
}
);
console.log('Recharge config updated:', updatedCurrency.recharge_config);
} catch (error) {
console.error('Error configuring recharge:', error.message);
}
}
configureRecharge();示例响应
{
"currency_id": "pc_credit_xxxxxx",
"recharge_config": {
"base_price_id": "price_yyyyyyyy"
},
"message": "充值配置已成功更新"
}步骤 3:检索充值配置#
要发起充值,您的应用程序需要获取 payment_url。使用 getRechargeConfig 方法检索完整的充值配置,包括结账 URL 和基础价格的详细信息。
getRechargeConfig(id)#
获取指定积分货币的充值配置。
参数
名称 | 类型 | 描述 |
|---|---|---|
|
| 必需。 积分货币的 ID。 |
返回
返回一个包含货币信息及其 recharge_config 的对象。配置中的 payment_url 是您用来引导用户到结账页面的链接。
示例
Get the Top-Up URL
import payment from '@blocklet/payment-js';
async function getTopUpLink(creditCurrencyId) {
try {
const config = await payment.paymentCurrencies.getRechargeConfig(creditCurrencyId);
if (config.recharge_config && config.recharge_config.payment_url) {
console.log('将用户重定向到此 URL:', config.recharge_config.payment_url);
return config.recharge_config.payment_url;
} else {
console.log('此货币未配置充值。');
return null;
}
} catch (error) {
console.error('Error fetching recharge config:', error.message);
}
}
getTopUpLink('pc_credit_xxxxxx');示例响应
{
"currency_id": "pc_credit_xxxxxx",
"currency_info": {
"id": "pc_credit_xxxxxx",
"name": "应用积分",
"symbol": "CRD",
"decimal": 2,
"type": "credit"
},
"recharge_config": {
"base_price_id": "price_yyyyyyyy",
"basePrice": {
"id": "price_yyyyyyyy",
"unit_amount": "1000",
"currency_id": "pc_usdt_xxxxxx",
// ...其他价格详情
"product": {
"id": "prod_zzzzzzzz",
"name": "1000 Credits Pack",
// ...其他产品详情
}
},
"payment_url": "https://payment.arcblock.io/checkout/pay/pl_xxxxxxxx"
}
}完成这些步骤后,您的积分货币现已完全启用充值功能。您的应用程序可以获取支付 URL,并为用户提供一种无缝的方式来向其账户添加更多积分。有关更广泛的积分系统的更多详细信息,请参阅 基于积分的计费 指南。