Php 触发webhook而不付款执行?

Php 触发webhook而不付款执行?,php,paypal,paypal-rest-sdk,paypal-subscriptions,paypal-webhooks,Php,Paypal,Paypal Rest Sdk,Paypal Subscriptions,Paypal Webhooks,我正在构建paypal订阅系统,我正在使用网络钩子通知系统订阅已创建、活动等 但是,要求用户必须返回到成功url和站点执行$agreement->execute($token,$apiContext))使其工作 假设由于某种原因,用户永远不会返回url,那么您将永远不会执行支付,用户也永远不会获得他们的订阅 我查阅了paypal文档,找不到任何解决方案 这是我的密码: Subscribe.php: $agreement = new Agreement(); $agreement->setN

我正在构建paypal订阅系统,我正在使用网络钩子通知系统订阅已创建、活动等

但是,要求用户必须返回到成功url和站点执行
$agreement->execute($token,$apiContext))使其工作

假设由于某种原因,用户永远不会返回url,那么您将永远不会执行支付,用户也永远不会获得他们的订阅

我查阅了paypal文档,找不到任何解决方案

这是我的密码:

Subscribe.php:

$agreement = new Agreement();
$agreement->setName('Basic Plan')
->setDescription('Some info')
->setStartDate($date);

$plan = new Plan();
$plan->setId('PLAN_ID');

$agreement->setPlan($plan);

// Add Payer
$payer = new Payer();
$payer->setPaymentMethod('paypal');
$agreement->setPayer($payer);

// Add Shipping Address
$shippingAddress = new ShippingAddress();
$shippingAddress->setLine1('111 First Street')
    ->setCity('Saratoga')
    ->setState('CA')
    ->setPostalCode('95070')
    ->setCountryCode('US');
$agreement->setShippingAddress($shippingAddress);

// ### Create Agreement
try {
    $agreement = $agreement->create($apiContext);
    $agreement->getApprovalLink()
    // method
    $approvalUrl = $agreement->getApprovalLink();
    redirect($approvalUrl);
} catch (Exception $ex) {
    print_r($ex->getData());
}
index.php

if (isset($_GET['status']) && $_GET['status'] == 'success') {
    $token = $_GET['token'];
    $agreement = new \PayPal\Api\Agreement();
    try {
        // ## Execute Agreement
        // Execute the agreement by passing in the token
        echo "<pre>";
        print_r($agreement->execute($token, $apiContext));
    } catch (Exception $ex) {

        exit(1);
    }
} else {
    echo "User Cancelled the Approval";
}
if(设置($\u GET['status'])&&&$\u GET['status']=='success')){
$token=$_GET['token'];
$agreement=new\PayPal\Api\agreement();
试一试{
//##执行协议
//通过传递令牌来执行协议
回声“;
打印($agreement->execute($token,$apiContext));
}捕获(例外$ex){
出口(1);
}
}否则{
echo“用户取消了审批”;
}

检查文档中是否有您想要连接的事件。可能的事件可能是,或者我已经设置了所需的事件。问题是只有当用户点击返回url时才会触发。如果由于某些原因,它们没有返回到该url,则即使事务完成,也不会触发webhook。所有处理代码似乎都是在成功状态后执行的。您需要钩住一个预处理事件,它需要在代码中包含一个订单流。它对订阅api有用吗?你能给出一些示例代码吗?