当前位置: 首页 > 知识库问答 >
问题:

Laravel中的REST API订阅和事务(支付)endpoint

梁鸣
2023-03-14

我正在开发一个web应用程序,我遵守REST API标准。我正在搜索REST API的最佳实践订阅和付款。

当新用户订阅“PRO计划”时,用户需要支付计划费用,这是一个交易。

对于升级、取消或更新计划,是否应设置put:users/{id}/subscriptions/{id}subscriptioncontroller@update或其他endpoint?

共有1个答案

鄂曦之
2023-03-14

通常,您不会在路由中传递用户id,除非控制器中有某种身份验证。管理正在更新用户。而是使用控制器中的auth::user()对象。

关于您的问题,有许多选项,这完全取决于您,但一种可能的方法是使用资源路由\Controller。

route::resource('user/subscription','user\subscriptioncontroller');

则控制器看起来如下所示:

<?php

namespace App\Http\Controllers\User;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class SubscriptionController extends Controller
{

    public function index()
    {
        // get user
        $user = Auth::user();

        // list all user subscriptions
    }

    public function store(Request $request)
    {

        // get user
        $user = Auth::user();

        if(empty($user)) {
            // create user
        }

        // create and process subscription for the user 
        // possibly using a plan id in the $request
    }

    public function show($id)
    {
        // get user
        $user = Auth::user();

        // return user subscription details for $id
    }

    public function update(Request $request, $id)
    {
        // get user
        $user = Auth::user();

        // update or change user subscription
        // possibly using a plan id in the $request

    }


    public function destroy($id)
    {
        // get user
        $user = Auth::user();

        // cancel user subscription with $id
    }
}

您的路由如下所示:

获取用户/订阅列出所有用户订阅索引()

POST用户/订阅创建用户订阅存储(Request$Request)

获取用户/subscription/{subscription_id}显示用户订阅显示($ID)

put/patchuser/subscription/{subscription_id}更新用户订阅update($id)

删除用户/订阅/{subscription_id}取消用户订阅销毁($ID)

 类似资料:
  • Node.js应用程序可以使用composer-client.BusinessNetworkConnection.onAPI调用从业务网络订阅事件。事件在业务网络模型文件中定义,并由交易处理函数文件中的指定交易处理。有关发布事件的更多信息,请参阅发布事件。 在你开始之前 在应用程序可以订阅事件之前,你必须定义一些事件和发送它们的交易。还必须部署业务网络,并且必须具有可连接到该业务网络的连接配置文件

  • 我使用贝宝rest api支付资源来更新付款金额和项目信息;我只是想改变项目的价格和税收;和运费金额;但返回MALFORMED_REQUEST;让我喝醉... request_data是: 并返回:{"name":"MALFORMED_REQUEST","消息":"MALFORMED_REQUEST","information_link":"https://developer.paypal.com

  • 我需要对Symfony 4中的a用户进行功能测试,但我很难找到方法。订阅服务器具有以下结构 订阅者的流正在接收内部事件,并通过命令总线通过 rabbit 将消息发送到另一个项目。 如何测试调度事件是否执行了进程中的行? 有人有关于在Symfony 4中测试事件和订阅者的最佳实践的文档吗?

  • laravel框架封装微信支付和支付宝支付

  • 通过 BaaS SDK 提供的 wx.BaaS.order(OBJECT) 方法, 可查询到交易的详细信息。典型的使用场景为: 调用 wx.BaaS.pay(object) 发起支付, 在成功回调中获取到 transactionID, 在要路由到新的页面时带上此 ID, 在新页面的 onLoad 方法中获取到该 ID, 从而使用此 ID 获取交易的详细信息。 OBJECT 参数说明 参数 类型 必

  • 支付宝小程序my.requestSubscribeMessage,我已经调起订阅,点击“好的”,可接口返回的是“用户未订单,消息发送失败”,这可能是哪里的问题?