Paypal REST API - 协议是否已取消?

时间:2014-12-03 20:29:25

标签: paypal recurring-billing

我使用Paypal REST api(java)执行定期订阅。

流程看起来像这样,它正在运行:

  • 我创建了一个计划(确定)
  • 我激活了计划(确定)
  • 我创建了一个协议(ok)
  • 我使用批准链接将用户重定向到Paypal(确定)
  • Paypal将用户重定向回我的网站(确定)
  • 我可以执行协议(ok)

我发现作为买家,我可以登录paypal并随时手动取消协议。

问题:

作为卖家,我可以看到买家x在'个人资料>中取消了他的同意定期付款仪表板',但如何使用代码查询此信息?假设我有协议ID。协议对象内没有此类信息。

请指出正确的方向。 谢谢

更新:

我的协议对象如下所示:

{
  "id": "I-HLK83FVHB5X2",
  "description": "item name goes here",
  "start_date": "2014-12-04T05:00:00Z",
  "plan": {
    "payment_definitions": [
      {
        "type": "TRIAL",
        "frequency_interval": "3",
        "frequency": "Month",
        "cycles": "1",
        "amount": {
          "currency": "CAD",
          "value": "900.00"
        },
        "charge_models": [
          {
            "type": "TAX",
            "amount": {
              "currency": "CAD",
              "value": "11.11"
            }
          },
          {
            "type": "SHIPPING",
            "amount": {
              "currency": "CAD",
              "value": "0.00"
            }
          }
        ]
      },
      {
        "type": "REGULAR",
        "frequency_interval": "1",
        "frequency": "Month",
        "cycles": "0",
        "amount": {
          "currency": "CAD",
          "value": "300.00"
        },
        "charge_models": [
          {
            "type": "TAX",
            "amount": {
              "currency": "CAD",
              "value": "22.22"
            }
          },
          {
            "type": "SHIPPING",
            "amount": {
              "currency": "CAD",
              "value": "0.00"
            }
          }
        ]
      }
    ],
    "merchant_preferences": {
      "setup_fee": {
        "currency": "CAD",
        "value": "0.00"
      },
      "max_fail_attempts": "0",
      "auto_bill_amount": "YES"
    }
  },
  "links": [
    {
      "href": "https://api.sandbox.paypal.com/v1/payments/billing-agreements/I-HLK83FVHB5X2/suspend",
      "rel": "suspend",
      "method": "POST"
    },
    {
      "href": "https://api.sandbox.paypal.com/v1/payments/billing-agreements/I-HLK83FVHB5X2/re-activate",
      "rel": "re_activate",
      "method": "POST"
    },
    {
      "href": "https://api.sandbox.paypal.com/v1/payments/billing-agreements/I-HLK83FVHB5X2/cancel",
      "rel": "cancel",
      "method": "POST"
    },
    {
      "href": "https://api.sandbox.paypal.com/v1/payments/billing-agreements/I-HLK83FVHB5X2/bill-balance",
      "rel": "self",
      "method": "POST"
    },
    {
      "href": "https://api.sandbox.paypal.com/v1/payments/billing-agreements/I-HLK83FVHB5X2/set-balance",
      "rel": "self",
      "method": "POST"
    }
  ]
}

1 个答案:

答案 0 :(得分:1)

您有两种选择 1:设置接收Paypal IPN(即时付款通知),以便他们在协议取消时通知您。

2:您始终可以检索https://developer.paypal.com/docs/api/#retrieve-an-agreement中提到的协议详细信息 它会给你这样的反应

        {
        "id": "I-0LN988D3JACS",
        "state": "Pending",
        "description": "New Description",
        "plan": {
        "payment_definitions": [
          {
            "type": "REGULAR",
            "frequency": "Month",
            "amount": {
              "currency": "USD",
              "value": "100.00"
            },
            "charge_models": [
              {
                "type": "TAX",
                "amount": {
                  "currency": "USD",
                  "value": "12.00"
                }
              },
              {
                "type": "SHIPPING",
                "amount": {
                  "currency": "USD",
                  "value": "10.00"
                }
              }
            ],
            "cycles": "12",
            "frequency_interval": "2"
          }
        ],
        "merchant_preferences": {
          "setup_fee": {
            "currency": "USD",
            "value": "0.00"
          },
          "max_fail_attempts": "0",
          "auto_bill_amount": "YES"
        }
        },
        "links": [
        {
          "href": "https://api.sandbox.paypal.com/v1/payments/billing-agreements/I-0LN988D3JACS/suspend",
          "rel": "suspend",
          "method": "POST"
        },
        {
          "href": "https://api.sandbox.paypal.com/v1/payments/billing-agreements/I-0LN988D3JACS/re-activate",
          "rel": "re_activate",
          "method": "POST"
        },
        {
          "href": "https://api.sandbox.paypal.com/v1/payments/billing-agreements/I-0LN988D3JACS/cancel",
          "rel": "cancel",
          "method": "POST"
        },
        {
          "href": "https://api.sandbox.paypal.com/v1/payments/billing-agreements/I-0LN988D3JACS/bill-balance",
          "rel": "self",
          "method": "POST"
        },
        {
          "href": "https://api.sandbox.paypal.com/v1/payments/billing-agreements/I-0LN988D3JACS/set-balance",
          "rel": "self",
          "method": "POST"
        }
        ],
        "start_date": "2015-02-19T08:00:00Z",
        "agreement_details": {
        "outstanding_balance": {
          "currency": "USD",
          "value": "0.00"
        },
        "cycles_remaining": "12",
        "cycles_completed": "0",
        "final_payment_date": "2016-12-19T10:00:00Z",
        "failed_payment_count": "0"
        }
        }