所有可能情况的逻辑paypal IPN

时间:2015-10-22 15:23:59

标签: php mysql paypal paypal-ipn

好的,所以我正在编写我的IPN页面,在payment_status完成时将所有工作都插入到数据库中。这是我到目前为止的查询:

if($payment_status=="Completed"){
        $txn_id_check = $mysqli->query("SELECT `transaction_id` FROM `payment` WHERE `transaction_id`='$txn_id'");
        if($txn_id_check->num_rows != 1) {  
                    $query = "INSERT INTO `payment` (`transaction_id`, `payment_status`, `users_id`) VALUES(?, ?, ?)";
                    $statement = $mysqli->prepare($query);
                    $statement->bind_param('ssi',$txn_id, $payment_status, $id);
                    if($statement->execute()){
                    print 'Success! ID of last inserted record is : ' .$statement->insert_id .'<br />'; 
                    }else{
                    die('Error : ('. $mysqli->errno .') '. $mysqli->error);
                    }
                    $statement->close();
        }
    }

因为我正在订阅订阅服务,所以我不确定所有可能发生的情况。我的想法:

用户购买会员资格

  • 用户购买高级会员资格(订阅)
  • 将他们的数据添加到数据库
  • 将帐户更新为premium

检查:必须检查付款是否更正收件人,transaction_id不存在,付款金额是否正确。

用户取消会员资格

  • 用户通过paypal取消会员资格(取消订阅)
  • 根据交易ID更新数据库
  • 将其帐户降级为非高级

还有什么我需要考虑的吗?

提前谢谢。

0 个答案:

没有答案