1 (edited by pavlenko.vladimir.v 2022-08-22 10:15:14)

Topic: конструктор тестов с подключением к WIX

http://fileworld.pavlenkovv.ru/img/QuestionWin.png
так как я начал разработку нового конструктора, то предоставляю доступ к (коду) рабочего конструктора всем желающим..
этот конструктор был связан с веб сервисом wix.
саму программу и части кода можете использовать по собственному желанию..
     
https://disk.yandex.ru/d/8z1OChCfkdICHA

   

так же я предастовляю сверх секретный код бекенд-файла "http-functions.js" tongue

import {notFound, ok, serverError, created } from 'wix-http-functions';
import wixData from 'wix-data';
import wixUsers from 'wix-users-backend'; 

export function use_GetUserPlans(request) {
  
return wixUsers.login(request.path[0], request.path[1])
 // если пользователь найден
  .then( () => {
 let options = {
    "headers": {
      "Content-Type": "application/json"
    }
  };
  // query a collection to find matching items
  return wixData.query("usersPLans")
    .eq("email", request.path[0])
    .find()
    .then( (results) => {
      // matching items were found
      if(results.items.length > 0) {
        options.body = {
          "items": results.items
        };
        return ok(options);
      }
      // no matching items found
      options.body = {
        "NoPlans": `${request.path[0]} wasn't found`
      };
      return notFound(options);
    } )
    // something went wrong
    .catch( (error) => {
      options.body = {
        "NoUser": error
      };
      return serverError(options);
    } );
  } )
 // если пользователь не найден или иная ошибка
  .catch( (error) => {
 // создать переменную с данными ошибки 
 let errorReturnValueObject = {
      headers: {
 "Content-Type": "application/json"
      },
      body: { "error":"Not logged"}
    };
 // вернуть ответ
 return serverError(errorReturnValueObject);
  });
}

export function post_InsertUserPlans(request) {
 let planuser;
 let emailuser;
 let options = {
     "headers": {
     "Content-Type": "application/json"
     }
  };
 return request.body.text()
     .then((body) => {
          const pricePlanObject = JSON.parse(body);
          let dataValue = pricePlanObject.data;
          for (const [name, value] of Object.entries(dataValue)) {
               if (name === "email") {
              emailuser  = value.slice(0, -1);
               }
          if (name === "plan") {
               planuser = value.slice(0, -1);
               }
            }
     let planInfo = {
     "email": emailuser,
     "plans": planuser
     }
  return wixData.insert("usersPLans", planInfo);
  })
    .then((results) => {
    options.body = {
    "inserted": results
    };
    return created(options);
     })
   .catch((error) => {
   options.body = {
   "error": error
   };
 return serverError(options);
 });
}

export function post_DeletedUserPlans(request) {

 let planuser;
 let emailuser;
 let options = {
     "headers": {
     "Content-Type": "application/json"
     }
  };
 return request.body.text()
     .then((body) => {
          const pricePlanObject = JSON.parse(body);
          let dataValue = pricePlanObject.data;
          for (const [name, value] of Object.entries(dataValue)) {
               if (name === "email") {
              emailuser  = value.slice(0, -1);
               }
          if (name === "plan") {
               planuser = value.slice(0, -1);
               }
            }
     let planInfo = {
     "email": emailuser,
     "plan": planuser
     }
  return wixData.query("usersPLans")
    .eq("email", emailuser)
    .eq("plans", planuser)
    .ascending("plans")
    .find()
    .then( (results) => {
      let firstItem = results.items[0];
      if(results.items.length > 0) {
        return wixData.remove("usersPLans", firstItem._id)
        .then( () => {
          options.body = {
          "items": "ok"
            };
          return ok(options);
        } )
        .catch( (error) => {
         options.body = {
            "error": error
          };
         return serverError(options);
    } );
      }
      // no matching items found
      options.body = {
        "error": `${request.path[0]} ${request.path[1]} wasn't found`
      };
      return notFound(options);
    } )
    // something went wrong
    .catch( (error) => {
      options.body = {
        "error": error
      };
      return serverError(options);
    } );
  })
    .then((results) => {
    options.body = {
    "inserted": results
    };
    return created(options);
     })
   .catch((error) => {
   options.body = {
   "error": error
   };
 return serverError(options);
 });
}

этот код отвечает за получение и обработку запросов (покупка приложения, проверка покупки приложения, и если была офомлена подписка то и за отмену подписки):
когда пользователь покупает программу или оформляет подписку сервсис посылает вебхук и скрипт записывает в базу данные пользователя и его покупку..
пользователь запускающий программу на своем ПК вводит данные своего аккаунта, программа посылает запрос скрипту, скрипт проверяет пользователя а после возвращает программе данные о всех покупках пользователя.
   
Моя база данных называлась usersPlans
http://fileworld.pavlenkovv.ru/img/wixUsersPlans.png
   
адреса вебхуков
https://Ваш_сайт/_functions/InsertUserPlans - новая подписка или покупка
http://fileworld.pavlenkovv.ru/img/parrnewWix.png
https://Ваш_сайт/_functions/DeletedUserPlans - удаления подписки или покупки
http://fileworld.pavlenkovv.ru/img/parrdelWix.png

2 (edited by k245 2022-08-23 07:46:05)

Re: конструктор тестов с подключением к WIX

Это прекрасно, однако не могу зайти на wix.com: перебрасывает на ru.wix.com, а потом соединение сбрасывается

http://myvisualdatabase.com/forum/misc.php?action=pun_attachment&item=8964&download=0

Post's attachments

Attachment icon Соединение сброшено.png 23.89 kb, 85 downloads since 2022-08-23 

Визуальное программирование: блог и телеграм-канал.

3 (edited by pavlenko.vladimir.v 2022-08-23 10:08:19)

Re: конструктор тестов с подключением к WIX

k245 wrote:

Это прекрасно, однако не могу зайти на wix.com: перебрасывает на ru.wix.com, а потом соединение сбрасывается

http://myvisualdatabase.com/forum/misc.php?action=pun_attachment&item=8964&download=0

его в России заблочили из-за поддержки Украины, только через VPN..
я потому и перешел на wordpress

Re: конструктор тестов с подключением к WIX

pavlenko.vladimir.v wrote:

только через торрент..

может vpn?

Re: конструктор тестов с подключением к WIX

m128mx wrote:
pavlenko.vladimir.v wrote:

только через торрент..

может vpn?

ну да, даже не заметил как (торрент) написал wink