触发Webhook而无需执行付款?

时间:2019-11-09 09:39:28

标签: php paypal paypal-rest-sdk paypal-subscriptions paypal-webhooks

我正在构建Paypal订阅系统,并且我正在使用网络钩子来通知有关已创建,活动等订阅的系统。

但是,要求用户必须返回成功URL并执行站点$agreement->execute($token, $apiContext));才能使其正常工作。

假设由于某种原因,用户永远不会回来返回网址,那么您将永远不会执行付款,用户也永远不会得到他们的订阅。

我已经浏览了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";
}

0 个答案:

没有答案