检测 Paypal 订阅取消

2021-12-29 00:00:00 php paypal paypal-ipn handler

我编写了一个简单的 paypal 订阅系统,用户可以在其中输入他们的信息,单击按钮,然后开始订阅.我想知道如何知道用户何时取消订阅?我见过 $txn_type subscr_cancel 但我不知道如何使用它,因为 paypal 不会再次调用我的处理程序.

I have written a simple paypal subscription system, where a user can enter their information, click the button, and start a subscription. Im wondering how I can find out when the user cancels the subscription though? I have seen $txn_type subscr_cancel but I have no idea how to use that, since paypal doesn't call my handler again.

谢谢!

推荐答案

如果是,您是否使用 IPN,然后取消订阅时,paypal 返回 $_POST['txn_type'] = subscr_cancel 以及subscr_date = 订阅日期,subscr_id = 订阅 ID 等现在您可以处理返回的订阅 ID 的取消请求.类似地,订阅结束时您会得到 $_POST['txn_type'] = subscr_eot.一旦您在 paypal 设置中设置了 IPN url,它将始终调用您的 ipn 处理程序.使用 switch case 来处理像这样的不同请求,

Are you using IPN if yes then, when a subscription is cancelled paypal returns $_POST['txn_type'] = subscr_cancel along with subscr_date = subscription date, subscr_id = subscription ID, etc now you can process cancel request for the returned subscription id. similarly you get $_POST['txn_type'] = subscr_eot when subscription ends. Once you have setup IPN url in the paypal settings it will always call your ipn handler. use switch case to handle different requests like so,

switch ($_POST['txn_type']) {
    case 'cart':
          //for products without subscription
     break;
    case 'subscr_payment':
        //subscription payment recieved
        break;

    case 'subscr_signup':
        //subscription bought payment pending
        break;

    case 'subscr_eot':
       //subscription end of term
        break;

    case 'subscr_cancel':
        //subscription canceled
        break;
 }

相关文章