1

課金に繰り返し利用したい。indexControllerでテストするために、次のような非常に単純な例があります。

public function init() {
    require_once APPLICATION_PATH . '/../library/Recurly/recurly.php';
    Recurly_Client::$apiKey = Zend_Registry::get('config')->get('recurly')->get('apikey');
    Recurly_js::$privateKey = Zend_Registry::get('config')->get('recurly')->get('jskey');
    Recurly_Client::$subdomain = 'mysubdomain';
}

私のrecurlyAction :

public function recurlyAction(){
    try{
        $invoices = Recurly_InvoiceList::get();
        foreach ($invoices as $invoice) {
            print "Invoice: $invoice\n";
        }
    }
    catch (Recurly_NotFoundError $e) {
        print 'Record could not be found';
    }
    catch (Recurly_ValidationError $e) {
        // If there are multiple errors, they are comma delimited:
        $messages = explode(',', $e->getMessage());
        print 'Validation problems: ' . implode("\n", $messages);
    }
    catch (Recurly_ServerError $e) {
        print 'Problem communicating with Recurly';
    }
    catch (Exception $e) {
        // You could use send these messages to a log for later analysis.
        print get_class($e) . ': ' . $e->getMessage();
    }
}

テストのためだけに、すべての請求書を表示しようとしています。問題は、次のような例外が常に発生することです。

Recurly_ConnectionError: Recurly への接続に失敗しました。

アクションで var_dump を使用してすべてのキーをチェックしたところ、すべて正しく表示されました。ご覧のとおり、応答がありません。

Cache-Control:no-store、no-cache、must-revalidate、post-check=0、pre-check=0
Connection:Keep-Alive
Content-Encoding:gzip
Content-Length:4853
Content-Type:text/html
Date :Tue, 01 Oct 2013 06:54:36 GMT
Expires:Thu, 19 Nov 1981 08:52:00 GMT
Keep-Alive:timeout=5, max=100
Pragma:no-cache
サーバー:Apache/2.2.22 (Debian )
Vary:Accept-Encoding
X-Powered-By:PHP/5.5.3-1~dotdeb.1

私は浮浪者ボックスで作業していますが、それが問題になる可能性はありますか? 誰でもこれで私を助けることができますか? 私は今、数日間それで立ち往生しています...

更新:
請求書が届くこともあれば、届かないこともあります...

4

2 に答える 2

2

@karthikr が言ったように、タイムアウトまたはネットワークの問題のようです。コンソールで CURL を使用してアクセスできますか?

于 2013-10-04T18:02:18.327 に答える
2

recurly でサポート チケットを作成し、次の回答を得ました。

他のサービスに接続すると、このようなエラーが発生しますか? client.php ファイルでは、接続タイムアウトが 10 に設定されています (これで十分です)。あなたはそれを調整してみることができます。

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);

通常、これを編集する必要はありませんが、30 に変更したところ、正常に動作するようになりました..

于 2013-10-08T09:44:37.983 に答える