Laravel PayPal API与订阅计划集成问题:自学新手入门咨询
PayPal 订阅功能 Laravel 集成问题解答
1. 已登录用户订阅支付跳转与结果回传实现
你已经提前在沙箱后台创建好订阅计划的前提下,按以下步骤操作即可:
- 先在PayPal开发者后台获取对应沙箱应用的Client ID和Secret,配置到你Laravel项目的
.env文件里 - 前端引入PayPal官方JS SDK,渲染订阅按钮时传入你创建好的计划ID,同时配置支付完成后的回跳地址(return_url)和取消支付的返回地址
- 用户点击按钮后会自动跳转到PayPal页面完成授权支付,支付完成后会自动跳转回你配置的return_url,地址会附带生成的订阅ID参数
- 额外需要配置PayPal Webhook:在PayPal开发者后台给应用添加Webhook,监听订阅创建、订阅激活、支付完成这类订阅相关事件,所有订阅状态变更都会主动推送到你配置的Webhook接口,你在接口里校验PayPal请求签名后,更新对应用户的订阅状态即可,避免用户跳转到回传地址前关页面导致状态不同步
2. 用户订阅状态校验方案
- 首先你需要在项目的用户表(或者单独的订阅表)中存储用户ID、对应PayPal订阅ID、订阅计划ID、订阅状态、到期时间这些字段,所有状态更新通过Webhook同步
- 常规场景下用户登录后直接查你本地库的订阅状态即可,不需要每次调用PayPal接口
- 特殊场景需要实时校验的话,调用PayPal订阅详情查询API,传入用户对应的订阅ID,校验返回的
status字段是否为ACTIVE,同时返回的plan_id是否和你需要校验的计划ID匹配即可
3. 2021年可用的集成教程说明
直接参考PayPal官方的订阅功能V2版API文档即可,筛选2020年及以后更新的内容,所有规则都适配2021年之后的接口,文档已经按前端集成、后端校验、Webhook配置的顺序做了分步指引,不要参考V1版的账单协议相关内容即可,这部分已经完全废弃。
4. 2021年适配PayPal API的Laravel扩展包推荐
srmklive/paypal:Laravel生态最通用的PayPal扩展,3.0+版本完全支持PayPal V2 API,已经封装好了订阅相关的所有请求方法,通过Composer即可直接安装,适配Laravel 6.x及以上所有版本- 官方PHP SDK:PayPal官方提供的
paypal/rest-api-sdk-php,可以直接安装后自行封装到Laravel的服务容器中,灵活性更高,适配所有V2接口规则
内容的提问来源于stack exchange,提问作者Pixel Psy
相关产品推荐
相关产品推荐

