php中的交换机间quickteller API集成

php中的交换机间quickteller API集成,php,curl,Php,Curl,我必须在我的web应用程序中添加interswitch支付方法,但我收到错误消息 下面是我的代码 function billersCategories() { $nonce=$randomNum=substr(str_shuffle("0123456789abcdefghijklmnopqrstvwxyz"), 0, 60); $date = new DateTime(); $timestamp=$date->getTimestamp();

我必须在我的web应用程序中添加interswitch支付方法,但我收到错误消息 下面是我的代码

    function billersCategories()
    {

      $nonce=$randomNum=substr(str_shuffle("0123456789abcdefghijklmnopqrstvwxyz"), 0, 60);

    $date = new DateTime();
    $timestamp=$date->getTimestamp();
     // Signature
    $httpMethod = "GET";
    $url='https://sandbox.interswitchng.com/api/v2/quickteller/categorys';
    $clientId = "IKIA9D98ABCDEFGHIFAKEID1E09104959B9755C41E1"; 
    $clientSecretKey = "d5uAr+U8QhSv8vQtKPDIUI62327Fsfsfsf65=";
    $signatureCipher = $httpMethod."&".$url."&".$timestamp."&".$nonce."&".$clientId."&".$clientSecretKey;

    $signature = base64_encode($signatureCipher);

    $data = array("TerminalID" => "9APY556261");                                                                    
    $data_string = json_encode($data);                                                                                   

    $ch = curl_init($url);                                                                      
    curl_setopt($ch, CURLOPT_VERBOSE, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS,$data_string);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                                                          
        'Content-Type:application/json',
        'Authorization:InterswitchAuth SUtJQTUyNTBERkY1NkU5MzM2OUM0RkRBRjMxQTQ3QTg1RkNDODYyRTRDOUU=',           
        'Signature:'.$signature,            
        'Nonce:'.$nonce,            
        'Timestamp:'.$timestamp,            
        'SignatureMethod:SHA512'    
    ));                                                                                                 

    $result = curl_exec($ch);

    echo curl_getinfo($ch) . '<br/>';
    echo curl_errno($ch) . '<br/>';
    echo curl_error($ch) . '<br/>';

    var_dump($result);

}
函数billersCategories()
{
$nonce=$randomNum=substr(str_shuffle(“0123456789abcdefghijklmnopqrstvwxyz”),0,60);
$date=新的日期时间();
$timestamp=$date->getTimestamp();
//签名
$httpMethod=“GET”;
$url='1https://sandbox.interswitchng.com/api/v2/quickteller/categorys';
$clientId=“ikia9d98abcdefghifakeid1e091049b9755c41e1”;
$clientSecretKey=“d5uAr+U8QHSV8VQTKPDIUI62327FSF65=”;
$signatureCipher=$httpMethod.&“$url.”和“$timestamp.”和“$nonce.”和“$clientId.”和“$clientSecretKey;
$signature=base64_编码($signatureecipher);
$data=数组(“TerminalID”=>“9APY556261”);
$data\u string=json\u encode($data);
$ch=curl\u init($url);
curl_setopt($ch,CURLOPT_VERBOSE,true);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
卷曲设置($ch,卷曲设置桩,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data_string);
curl_setopt($ch,CURLOPT_HTTPHEADER,数组(
'内容类型:application/json',
'授权:Interswitcouth Sutjqtuyntberky1nku5MzM2oum0RkrbRjMXqtqtqtg1RknodyRktrDuu=',
“签名:”.$Signature,
“Nonce:”。$Nonce,
“时间戳:”。$Timestamp,
'签名方法:SHA512'
));                                                                                                 
$result=curl\u exec($ch);
echo curl_getinfo($ch)。“
”; 回音旋度($ch)。“
”; 回波旋度误差($ch)。“
”; var_dump($结果); }
但我收到以下错误
“此资源不支持HTTP方法”,我尝试了HTTP方法POST,但出现了相同的错误,我是API新手,请有人帮助我解决此问题。

使用此方法,请填写以下内容 在变量中 -$clientId -$clientSecretKey 在页眉处 -末日的

  <?php
     $nonce=$randomNum=substr(str_shuffle("0123456789abcdefghijklmnopqrstvwxyz"), 0, 60);

    $date = new DateTime();
    $timestamp=$date->getTimestamp();
    $httpMethod = "GET";
    $clientId = "YOUR_OWN_ID"; 
    $clientSecretKey = "YOUR_OWN_CLIENT_SECRET_KEY";

    $resourceUrl='https://sandbox.interswitchng.com/api/v2/quickteller/categorys';
    $resourceUrl = strtolower($resourceUrl);
    $resourceUrl = str_replace('http://', 'https://', $resourceUrl);
    $encodedUrl = urlencode($resourceUrl);
    $transactionParams = "1";
    $httpMethod = "GET";

    $signatureCipher = $httpMethod . '&' . $encodedUrl . '&' . $timestamp . '&' . $nonce . '&' . $clientId . '&' . $clientSecretKey;

    if (!empty($transactionParams) && is_array($transactionParams)) {
        $parameters = implode("&", $transactionParams);
        $signatureCipher = $signatureCipher . $parameters;
    }
    $signature = base64_encode(sha1($signatureCipher, true));

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,$resourceUrl);
    // curl_setopt($ch, CURLOPT_POST, 1);
    // curl_setopt($ch, CURLOPT_POSTFIELDS,$vars);  //Post Fields
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    $headers = [
        'Content-Type:application/json',
        'Authorization:InterswitchAuth SUtJQTAzREM3RDY5NUREMzZFQURFNTQxNEE2Nzg1MUJCMUZFQ0Y5MUIxRjg=',           
        'Signature:'.$signature,            
        'Nonce:'.$nonce,            
        'Timestamp:'.$timestamp,            
        'SignatureMethod:SHA1',
        'TerminalID:YOUR_ASSIGNED_TERMINAL_ID'
    ];

    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    $server_output = curl_exec ($ch);
    curl_close ($ch);
    echo $server_output;
    ?>


这对我来说很有效,希望将来能帮助别人

我相信手册会帮助你解决这个问题错误代码是E77,但这甚至不在文档中没有适当的文档和适当的支持