简体   繁体   中英

I called Paypal subscription API which returns success message but don't see any active subscription in the Paypal dashboard

I am trying to create Paypal subscription through its Rest API using live client and secret. The API returns success message. The GET subscription API returns the active subscription created, however I don't see any active subscription in my Paypal dashbaord. Paypal support says the subscription ID does not exist. Has anyone encountered such issue with Paypal API? I have attached API JSON response and snapshot herewith.

{
"plans": [
    {
        "id": "P-4UJ45561KJ704964LMJ2QDZQ",
        "product_id": "PROD-4EX86934CR7151923",
        "name": "Certified business economist IHK | VO 2022",
        "status": "ACTIVE",
        "description": "The business economist IHK is divided into the following five subjects with the new examination regulations 2022",
        "usage_type": "LICENSED",
        "create_time": "2022-05-06T11:09:26Z",
        "links": [
            {
                "href": "https://api.paypal.com/v1/billing/plans/P-4UJ45561KJ704964LMJ2QDZQ",
                "rel": "self",
                "method": "GET",
                "encType": "application/json"
            }
        ]
    }
],
"total_items": 1,
"total_pages": 1,
"links": [
    {
        "href": "https://api.paypal.com/v1/billing/plans?product_id=PROD-4EX86934CR7151923&page_size=2&page=1",
        "rel": "self",
        "method": "GET",
        "encType": "application/json"
    }
]

}

获取有效订阅

First of all, everything in your question shows creating a plan. A plan is not a subscription, it is the cycle details to be able to create a subscription.

Secondly, creating a subscription still will not do anything unless a payer signs in to approve it. For a payer to approve a subscription, use a PayPal button. This is detailed in the Subscriptions Integration Guide .

Note that the createSubscription function can create a subscription for approval itself, by passing it an object with a plan_id (and optionally a plan object to override some part of that plan_id). This is the most simple method.

Alternatively, the subscription can be created via API, at a route on your server which that function will fetch when the button is clicked. Something like:

  <script src="https://www.paypal.com/sdk/js?client-id=YOUR_CLIENT_ID_GOES_HERE&amp;vault=true&amp;intent=subscription"></script>

  <div id="paypal-button-container"></div>

  <script>
    paypal.Buttons({
      style: {
          label:'subscribe'  //Optional text in button
      },
      createSubscription: function(data, actions) {
          return fetch('/path/on/your/server/paypal/subscription/create/', {
              method: 'post'
          }).then(function(res) {
              return res.json();
          }).then(function(serverData) {
              console.log(serverData);
              return serverData.id;
          });
      },

      onApprove: function(data, actions) {
      /*  Optional: At this point, notify your server of the activated subscription...

          fetch('/path/on/your/server/paypal/subscription/activated/' + data.subscriptionID , {
              method: 'post'
          }).then(function(res) {
              return res.json();
          }).then(function(serverData) {
              //
          });
      */
          //You could additionally subscribe to a webhook for the BILLING.SUBSCRIPTION.ACTIVATED event (just in case), as well as other future subscription events
          //Ref: https://developer.paypal.com/api-basics/notifications/webhooks/event-names/#subscriptions

          // Show a message to the buyer, or redirect to a success page
          alert('You successfully subscribed! ' + data.subscriptionID);
      }

    }).render('#paypal-button-container');
  </script>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM