Commit a6f60c93 authored by 王源's avatar 王源
Browse files

Merge branch 'rpc/product'

parents d4b440fe 8d7e4176
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -148,4 +148,11 @@ interface ProductServiceInterface
     */
    public function getSizesById($id): array;

    /**
     * 完成产品审批
     * @param $data
     * @author Zero
     */
    public function downApprove($data);

}
+5 −30
Original line number Diff line number Diff line
@@ -9,27 +9,17 @@ class CurlRequest

    protected static function init($url, $httpHeaders = [])
    {
        // Create Curl resource
        $ch = curl_init();

        // Set URL
        curl_setopt($ch, CURLOPT_URL, $url);

        //Return the transfer as a string
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

        curl_setopt($ch, CURLOPT_HEADER, true);
        curl_setopt($ch, CURLOPT_USERAGENT, 'PHPClassic/PHPShopify');

        $headers = [];
        foreach ($httpHeaders as $key => $value) {
            $headers[] = "$key: $value";
        }
        //Set HTTP Headers
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

        return $ch;

    }

    public static function get($url, $httpHeaders = [])
@@ -63,35 +53,20 @@ class CurlRequest

    protected static function processRequest($ch)
    {
        # Check for 429 leaky bucket error
        while (1) {
        $output = curl_exec($ch);
        $response = new CurlResponse($output);

        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
            if ($httpCode != 429) {
                break;
            }

        if ($httpCode == 429) {
            $limitHeader = explode('/', $response->getHeader('X-Shopify-Shop-Api-Call-Limit'), 2);

            if (isset($limitHeader[1]) && $limitHeader[0] < $limitHeader[1]) {
                throw new Exception($response->getBody());
            }

            usleep(500000);
        }

        if (curl_errno($ch)) {
            throw new Exception(curl_errno($ch) . ' : ' . curl_error($ch));
        }

        // close curl resource to free up system resources
        curl_close($ch);

        $httpHeader = $response->getHeaders();

        return [$httpCode, $httpHeader, $response->getBody()];
        return [$httpCode, $response->getHeaders(), $response->getBody()];
    }

}