我正在开发一个web应用程序,我遵守REST API标准。我正在搜索REST API的最佳实践订阅和付款。
当新用户订阅“PRO计划”时,用户需要支付计划费用,这是一个交易。
对于升级、取消或更新计划,是否应设置put:users/{id}/subscriptions/{id}
和subscriptioncontroller@update
或其他endpoint?
通常,您不会在路由中传递用户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/patch
user/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框架封装微信支付和支付宝支付
支付宝小程序my.requestSubscribeMessage,我已经调起订阅,点击“好的”,可接口返回的是“用户未订单,消息发送失败”,这可能是哪里的问题?
通过 BaaS SDK 提供的 wx.BaaS.order(OBJECT) 方法, 可查询到交易的详细信息。典型的使用场景为: 调用 wx.BaaS.pay(object) 发起支付, 在成功回调中获取到 transactionID, 在要路由到新的页面时带上此 ID, 在新页面的 onLoad 方法中获取到该 ID, 从而使用此 ID 获取交易的详细信息。 OBJECT 参数说明 参数 类型 必