Paypal REST API - 协议是不是取消?

Posted

技术标签:

【中文标题】Paypal REST API - 协议是不是取消?【英文标题】:Paypal REST API - Is the Agreement cancelled?Paypal REST API - 协议是否取消? 【发布时间】:2015-02-01 13:33:15 【问题描述】:

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

流程如下所示,并且正在运行:

我制定了计划(好的) 我激活了一个计划(好的) 我创建了一个协议(好的) 我使用批准链接将用户重定向到 Paypal (ok) 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】:

你有两个选择 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"
        
        

【讨论】:

我没有这些“state”、“agreement_details”、“cycle_remaining”,请查看我的问题已更新。 这个答案正在考虑 Paypal NVP/SOAP API,而问题是关于 Paypal REST API。

以上是关于Paypal REST API - 协议是不是取消?的主要内容,如果未能解决你的问题,请参考以下文章

执行付款后调用的 PayPal REST API 取消 URL

PayPal REST API 更新计费协议

Paypal REST API - 计费协议

PayPal Rest API:如何将卡添加或更新到计费协议 api?

PayPal REST API 创建协议:传入 JSON 请求未映射到 API 请求

在 PayPal REST API 中查找 Braintree 计费协议 ID