Example #1
0
function bitpass_insert_new_message()
{
    $sql = " INSERT INTO `bitpass_messages`(\n\t\t`source_message`, `btc_address`, `signature_base64`, `creation_time`)\n\tVALUES (:source_message, :btc_address, :signature_base64, :creation_time)\n\t";
    $msg = time() . ':' . random_string(32);
    $arr = array(':source_message' => $msg, ':btc_address' => '', ':signature_base64' => '', ':creation_time' => date('Y-m-d H:i:s'));
    if (DB::pexec($sql, $arr, DB::RETURN_AFFECTED_ROWS) == 0) {
        die("[bitpass_insert_new_message] insert new message error");
    }
    return $msg;
}
Example #2
0
    die("-1\tinvalid arguments");
}
//
// you can do something to check the message if you put data in it.
//
// $message_arr = explode(':', $message);
// if (empty($message_arr[0]) || time() - $message_arr[0] > 30*60) {
// 	// expire time is 30 minutes
// 	die("-1\tmessage expired");
// }
// find the item by source_message
$sql = "SELECT * FROM `bitpass_messages` \nWHERE source_message = :source_message AND (btc_address = '' OR btc_address = NULL) ";
$item = DB::pfetch($sql, array(':source_message' => $message));
if (empty($item)) {
    die("-1\tcan't find bitpass_messages item OR already used");
}
try {
    if (!isMessageSignatureValid($address, $signature, $message)) {
        die("-1\tsignature invalid");
    }
} catch (Exception $e) {
    die("-1\t" . $e->getMessage());
}
// update the item
$sql = " UPDATE `bitpass_messages` \nSET btc_address      = :btc_address,\n\tsignature_base64 = :signature_base64,\n\tverify_time      = :verify_time,\n\tlatitude         = :latitude,\n\tlongitude        = :longitude\nWHERE bitpass_message_id = :bitpass_message_id ";
$arr = array(':btc_address' => $address, ':signature_base64' => $signature, ':bitpass_message_id' => $item['bitpass_message_id'], ':verify_time' => date('Y-m-d H:i:s'), ':latitude' => $latitude > 0 ? $latitude : 0, ':longitude' => $longitude > 0 ? $longitude : 0);
if (DB::pexec($sql, $arr, DB::RETURN_AFFECTED_ROWS) == 0) {
    die("-1\tupdate bitpass_messages failure");
}
// success
echo "1\tOK";