var resultCode //Код ошибки//
var bankCheck //Банковский слип//
var rrn //Номер ссылки//
var mHash //Хеш карты//
var isOwnCard // Признак карты Сбербанка//

oleObject = new ActiveXObject("SBRFSRV.Server")
ws = WScript.CreateObject('WScript.Shell')

//================================ Оплата ========================================//
oleObject.clear()
oleObject.SParam ("Amount", 12345) // Заполняем входной параметр суммы
resultCode = oleObject.NFun(4000) // Выполняем ф-цию 4000 (оплата) и запоминаем результат выполнения (код ошибки)
bankCheck = oleObject.GParamString("Cheque1251") // Получаем банковский слип
isOwnCard = oleObject.GParamString("OwnCard") // Получаем признак принадлежности карты
mHash = oleObject.GParamString("Hash") // Получаем хеш от номера карты
resultCheck = "ERRCODE: " + resultCode + "\r\n\r\n"
			+ "HASH: "    + mHash + "\r\n\r\n"
			+ "OwnCard: " + isOwnCard + "\r\n\r\n"
			+ bankCheck
showTextInNotepad(resultCheck)

if (isOwnCard == 1) //Если это карта Сбербанка
{
	// Тут должен быть специфичный код для работы со "Спасибо", хеш для отправки можно взять из "mHash"//
	// и принятие решения об изменении суммы// 
	oleObject.SParam("InHash", mHash) // Заполняем входной параметр InHash, чтобы второй раз не выпасть в ошибку 4353
	oleObject.SParam ("Amount", 4321) // Заполняем измененную сумму
	resultCode = oleObject.NFun(4000) // Выполняем оплату
	bankCheck = oleObject.GParamString("Cheque1251")// Получаем банковский слип
	resultCheck = "ERRCODE: " + resultCode + "\r\n\r\n" 
			+ "HASH: " + mHash + "\r\n\r\n" 
			+ bankCheck
	showTextInNotepad(resultCheck)
	oleObject.clear()
};
if (isOwnCard != 1) // Стоит делать проверку и в этом случае, поскольку в некоторых версиях UPOS isOwnCard могло быть > 1, в случае работы со сторонними программами лояльности.
{

	oleObject.SParam("InHash", mHash) // Заполняем входной параметр InHash, чтобы второй раз не выпасть в ошибку 4353
	oleObject.SParam ("Amount", 12345) // Оставляем сумму без изменений
	resultCode = oleObject.NFun(4000) // Выполняем оплату
	bankCheck = oleObject.GParamString("Cheque1251")// Получаем банковский слип
	resultCheck = "ERRCODE: " + resultCode + "\r\n\r\n" 
			+ "HASH: " + mHash + "\r\n\r\n" 
			+ bankCheck
	showTextInNotepad(resultCheck)
	oleObject.clear()
};


function showTextInNotepad(text){
filename = (new Date()).valueOf() + "UPOS_check.txt"
fso = WScript.CreateObject('Scripting.FileSystemObject')
file = fso.CreateTextFile(filename)
file.Write(text)
file.Close()
WScript.CreateObject('WScript.Shell').Run("notepad " + filename)
WScript.Sleep(2000)
fso.DeleteFile(filename)
}