簡體   English   中英

如何使用 paypal/checkout-php-sdk 執行付款?

[英]How to execute a payment with paypal/checkout-php-sdk?

我正在使用paypal/checkout-php-sdk ,但在創建訂單后不知所措。

我可以成功創建訂單:

/**
 * @Route("/create-order", name="create_order")
 */
public function createOrder(Paypal $paypal)
{
    // Construct a request object and set desired parameters
    // Here, OrdersCreateRequest() creates a POST request to /v2/checkout/orders
    $request = new OrdersCreateRequest();
    $request->prefer('return=representation');
    $request->body = [
        "intent" => "CAPTURE",
        "purchase_units" => [[
            "reference_id" => "test_ref_id1",
            "amount" => [
                "value" => "100.00",
                "currency_code" => "USD"
            ]
        ]],
        "application_context" => [
            "cancel_url" => "https://google.com/",
            "return_url" => "http://127.0.0.1:8000/execute-order"
        ]
    ];

    try {
        // Call API with your client and get a response for your call
        $response = $paypal->client->execute($request);

        $approuveLink = array_values( array_filter(
            $response->result->links,
            function ($e) {
                return $e->rel == "approve";
            }
        ))[0]->href;

        return $this->redirect($approuveLink);

    }catch (HttpException $ex) {
        echo $ex->statusCode;
        return new Response($ex->getMessage());
    }

}

正如你看到的,我把return_url放在“/execute-order”中,

因此,貝寶在經過身份驗證后將我重定向到此網址:

/execute-order?token=0NH30171UR363613S&PayerID=SNVZ4E6KDYA54

但我不知道接下來要做什么。 我必須執行付款,但在包的示例中,我發現只有 createOrder 和 captureOrder 但沒有 executeOrder

/**
 * @Route("/execute-order", name="order_execute")
 */
public function executeOrder(Request $request)
{
    echo $request->query->get('PayerID')." / ". $request->query->get('token');

    // WHAT TO PUT HERE ?
}

對於v2/checkout/orders集成,“捕獲”是最終操作。

它類似於已棄用的v1/payments的“執行”操作,這似乎就是您期望使用這種措辭的原因。

v2 中沒有“執行”。


為獲得最佳結果,請勿重定向到 PayPal 批准頁面並返回 return_url。 不要使用任何重定向。 相反,請使用此審批流程: https : //developer.paypal.com/demo/checkout/#/pattern/server——這是一種現代的“上下文”體驗,可讓您的網站在后台加載。 這是一種改進的買家體驗,可以提供更好的結果,增加轉化率等

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM