bool AreaItemModel::loadJsonDocument(const char filename[]){ QFile jsonFile(filename); if (! jsonFile.open(QIODevice::ReadOnly)){ qWarning("Couldn't open area.json"); return false; } else { QJsonParseError json_error; QByteArray dataArray = jsonFile.readAll(); QJsonDocument jsonDoc(QJsonDocument::fromJson(dataArray, &json_error)); if (json_error.error == QJsonParseError::NoError){ if (jsonDoc.isArray()){ QJsonArray jsonArray = jsonDoc.array(); foreach(QJsonValue value, jsonArray){ if (value.isObject()){ QJsonObject jsonObj = value.toObject(); QString value = this->read(jsonObj, "label"); list << value; } } } } jsonFile.close(); return true; }
bool CharactersManager::loadCharacters() { const QString path = QStandardPaths::locate(QStandardPaths::StandardLocation::DataLocation, QStringLiteral(JS_FILE), QStandardPaths::LocateOption::LocateFile); QFile loadFile(path); if(!loadFile.open(QFile::OpenModeFlag::ReadOnly)) { qWarning("Can't load file"); return false; } QByteArray byteArray = loadFile.readAll(); QJsonParseError error; QJsonDocument jsonDoc(QJsonDocument::fromJson(byteArray, &error)); if(error.error != QJsonParseError::ParseError::NoError) { qWarning("Can't read json object"); qWarning() << error.errorString(); return false; } this->readCharacters(jsonDoc.object()); return true; }
void ConnectionGateKeeper::validate() { DEBUG("Validation connection -> sending ping"); QJsonObject json; json["command"] = "Ping"; QJsonDocument jsonDoc(json); emit outgoingMessage(_d->connectionId, jsonDoc.toJson()); _d->timer.start(); }
void OrderDownload::downloadNextOrders() { if (_ohData._currentIndex >= _ohData._total) { setOrderGetFromKJTTime(); // 执行结束,修改系统参数的时间 _optType = OTOrderDownloadEnd; if (_ohData._success) _ohData._msgList.append(tr("下载订单结束.")); _timer->start(1000); return; } QMap<QString, QString> paramsMap(g_paramsMap); paramsMap["method"] = "Order.OrderInfoBatchGet"; // 由接口提供方指定的接口标识符 paramsMap["timestamp"] = QDateTime::currentDateTime().toString("yyyyMMddhhmmss"); // 调用方时间戳,格式为“4 位年+2 位月+2 位日+2 位小时(24 小时制)+2 位分+2 位秒” paramsMap["nonce"] = QString::number(100000 + qrand() % (999999 - 100000)); // QString::number(100000 + qrand() % (999999 - 100000)); QJsonObject json; QJsonArray orderIdListArray; foreach (int orderId, _ohData._orderIdList.mid(_ohData._currentIndex, 20)) { orderIdListArray.append(QJsonValue(orderId)); } _ohData._currentIndex += 20; json["OrderIDList"] = orderIdListArray; QJsonDocument jsonDoc(json); // QFile file("11.txt"); // if (file.open(QIODevice::WriteOnly)) // { // QTextStream out(&file); // out << jsonDoc.toJson(QJsonDocument::Compact); // file.close(); // } qDebug() << jsonDoc.toJson(QJsonDocument::Compact); paramsMap["data"] = jsonDoc.toJson(QJsonDocument::Compact); qDebug() << paramsMap; QString params; QMapIterator<QString, QString> i(paramsMap); while (i.hasNext()) { i.next(); params.append(i.key()).append("=").append(i.value().toUtf8().toPercentEncoding()).append("&"); } params.append(g_config.kjtSecretkey()); urlencodePercentConvert(params); qDebug() << params; QString sign = QCryptographicHash::hash(params.toLatin1(), QCryptographicHash::Md5).toHex(); QString url; url.append(g_config.kjtUrl()).append("?").append(params).append("&sign=").append(sign); qDebug() << url; _manager->get(QNetworkRequest(QUrl(url))); }
void OrderDownload::downloadOrderIdList() { QMap<QString, QString> paramsMap(g_paramsMap); paramsMap["method"] = "Order.OrderIDQuery"; // 由接口提供方指定的接口标识符 paramsMap["timestamp"] = QDateTime::currentDateTime().toString("yyyyMMddhhmmss"); // 调用方时间戳,格式为“4 位年+2 位月+2 位日+2 位小时(24 小时制)+2 位分+2 位秒” paramsMap["nonce"] = QString::number(100000 + qrand() % (999999 - 100000)); // QString::number(100000 + qrand() % (999999 - 100000)); /// 获取上次运行的结束日期,作为本次的起始日期 QDateTime dateStart; QSqlQuery query; query.prepare(tr("select 参数内容Date from 系统参数 where 参数分组='跨境通' and 参数名称='订单下载结束时间'")); if (!query.exec()) qInfo() << query.lastError().text(); else if (query.first()) dateStart = query.value(tr("参数内容Date")).toDateTime(); if (!dateStart.isValid()) dateStart = QDateTime(QDate(1900, 1, 1)); qDebug() << dateStart; _ohData._dateStart = dateStart; _ohData._dateEnd = QDateTime::currentDateTime(); // _ohData._dateEnd = QDateTime(QDate(2016, 3, 15), QTime(11, 0, 0)); // test QJsonObject json; json["OrderDateBegin"] = dateStart.toString("yyyy-MM-dd hh:mm:ss"); json["OrderDateEnd"] = _ohData._dateEnd.toString("yyyy-MM-dd hh:mm:ss"); QJsonDocument jsonDoc(json); QFile file("11.txt"); if (file.open(QIODevice::WriteOnly)) { QTextStream out(&file); out << jsonDoc.toJson(QJsonDocument::Compact); file.close(); } qDebug() << jsonDoc.toJson(QJsonDocument::Compact); paramsMap["data"] = jsonDoc.toJson(QJsonDocument::Compact); qDebug() << paramsMap; QString params; QMapIterator<QString, QString> i(paramsMap); while (i.hasNext()) { i.next(); params.append(i.key()).append("=").append(i.value().toUtf8().toPercentEncoding()).append("&"); } params.append(g_config.kjtSecretkey()); urlencodePercentConvert(params); qDebug() << params; QString sign = QCryptographicHash::hash(params.toLatin1(), QCryptographicHash::Md5).toHex(); QString url; url.append(g_config.kjtUrl()).append("?").append(params).append("&sign=").append(sign); qDebug() << url; _manager->get(QNetworkRequest(QUrl(url))); }
void MainWindow::on_pushButton_3_clicked() { _synchronizeType = STOrderCreateKJTToERP; _orderCreateKJTToERPData._success = true; // _orderCreateKJTToERP->run(ui->dateTimeEdit->dateTime(), ui->dateTimeEdit_2->dateTime()); QMap<QString, QString> paramsMap(g_paramsMap); paramsMap["method"] = "Order.OrderIDQuery"; // 由接口提供方指定的接口标识符 paramsMap["timestamp"] = QDateTime::currentDateTime().toString("yyyyMMddhhmmss"); // 调用方时间戳,格式为“4 位年+2 位月+2 位日+2 位小时(24 小时制)+2 位分+2 位秒” paramsMap["nonce"] = QString::number(100000 + qrand() % (999999 - 100000)); // QString::number(100000 + qrand() % (999999 - 100000)); /// 获取上次运行的结束日期,作为本次的起始日期 QDateTime dateStart; QSqlQuery query; query.prepare(tr("select 参数内容Date from 系统参数 where 参数分组='跨境通' and 参数名称='订单下载结束时间'")); if (!query.exec()) qInfo() << query.lastError().text(); else if (query.first()) dateStart = query.value(tr("参数内容Date")).toDateTime(); if (!dateStart.isValid()) dateStart = QDateTime(QDate(1900, 1, 1)); qDebug() << dateStart; _orderCreateKJTToERPData._dateStart = dateStart; _orderCreateKJTToERPData._dateEnd = QDateTime::currentDateTime(); QJsonObject json; json["OrderDateBegin"] = dateStart.toString("yyyy-MM-dd hh:mm:ss"); json["OrderDateEnd"] = _orderCreateKJTToERPData._dateEnd.toString("yyyy-MM-dd hh:mm:ss"); QJsonDocument jsonDoc(json); qDebug() << jsonDoc.toJson(QJsonDocument::Compact); paramsMap["data"] = jsonDoc.toJson(QJsonDocument::Compact); qDebug() << paramsMap; QString params; QMapIterator<QString, QString> i(paramsMap); while (i.hasNext()) { i.next(); params.append(i.key()).append("=").append(i.value().toUtf8().toPercentEncoding()).append("&"); } params.append(g_config.kjtSecretkey()); urlencodePercentConvert(params); qDebug() << params; QString sign = QCryptographicHash::hash(params.toLatin1(), QCryptographicHash::Md5).toHex(); QString url; url.append(g_config.kjtUrl()).append("?").append(params).append("&sign=").append(sign); qDebug() << url; _manager->get(QNetworkRequest(QUrl(url))); }
QByteArray FreyaBaseData::Serialize(const FreyaBaseData &data) { QByteArray ba; QDataStream stream(&ba, QIODevice::WriteOnly); QVariantMap varMap; varMap.insert(FREYALIB_TYP_CMD, data.command); varMap.insert(FREYALIB_TYP_ARG, data.arguments); QJsonDocument jsonDoc(QJsonObject::fromVariantMap(varMap)); stream<<data.dataID<<jsonDoc.toJson(); return ba; }
void SecretManager::saveCache() { QFile file(cachePath()); if (!file.open(QIODevice::WriteOnly)) { qDebug() << "Couldn't write samba file!"; return; } QJsonDocument jsonDoc(m_smbLoginObjs); file.write(jsonDoc.toJson()); file.close(); }
void MainWindow::orderInfoBatchGet() { _synchronizeType = STOrderInfoBatchGet; if (_orderCreateKJTToERPData._currentIndex >= _orderCreateKJTToERPData._total) { setOrderGetFromKJTTime(); // 执行结束,修改系统参数的时间 /// 执行结束,归为,30分钟后再次执行 _synchronizeType = STNone; _timer->start(1800000); return; } QMap<QString, QString> paramsMap(g_paramsMap); paramsMap["method"] = "Order.OrderInfoBatchGet"; // 由接口提供方指定的接口标识符 paramsMap["timestamp"] = QDateTime::currentDateTime().toString("yyyyMMddhhmmss"); // 调用方时间戳,格式为“4 位年+2 位月+2 位日+2 位小时(24 小时制)+2 位分+2 位秒” paramsMap["nonce"] = QString::number(100000 + qrand() % (999999 - 100000)); // QString::number(100000 + qrand() % (999999 - 100000)); QJsonObject json; QJsonArray orderIdListArray; foreach (int orderId, _orderCreateKJTToERPData._orderIdList.mid(_orderCreateKJTToERPData._currentIndex, 20)) { orderIdListArray.append(QJsonValue(orderId)); } _orderCreateKJTToERPData._currentIndex += 20; json["OrderIDList"] = orderIdListArray; QJsonDocument jsonDoc(json); qDebug() << jsonDoc.toJson(QJsonDocument::Compact); paramsMap["data"] = jsonDoc.toJson(QJsonDocument::Compact); qDebug() << paramsMap; QString params; QMapIterator<QString, QString> i(paramsMap); while (i.hasNext()) { i.next(); params.append(i.key()).append("=").append(i.value().toUtf8().toPercentEncoding()).append("&"); } params.append(g_config.kjtSecretkey()); urlencodePercentConvert(params); qDebug() << params; QString sign = QCryptographicHash::hash(params.toLatin1(), QCryptographicHash::Md5).toHex(); QString url; url.append(g_config.kjtUrl()).append("?").append(params).append("&sign=").append(sign); qDebug() << url; _manager->get(QNetworkRequest(QUrl(url))); }
QString AuthorizationHandler::getAuthErrorMessage() { QJsonObject errorJson; ErrorResponse::getInstance()->getErrorJson(ErrorReason::user_token_invalid,&errorJson); QJsonObject responseJson; responseJson.insert("error",errorJson); responseJson.insert("action","authorize"); responseJson.insert("requestId",m_pVissrequest -> getRequestId()); QJsonDocument jsonDoc(responseJson); QString message = jsonDoc.toJson(); return message; }
void SecretManager::loadCache() { //Migration for old config files, and rmove that codes for further FileUtils::migrateConfigFileFromCache("samba"); QFile file(cachePath()); if (!file.open(QIODevice::ReadOnly)) { qDebug() << "Couldn't write samba file!"; return; } QByteArray data = file.readAll(); QJsonDocument jsonDoc(QJsonDocument::fromJson(data)); m_smbLoginObjs = jsonDoc.object(); file.close(); qDebug() << m_smbLoginObjs; }
QString AuthorizationHandler::AddToAuthManager(QString zePayload) { QJsonDocument doc2; doc2 = QJsonDocument::fromJson(zePayload.toUtf8()); QJsonObject tokenpl = doc2.object(); QString issuer = tokenpl["iss"].toString(); TRACE("Server", QString("Token issuer : %1").arg(issuer)); QString valid_from = tokenpl["ValidFrom"].toString(); QString valid_to = tokenpl["ValidTo"].toString(); TRACE("Server", QString("Token valid from : %1, to : %2").arg(valid_from, valid_to)); QString path = tokenpl["path"].toString(); TRACE("Server", QString("Token signal path : %1").arg(path)); QString actions = tokenpl["actions"].toString(); TRACE("Server", QString("Token actions : %1").arg(actions)); // calulate TTL time to live in milliseconds qint64 validFrom = valid_from.toLongLong(); qint64 validTo = valid_to.toLongLong(); qint64 timeToLive = validTo - validFrom; // yes use current time but wtf TRACE("Server",QString("Auth TTL is : %1").arg(timeToLive)); QString time = QString::number(QDateTime::currentDateTime().toTime_t()); QJsonObject response; response.insert("action", "authorize"); response.insert("requestId", m_pVissrequest -> getRequestId()); response.insert("TTL", timeToLive); response.insert("timestamp", time); QJsonDocument jsonDoc(response); QString message = jsonDoc.toJson(); // create authData object and add to managerclass. AuthData authdata(path,actions,validFrom,validTo); AuthorizationManager* authMan = AuthorizationManager::getInstance(); authMan -> insertAuthData(m_pClient -> getSocket(),&authdata); return message; }
bool CharactersManager::writeCharacters() const { const QString path = QStandardPaths::writableLocation(QStandardPaths::StandardLocation::DataLocation); QFile saveFile(path); if(!saveFile.open(QFile::OpenModeFlag::WriteOnly)) { qWarning("Can't write file"); return false; } QJsonObject writeJson; writeCharacters(writeJson); QJsonDocument jsonDoc(writeJson); saveFile.write(jsonDoc.toJson()); return true; }
void MainWindow::on_pushButton_clicked() { QString url = "http://preapi.kjt.com/open.api"; //接口测试地址 QString secretkey = "kjt@345"; // 由接口提供方分配给接口调用方的验签密钥 QMap<QString, QString> paramsMap; paramsMap["appid"] = "seller345"; // 由接口提供方分配给接口调用方的身份标识符 paramsMap["method"] = "Product.ProudctInfoBatchGet"; // 由接口提供方指定的接口标识符 paramsMap["version"] = "1.0"; // 由接口提供方指定的接口版本 paramsMap["format"] = "json"; // 接口返回结果类型:json paramsMap["timestamp"] = QDateTime::currentDateTime().toString("yyyyMMddhhmmss"); // 调用方时间戳,格式为“4 位年+2 位月+2 位日+2 位小时(24 小时制)+2 位分+2 位秒” // qsrand(time(NULL)); paramsMap["nonce"] = QString::number(100000 + qrand() % (999999 - 100000)); // QString::number(100000 + qrand() % (999999 - 100000)); QJsonObject json; QJsonArray jsonArray; jsonArray.append(QJsonValue("345JPA018400002")); json["ProductIDs"] = jsonArray; json["SaleChannelSysNo"] = g_config.kjtSaleschannelsysno(); QJsonDocument jsonDoc(json); qDebug() << jsonDoc.toJson(QJsonDocument::Compact); paramsMap["data"] = jsonDoc.toJson(QJsonDocument::Compact); qDebug() << paramsMap; QString params; QMapIterator<QString, QString> i(paramsMap); while (i.hasNext()) { i.next(); params.append(i.key()).append("=").append(i.value().toLatin1().toPercentEncoding()).append("&"); } params.append(secretkey); qDebug() << params; QString sign = QCryptographicHash::hash(params.toLatin1(), QCryptographicHash::Md5).toHex(); url.append("?").append(params).append("&sign=").append(sign); qDebug() << url; _manager->get(QNetworkRequest(QUrl(url))); }
void CClientApp::ReplyUDPServerInfo() { QString currentIP = ""; for (const QHostAddress &address : QNetworkInterface::allAddresses()) { if (address.protocol() == QAbstractSocket::IPv4Protocol && address != QHostAddress(QHostAddress::LocalHost)) { currentIP = address.toString(); } } currentIP = "192.168.0.120"; if (currentIP.isEmpty()) { return; } QJsonObject jsonObj; jsonObj.insert("uid", "fakemonitor"); jsonObj.insert("DisplayName", "Monitor Device"); jsonObj.insert("ip", currentIP); jsonObj.insert("type", "xxXxx"); QJsonDocument jsonDoc(jsonObj); QByteArray bytedata = jsonDoc.toJson(); //broadCastSendSocket->write(bytedata); QHostAddress address; address.setAddress(serverIP); quint64 byteWritten = broadCastSendSocket->writeDatagram(bytedata.data(), bytedata.size(), address, 3479); bool bWritten = byteWritten > 0;//broadCastSendSocket->waitForBytesWritten(); QString result = (bWritten ? "true" : "false"); QString kText("CurrentIP: " + currentIP + "\n"); kText += "WritingServer: " + QString::fromLatin1(bytedata) + "\n"; kText += "UDP Written: " + QString::number(byteWritten) + "\n"; Q_EMIT m_pSender->commandReturned(kText, true); }
void MainWindow::synchronizeProductCreate() { if (_productIdQueue.isEmpty()) { on_pushButton_3_clicked(); return; } _currentLocalId = _productIdQueue.dequeue(); QSqlQuery query; query.prepare(tr("select * from 商品 " "where 商品KID=:id ")); query.bindValue(":id", _currentLocalId); if (!query.exec()) { // qFatal(query.lastError().text().toStdString().c_str()); qInfo() << query.lastError().text(); return; } if (query.first()) { /// 商品属于保税仓(p1=1),则上传,否则跳过 if (1 != query.value("p1").toInt()) { _timer->start(1000); return; } qDebug() << query.value(tr("商品KID")).toInt() << "\t" << query.value(tr("商品名称")).toString(); QString url = "http://preapi.kjt.com/open.api"; //接口测试地址 QString secretkey = "kjt@345"; // 由接口提供方分配给接口调用方的验签密钥 QMap<QString, QString> paramsMap; paramsMap["appid"] = "seller345"; // 由接口提供方分配给接口调用方的身份标识符 paramsMap["method"] = "Product.ProductCreate"; // 由接口提供方指定的接口标识符 paramsMap["version"] = "1.0"; // 由接口提供方指定的接口版本 paramsMap["format"] = "json"; // 接口返回结果类型:json paramsMap["timestamp"] = QDateTime::currentDateTime().toString("yyyyMMddhhmmss"); // 调用方时间戳,格式为“4 位年+2 位月+2 位日+2 位小时(24 小时制)+2 位分+2 位秒” paramsMap["nonce"] = QString::number(100000 + qrand() % (999999 - 100000)); // QString::number(100000 + qrand() % (999999 - 100000)); QJsonObject json; json["IsSettledDown"] = query.value(tr("入住商品")).toInt(); // 是否为入驻商品。0 = 否 1 = 是 json["MerchantProductID"] = query.value(tr("商品KID")).toString(); // 商户商品 ID json["ProductName"] = query.value(tr("商品名称")).toString(); // 商品名称 json["BriefName"] = "HW"; // query.value(tr("品名简称")).toString(); // 商品简称 json["BrandCode"] = "950"; // query.value(tr("商品品牌ID")).toString(); // 品牌编号 code json["C3Code"] = "A46"; // query.value(tr("商品分类ID")).toString(); // 三级分类 code json["ProductTradeType"] = query.value(tr("贸易类型")).toInt(); // 贸易类型 0 = 直邮 1 = 自贸 json["OriginCode"] = "JP"; // query.value(tr("产地")).toString(); // 产地,两位字母 json["ProductDesc"] = query.value(tr("商品简述")).toString(); // 商品简述 QJsonObject productPriceInfoJsonObject; // 商品价格信息 productPriceInfoJsonObject["CurrentPrice"] = query.value(tr("销售价")).toDouble(); json["ProductPriceInfo"] = productPriceInfoJsonObject; QJsonObject productEntryInfoJsonObject; // 商品备案信息 productEntryInfoJsonObject["ProductNameEN"] = query.value(tr("商品英文名称")).toString(); productEntryInfoJsonObject["Specifications"] = tr("30*10片"); // ?? 30*10 // query.value(tr("商品规格")).toString(); productEntryInfoJsonObject["TaxUnit"] = "g"; // query.value(tr("计税单位")).toString(); // 计税单位, 不能为空!! /// 海关关区根据商品所入仓库对应的四位数关区代码填写 /// 2244 – 直邮进口模式 /// 2216 – 浦东机场自贸模式 /// 2249 – 洋山港自贸模式 /// 2218 – 外高桥自贸模式 productEntryInfoJsonObject["CustomsCode"] = "2244"; // query.value(tr("关区代码")).toString(); // 海关关区根据商品所入仓库对应的四位数关区代码填写 productEntryInfoJsonObject["StoreType"] = 0; // query.value(tr("运输方式")).toInt(); // 运输方式(默认0,常温) 0 = 常温 1 = 冷藏 2 = 冷冻 productEntryInfoJsonObject["ApplyUnit"] = "123"; // query.value(tr("申报单位")).toString(); // 申报单位, 不能为空 productEntryInfoJsonObject["ApplyQty"] = 123; // query.value(tr("申报数量")).toInt(); // 申报数量, 不能为空 productEntryInfoJsonObject["GrossWeight"] = 12.0; // query.value(tr("商品毛重")).toDouble(); productEntryInfoJsonObject["SuttleWeight"] = 10.0; // query.value(tr("商品净重")).toDouble(); json["ProductEntryInfo"] = productEntryInfoJsonObject; QJsonObject productMaintainInfoJsonObject; // 商品维护信息 productMaintainInfoJsonObject["ProductModel"] = "123"; // query.value(tr("商品型号")).toString(); productMaintainInfoJsonObject["Weight"] = 10.0; // query.value(tr("商品物流重量")).toDouble(); productMaintainInfoJsonObject["Length"] = query.value(tr("长度")).toDouble(); productMaintainInfoJsonObject["Width"] = query.value(tr("宽度")).toDouble(); productMaintainInfoJsonObject["Height"] = query.value(tr("高度")).toDouble(); json["ProductMaintainInfo"] = productMaintainInfoJsonObject; QJsonDocument jsonDoc(json); // QFile file("11.txt"); // if (file.open(QIODevice::WriteOnly)) // { // QTextStream out(&file); // out << jsonDoc.toJson(QJsonDocument::Compact); // file.close(); // } qDebug() << jsonDoc.toJson(QJsonDocument::Compact); paramsMap["data"] = jsonDoc.toJson(QJsonDocument::Compact); qDebug() << paramsMap; QString params; QMapIterator<QString, QString> i(paramsMap); while (i.hasNext()) { i.next(); params.append(i.key()).append("=").append(i.value().toLatin1().toPercentEncoding()).append("&"); } // params.append(secretkey); QString sign = QCryptographicHash::hash(QString(params + secretkey).toLatin1(), QCryptographicHash::Md5).toHex(); params.append("sign=").append(sign); qDebug() << params.toLatin1(); // url.append("?").append(params).append("&sign=").append(sign); qDebug() << url; QNetworkRequest req; req.setUrl(QUrl(url)); req.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); req.setHeader(QNetworkRequest::ContentLengthHeader, params.toLatin1().length()); _manager->post(req, params.toLatin1()); } }