Slim v3如何将响应发送到不同的URL / IP地址?

时间:2016-04-20 11:30:24

标签: php slim

我尝试用slim实现paypal IPN。

see code here

他们使用curl对URL发布请求。是不是只能更改苗条响应对象中的URL?

将请求发送到苗条某处的其他方式?

修改

我在谈论这一行:

$res = curl_exec($ch);

向某个网址发送请求的等效方式是什么?

2 个答案:

答案 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中处理通知无直接关系,因为它是处理通知的代码的一部分。