Canlı sitede PayPal SSL hata

0 Cevap php

Benim PayPal kodu Sandbox iyi çalışıyordu, ama ben yaşamak için açıldığında ben hatalar var.

function validate_send() {
    // https://www.paypal.com/us/cgi-bin/webscr?cmd=p/pdn/ipn-codesamples-pop-outside#php
    // http://stackoverflow.com/questions/3414479
    global $system;
    switch ($system->config['shop/mode']) {
    case 'live':
        $mode = 'www.paypal.com';
        break;
    case 'test':
        $mode = 'www.sandbox.paypal.com';
        break;
    default:
        trigger_error('Something\'s gone wrong!');
        break;
    }
    // Read the post from PayPal and add 'cmd'.
    $reply = array_merge(array('cmd' => '_notify-validate'), $_POST);
    $req = '';

    foreach ($reply as $k => $v) {
        if ($req) $req .= '&';
        $req .= $k . '=' . urlencode($v);
    }
    // Post back to PayPal to validate.
    $header  = 'POST /cgi-bin/webscr HTTP/1.0' . CR;
    $header .= 'Content-Type: application/x-www-form-urlencoded' . CR;
    $header .= 'Content-Length: ' . strlen($req) . CR . CR;
    $fp = fsockopen('ssl://' . $mode, 443, $errno, $errstr, 30);

    if (!$fp) {
        trigger_error('PayPal HTTP error');
    } else {
        fputs($fp, $header . $req);
        // Test the HTTP response code.
        $status = fgets($fp, 1024);
        $status = trim(substr($status, 9, 4));
        if ($status != 200) {
            return trigger_error('PayPal HTTP error: HTTP status code: ' . $status);
        }
        // Loop through response line by line, looking for response.
        while (!feof($fp)) {
            $res = fgets($fp, 1024);
            if (strcmp ($res, 'VERIFIED') == 0) {
                // Note: Checks mentioned in sample code are performed in the class Cart_External_PayPal_WebsitePaymentsStandard.
                return true;
            } elseif (strcmp ($res, 'INVALID') == 0) {
                return false;
            }
        }
    }
    fclose($fp);
}

Hata fgets(): SSL: fatal protocol error while (!feof($fp)) döngüsü içindeki ilk satırı hat 91 üzerinde oldu aldı. Satırında hata $fp = fsockopen('ssl://' . $mode, 443, $errno, $errstr, 30); bana daha mantıklı olur.

Her iki şekilde de, bu test modunda çalışıyor, ancak canlı modda bozuldu. Bu ne ile oluyor?

0 Cevap