Aceite pagamentos com Pay.sh
Pode aceitar pagamentos em pedidos de API através do Pay.sh configurando um servidor Pay. Instale o Pay com:
brew install pay
ou
npm install -g @solana/pay
Verifique a instalação com:
pay --version
O toolchain irá configurar o seu endereço automaticamente. Execute o seguinte para configurar e recarregar a sua carteira:
pay setup
Configurar o servidor de demonstração
Pode começar a aceitar pagamentos iniciando o seu servidor. Pode ver um servidor de demonstração em funcionamento com:
pay server demo
Isto faz duas coisas. Inicia um servidor Pay em tempo real que pode ser
consultado via pedido HTTP, e gera um ficheiro pay-demo.yml no seu diretório
atual.
Todas as rotas da API são configuradas através do ficheiro de configuração YAML
endpoints. Para aceitar pagamentos, tem de adicionar um atributo metering:.
A rota /api/v1/reports/usage foi configurada como exemplo:
endpoints:- method: GETpath: "api/v1/reports/usage"resource: "reports"description: "Usage report — flat fee, no splits."metering:dimensions:- direction: usageunit: requestsscale: 1tiers:- price_usd: 0.01
Pode testar se os pagamentos funcionam executando o seguinte comando como cliente noutro terminal:
pay --sandbox curl http://127.0.0.1:1402/api/v1/reports/usage
Pode saber mais sobre como definir preços na documentação Pay.sh Building with Pay > Pricing
Saiba mais sobre como configurar o Pay.sh em produção na documentação de Configuração do Pay.sh.
Crie subscrições com Pay.sh
Pode configurar subscrições através do Pay.sh instalando um cliente Pay no seu dispositivo ou configurando um servidor Pay. Instale o Pay com:
brew install pay
ou
npm install -g @solana/pay
Verifique a instalação com:
pay --version
A cadeia de ferramentas irá configurar o seu endereço automaticamente. Execute o seguinte para configurar e recarregar a sua carteira:
pay setup
Subscrições como cliente
Os utilizadores subscrevem endpoints de API protegidos por subscrição invocando
o pay normalmente. Cabe à API enviar os detalhes da subscrição na resposta
402 Status inicial. O Pay gere a subscrição automaticamente, incluindo a
invocação de instruções no Programa de Subscrições SPL da Solana.
Os utilizadores podem gerir as suas subscrições utilizando os seguintes comandos:
pay subscriptions # default: list + show available subcommandspay subscriptions list # same, scriptablepay subscriptions list --network mainnetpay subscriptions list --json
Pode saber mais sobre como gerir as suas subscrições como utilizador na documentação Pay.sh > Utilizar o Pay > Gerir Subscrições.
Gerir subscrições como fornecedor (demonstração)
Os servidores Pay permitem configurar subscritores e as suas subscrições para cada endpoint. O seguinte é um exemplo de endpoint que utiliza o pay e que pode experimentar no seu projeto:
# monthly.ymlname: Subscriptions Examplesubdomain: subscriptions-exampletitle: "Subscription Example"description: "Demo Subscriptions"category: ai_mlversion: v1routing:type: respondoperator:currencies:usd: ["USDC", "USDT", "CASH"]network: "localnet"fee_payer: truechallenge_binding_secret: d858d9104afd728f58a1f73d806dd75d8f32ebd37c9707145816b490e8631d41# insert your own challenge_binding_secret here. use `openssl rand -hex 32`endpoints:- method: GETpath: "api/v1/pro/feed"resource: "pro-feed"description: "Pro feed — monthly subscription, 30-day billing period."subscription:period: "30d"price_usd: 9.99currency: USDCplan_id_numeric: 1
O Pay gere as subscrições utilizando o atributo subscription: na sua
especificação YAML endpoints. Isto é diferente do atributo metering: para
endpoints de pagamento por utilização.
Ao iniciar o servidor no exemplo acima, é criado um endpoint chamado
api/v1/pro/feed que exige que o utilizador efetue pagamentos recorrentes de
9,99 USDC a cada 30 dias.
Pode experimentá-lo executando o seguinte comando:
pay server start monthly.yml
A execução deste comando irá solicitar que crie um plano. Isto cria um plano e atualiza o ficheiro yml. Se pretender utilizá-lo novamente, memorize o endereço do plano e utilize-o na sua configuração enquanto efetua alterações.
Você pode testar se as assinaturas funcionam executando os seguintes comandos como cliente em outro terminal:
# First call — activates the subscription, $9.99 USDC charge settles.pay --sandbox curl http://127.0.0.1:1402/api/v1/pro/feed# Same call within 30 days — no payment prompt, just the response.pay --sandbox curl http://127.0.0.1:1402/api/v1/pro/feed
Você deverá ver um status OK como resposta, assim:
{ "status": "ok" }
Você pode saber mais sobre como gerenciar assinaturas em um servidor Pay através da documentação Pay.sh > Construindo com Pay > Assinaturas > Especificação YAML.
Is this page helpful?