====quote====
Задача: при оплате высылать билеты с QR кодом, в котором будет зашита ссылка на билет. И заодно письмо аффилиату, что его заказ оплачен
=============
1. понадобятся 2 библиотеки, которые положила в папку /tools/
2. обработчики в init.php
====code====
const SITE_TICKET = "tc";
const TICKET_INFO_URL = "http://nikaverro.ru/ticket/info/";
const QRCODE_DIR_REL = "http://nikaverro.ru/upload/qrcode/";
const QRCODE_DIR_ABS = "/upload/qrcode/";
AddEventHandler("sale", "OnSalePayOrder", "CustomOnSalePayOrder");
function CustomOnSalePayOrder($id,$bPay){
//Флаг оплаты (Y - выставление оплаты, N - снятие оплаты)
if(($bPay == "Y")&& CModule::IncludeModule("sale") && CModule::IncludeModule("iblock")){
$arTickets = GetTicketsByOrderId($id); //функция, которая возвращает билеты (элементы инфоблока) по заказу
if(count($arTickets)>0){
$arFilter = Array(
"ID" => $id,
"CANCELED"=>"N"
);
$arSelect = array("ID","USER_ID",'PROPERTY_VAL_BY_CODE_NAME','PROPERTY_VAL_BY_CODE_EMAIL','PROPERTY_VAL_BY_CODE_PHONE', "AFFILIATE_ID","PRICE");
$db_sales = CSaleOrder::GetList(array("DATE_INSERT" => "ASC"), $arFilter,false,false,$arSelect);
if ($arOrder = $db_sales->Fetch()){
$html = GenerateHTMLTicket($arTickets);
SendEmailWithTickets($arOrder["PROPERTY_VAL_BY_CODE_EMAIL"], $html);
if(($arOrder["AFFILIATE_ID"]!="") && ($arOrder["PRICE"]>0) ){
$dbAffiliate = CSaleAffiliate::GetList(array(), array("ID" => $arOrder["AFFILIATE_ID"]), false, false, array("USER_ID"));
if ($arAffiliate = $dbAffiliate->Fetch()) {
$rsUser = CUser::GetByID($arAffiliate["USER_ID"]);
$arUser = $rsUser->Fetch();
if($arUser["EMAIL"]!=""){
SendEmailToAffiliate($arUser["EMAIL"],$arOrder["PRICE"]);
}
}
}
}
//выставляем у билетов статус "действительны"
foreach ($arTickets as $arTicket) {
CIBlockElement::SetPropertyValuesEx($arTicket["ID"], false, array(PROPERTY_TICKET_STATUS => TICKET_STATUS_VALID));
}
}
}
}
function GenerateHTMLTicket($arTickets){
AddMessage2Log('GenerateHTMLTicket');
require_once($_SERVER["DOCUMENT_ROOT"].'/tools/phpqrcode/qrlib.php');
ob_start();
// define some HTML content with style
?>
|
||||
|
||||
=============
Подробнее…

