1

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"に置きました。

そのため、PayPal は認証後に次の URL にリダイレクトします。

/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 ?
}
4

1 に答える 1