>

웹 애플리케이션에 스위치 간 지불 방법을 추가해야하지만 오류가 발생합니다 다음은 내 코드입니다

   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);
}

그러나 다음과 같은 오류가 발생합니다 "HTTP 메소드는이 리소스에서 지원되지 않습니다", http 메소드 POST를 시도했지만 같은 오류가 발생했습니다. API에 새로운 사람이 있습니다. 누군가이 문제를 해결하도록 도와주세요.


  • 답변 # 1

    대신 이것을 사용하여 다음을 채우십시오 변수에서  -$clientId  -$clientSecretKey 헤더에서  -터미널 ID

     <?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;
        ?>
    
    

    이것은 저에게 도움이되었습니다. 장래에 누군가를 돕기를 바랍니다

  • 이전 cypressio의 특정 방법에 대한 시간 초과 증가
  • 다음 oracle - 고객을 위해 특정 값을 검색하는 SQL 열