2016-08-12 12 views
0

mpesa B2Cインテグレーションで。 mpesa sslハンドシェイクの失敗の方法

カール

 $url = "https://196.201.214.136:18423/mminterface/request"; 




    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_HEADER, 1); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
    curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1); 
    // curl_setopt($ch, CURLOPT_PORT, 18423); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); 
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $requestXml); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
              'Content-type: text/xml', 
              'Content-length: ' . strlen($requestXml) 
             )); 
    $output = curl_exec($ch); 

    if(curl_errno($ch)){ 
     var_dump(curl_error($ch)); 
    } else{ 
     curl_close($ch); 
    } 
を使用しようとしています私はこれは、OpenSSLにNSSからSSLバージョンを変更した後で

error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure'

エラーが発生します。 ハンドシェークの失敗を解決する方法を教えてください。

+0

クライアントとサーバーがSSL/TLSバージョンまたは暗号スイートで合意できませんでした。サーバーがサポートするプロトコルと暗号スイート、およびクライアントがサポートするプロトコルを確認します。 – vcsjones

答えて

0

私が正しく覚えていれば、MPESAはそれと共に生成する必要のある公開鍵と秘密鍵のペアを使用します。それらが正しく設定されていないと、SSLリクエストは失敗します。あなたはまだこれをやったことがありますか?

0

Safaricomは、developer portalでアクセス可能なRESTful APIとしてM-Pesa APIをリリースしました。 APIを使用するには、Safaricomが署名したSSL証明書を取得する必要はありません。あなたのサーバーが公的に署名された証明書を持っている限り、Safaricom API Gatewayは要求を受け取り、あなたのサーバーに応答を送ることができます。

関連する問題