如何为Razor Pages的Post处理器自定义create-checkout-session名称
在Razor Pages中实现Stripe的create-checkout-session接口
Razor Pages中可以通过两种方式实现Stripe要求的create-checkout-session接口:
方式一:作为页面的自定义POST动作
如果你的支付逻辑属于某个现有Razor Page(比如Payment.cshtml),可以使用[ActionName]特性将处理器方法对外暴露为指定名称:
[ActionName("create-checkout-session")] public IActionResult OnPostCreateCheckoutSession() { // 编写Stripe创建支付会话的逻辑 // 示例:设置Stripe会话参数并返回重定向URL var options = new SessionCreateOptions { // 配置会话信息,比如商品、金额、成功/取消回调地址等 }; var service = new SessionService(); Session session = service.Create(options); return Redirect(session.Url); }
此时接口的完整路径为/Payment/create-checkout-session(Payment是你的页面名称)。
方式二:独立根路径接口
如果希望接口直接映射到根路径/create-checkout-session,可以在单独的Razor Page(比如CreateCheckoutSession.cshtml)的顶部设置@page路由:
@page "create-checkout-session" @model YourProject.Pages.CreateCheckoutSessionModel
然后在对应的后台代码中使用常规的OnPost方法处理请求:
public IActionResult OnPost() { // 编写Stripe创建支付会话的逻辑 var options = new SessionCreateOptions { // 配置会话信息,比如商品、金额、成功/取消回调地址等 }; var service = new SessionService(); Session session = service.Create(options); return Redirect(session.Url); }
这样POST请求直接发送到/create-checkout-session即可触发该方法。
内容的提问来源于stack exchange,提问作者Jonathan Wood
相关产品推荐
相关产品推荐

