$eventdata->name = 'paypal_enrolment';
                $eventdata->userfrom = $user;
                $eventdata->userto = $admin;
                $eventdata->subject = get_string("enrolmentnew", 'enrol', $shortname);
                $eventdata->fullmessage = get_string('enrolmentnewuser', 'enrol', $a);
                $eventdata->fullmessageformat = FORMAT_PLAIN;
                $eventdata->fullmessagehtml = '';
                $eventdata->smallmessage = '';
                message_send($eventdata);
            }
        }
    } else {
        if (strcmp($result, "INVALID") == 0) {
            // ERROR
            $DB->insert_record("enrol_paypal", $data, false);
            message_paypal_error_to_admin("Received an invalid payment notification!! (Fake payment?)", $data);
        }
    }
}
exit;
//--- HELPER FUNCTIONS --------------------------------------------------------------------------------------
function message_paypal_error_to_admin($subject, $data)
{
    echo $subject;
    $admin = get_admin();
    $site = get_site();
    $message = "{$site->fullname}:  Transaction failed.\n\n{$subject}\n\n";
    foreach ($data as $key => $value) {
        $message .= "{$key} => {$value}\n";
    }
    $eventdata = new stdClass();
Beispiel #2
0
$data->payment_gross = $data->mc_gross;
$data->payment_currency = $data->mc_currency;
$data->timeupdated = time();
// Required for message_send.
$PAGE->set_context(context_system::instance());
/// get the user and course records
if (!($user = $DB->get_record("user", array("id" => $data->userid)))) {
    \enrol_paypal\util::message_paypal_error_to_admin("Not a valid user id", $data);
    die;
}
if (!($course = $DB->get_record("course", array("id" => $data->courseid)))) {
    \enrol_paypal\util::message_paypal_error_to_admin("Not a valid course id", $data);
    die;
}
if (!($context = context_course::instance($course->id, IGNORE_MISSING))) {
    message_paypal_error_to_admin("Not a valid context id", $data);
    die;
}
// Now that the course/context has been validated, we can set it. Not that it's wonderful
// to set contexts more than once but system->course switches are accepted.
// Required for message_send.
$PAGE->set_context($context);
if (!($plugin_instance = $DB->get_record("enrol", array("id" => $data->instanceid, "status" => 0)))) {
    \enrol_paypal\util::message_paypal_error_to_admin("Not a valid instance id", $data);
    die;
}
$plugin = enrol_get_plugin('paypal');
/// Open a connection back to PayPal to validate the data
$paypaladdr = empty($CFG->usepaypalsandbox) ? 'www.paypal.com' : 'www.sandbox.paypal.com';
$c = new curl();
$options = array('returntransfer' => true, 'httpheader' => array('application/x-www-form-urlencoded', "Host: {$paypaladdr}"), 'timeout' => 30, 'CURLOPT_HTTP_VERSION' => CURL_HTTP_VERSION_1_1);