paypal 订阅如何按计划扣款?

发布于 2022-09-11 23:09:29 字数 2096 浏览 22 评论 0

第一次接触paypal,需要做个订阅功能,摸索了好久,用的php sdk沙箱环境,下面是我订阅的流程

1.创建结算计划并激活,我创建了每天扣10块的计划,详情如下

{

"id": "P-5012574300595771D3DEINEA",
"name": "10元计划",
"type": "INFINITE",
"links": [
    {
        "rel": "self",
        "href": "https://api.sandbox.paypal.com/v1/payments/billing-plans/P-5012574300595771D3DEINEA",
        "method": "GET"
    }
],
"state": "ACTIVE",
"create_time": "2019-10-17T08:14:43.344Z",
"description": "plan 10",
"update_time": "2019-10-17T08:14:44.799Z",
"payment_definitions": [
    {
        "id": "PD-36V35578E9139414V3DEINEA",
        "name": "10元计划",
        "type": "REGULAR",
        "amount": {
            "value": "10",
            "currency": "USD"
        },
        "cycles": "0",
        "frequency": "Day",
        "charge_models": [
            {
                "id": "CHM-1PX10566BB503814C3DEINEA",
                "type": "TAX",
                "amount": {
                    "value": "0",
                    "currency": "USD"
                }
            }
        ],
        "frequency_interval": "1"
    }
],
"merchant_preferences": {
    "setup_fee": {
        "value": "1",
        "currency": "USD"
    },
    "cancel_url": "###/api/paypal/cancle?success=false",
    "return_url": "###/api/paypal/onPay?success=true",
    "auto_bill_amount": "YES",
    "max_fail_attempts": "0",
    "initial_fail_amount_action": "CONTINUE"
}
2.创建用户协议,这里会返回一个url,跳转到url等待用户操作
3.用户同意重定向至计划的return_url,不同意重定向至cancel_url
4.假设用户同意,执行协议

代码就不贴了,按照sdk来WX20191025-220135@2x.png

以上我写的简单的流程,不知道到有么有问题。
我有几点疑问:

1.如何判断建的订阅协议是哪个用户的?
目前搜了下第二步返回的url里有个token,提取该token作为识别方式,用户同意后return_url会接受到该token来识别用户,这种方法对么?

2.webhook是什么?
第一次接触这个词,按我理解webhook就是通知,比如我后台添加了一个付款完成的webhook,每次付款完成paypal都会请求我设置的链接。
比如执行订阅协议第一次扣款已经有return_url处理了,webhook还是会发送一遍通知,我应该根据哪个来更改扣款状态?

3.后期的定时扣款我如何知道?
好像没看到什么方法,只能根据webhook来判断么,到时候应该会返回协议id什么的来识别是哪个用户订阅协议吧?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文