我尝试用slim实现paypal IPN。
他们使用curl对URL发布请求。是不是只能更改苗条响应对象中的URL?
将请求发送到苗条某处的其他方式?
修改
我在谈论这一行:
$res = curl_exec($ch);
向某个网址发送请求的等效方式是什么?
答案 0 :(得分:2)
您可以在HTTPlug的帮助下发送PSR7请求。
您必须创建一些Adapter类来告诉HTTPlug如何创建Slims请求和响应对象。在您的代码中,您只需创建Slim Request并使用此方法调用客户端。您可以在某些客户端之间进行选择,例如Curl或Socket。
答案 1 :(得分:0)
如果您想将您的用户发送到PayPal以便他们付款,那么您需要在您的网站上创建一个直接发送到PayPal的表单。
您链接的代码是从PayPal返回到您的服务器的POST请求。要在Slim中处理该问题,请创建post
路由:
$app->post('/paypal-ipn', PayPalIpnAction::class);
在您的Action类中,您需要将POST请求发送回PayPal:
class PayPalIpnAction
{
public function __invoke($request, $response, $args)
{
$dataFromPaypal = $reqest->getParsedBody();
// Validate data from PayPal using HTTPlug, Guzzle or
// you use can the PayPal example code directly.
// If data is valid, process data and do whatever you
// need to with it.
// All done. Return the response.
return $response;
}
}
请注意,退回到PayPal的验证步骤与Slim中处理通知无直接关系,因为它是处理通知的代码的一部分。