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