我正在使用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 会将我重定向到此网址:
/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 ?
}