Commit 9cd4db4fedf501fe56490a69340d1db9709c9dca

Authored by Nattapon Wongpaet
1 parent 877e4be9
Exists in master and in 1 other branch develop

update mockup

app.js
... ... @@ -294,6 +294,7 @@ app.post('/api/shop-cdns/upload', (req, res) => {
294 294 });
295 295  
296 296 var multipart = require('connect-multiparty');
  297 +const { sortedUniq, result, reject } = require('lodash');
297 298 var multipartMiddleware = multipart({ uploadDir: './img' });
298 299  
299 300 app.post('/api/shop-cdns/upload2', multipartMiddleware, async (req, res) => {
... ... @@ -391,6 +392,8 @@ app.post('/privilege/v1/history/delete', require('./privilege').deleteCustomer);
391 392  
392 393 app.post('/v1/MVP/enq/getMobileOfferInventory/', require('./true').getMobileOfferInventory);
393 394  
  395 +app.get('/api/callback', require('./line').callback);
  396 +
394 397 app.get('/api/random/leader', function (req, res) {
395 398 const months = ["เกมส์", "โน๊ต setup", "โน๊ต วัศรุต", "แบงค์", "มอส", "ปิ๊ค", "เต้นพอไม่ต้องตื่น", "เปา", "นัท", "kik", "new", "ann","na", "boky", "eve", "miki", "pla", "sugar"];
396 399 // const months = [ "ann"];
... ... @@ -413,6 +416,76 @@ console.log(object);
413 416 res.send(object);
414 417 })
415 418  
  419 +app.get('/api/parallel/request', async function (req, res) {
  420 + let dataList = ['001','002','003','004','005','006','007','008','009','010','011','012','013','014','015','016','017','018','019','020']
  421 +
  422 + let response = await completelyReq(dataList)
  423 + console.log('response to client', response)
  424 +
  425 + res.send(response)
  426 +})
  427 +
  428 +var parallelLimit = require('run-parallel-limit')
  429 +
  430 +async function completelyReq(dataList) {
  431 + let limit = 10
  432 + let length = dataList.length > limit ? limit : dataList.length;
  433 + let tempList = []
  434 + for(let i=0; i<dataList.length; i++) {
  435 + // console.log(i)
  436 + // console.log(dataList[i])
  437 + tempList.push((cb) => {
  438 + reqFunc(dataList[i], )
  439 + });
  440 + // dataList.shift();
  441 + }
  442 +
  443 + return new Promise( resolve => {
  444 + parallelLimit(tempList, 10, function (err, results) {
  445 + if(err) {console.log(err); reject(err)};
  446 + console.log(results)
  447 + resolve(results)
  448 + })
  449 + })
  450 +
  451 + // return await Promise.all(tempList);
  452 +}
  453 +
  454 +function reqFunc(arg, cb) {
  455 + // console.log(tempList)
  456 + console.log('send req ', arg, new Date())
  457 + unirest
  458 + .post('http://mockbin.com/request')
  459 + .headers({'Accept': 'application/json', 'Content-Type': 'application/json'})
  460 + .send({ "parameter": 23, "foo": "bar", "seq": arg })
  461 + .then((response) => {
  462 + // console.log(response.body.postData.text)
  463 + // let delay = Math.floor(Math.random()*10000)
  464 + console.log('recieve response ' , response.body.postData.text, new Date())
  465 + cb(null, response.body.postData.text)
  466 +
  467 + // setTimeout(function () {
  468 + // cb(null, response.body.postData.text)
  469 + // }, 100)
  470 + })
  471 +}
  472 +
  473 +// function check(data, dataList, tempList) {
  474 +// return new Promise(async (resolve, reject) => {
  475 +// // console.log('tempList.length', tempList.length)
  476 +// if(tempList.length == 20) {
  477 +// // let allResponse = await Promise.all(tempList);
  478 +// // console.log(allResponse)
  479 +// resolve(tempList)
  480 +// } else {
  481 +// console.log(tempList)
  482 +// tempList.push(reqFunc(dataList[0], dataList, tempList))
  483 +// dataList.shift();
  484 +// }
  485 +// })
  486 +
  487 +// }
  488 +
416 489 app.get('/linenoti', require('./line').lineNoti)
417 490  
418 491 app.listen(port, () => console.log('app listening on port ' + port + '!'))
419 492 \ No newline at end of file
... ...
apple.js
... ... @@ -111,7 +111,7 @@ module.exports.verifyReceipt = async (req, res) =&gt; {
111 111 }
112 112 ],
113 113 "environment":"Sandbox",
114   - "latest_receipt":"CshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fbCshX8fb==",
  114 + "latest_receipt":"CshX8fbCshX8fbCshX8fbCsh==",
115 115 "pending_renewal_info":[],
116 116 "receipt":{
117 117 "in_app":[],
... ... @@ -149,7 +149,7 @@ module.exports.verifyReceipt = async (req, res) =&gt; {
149 149 "latest_receipt_info": [],
150 150 "pending_renewal_info": [],
151 151 "receipt": {},
152   - "status": "1",
  152 + "status": "21007",
153 153 "environment": "Sandbox"
154 154 }
155 155  
... ... @@ -157,6 +157,10 @@ module.exports.verifyReceipt = async (req, res) =&gt; {
157 157 retrySuccess -= 1
158 158 res.send(responseError)
159 159 } else {
160   - res.send(responseError)
  160 + if(req.headers['x-redirect-url'] == 'https://sandbox.itunes.apple.com/verifyReceipt') {
  161 + res.send(response)
  162 + } else {
  163 + res.send(responseError)
  164 + }
161 165 }
162 166 }
... ...
d01.js
... ... @@ -256,7 +256,7 @@ module.exports.getAddress = async (req, res) =&gt; {
256 256 "resultDescription": "Data not found"
257 257 }
258 258  
259   - res.send(response)
  259 + // res.send(response)
260 260 }
261 261  
262 262 module.exports.postAddress = async (req, res) => {
... ...
line.js
... ... @@ -30,4 +30,33 @@ module.exports.lineNoti = async (req, res) =&gt; {
30 30 });
31 31 });
32 32  
  33 +}
  34 +
  35 +module.exports.callback = async (req, res) => {
  36 + console.log('===== GET lineCallback =====')
  37 + console.log('url', req.originalUrl);
  38 + console.log('headers', req.headers);
  39 + console.log('query', req.query);
  40 + console.log('params', req.params);
  41 + console.log('body', req.body);
  42 +
  43 + unirest.post('https://api.line.me/oauth2/v2.1/token')
  44 + .form({
  45 + grant_type:"authorization_code",
  46 + code:req.query.code,
  47 + redirect_uri:"http://127.0.0.1:3002/api/callback",
  48 + client_id:"1655116583",
  49 + client_secret:"90ada7fc7b535e514dfa3d84c20c33ff"
  50 + }).end(function (response) {
  51 + unirest.get('https://api.line.me/v2/profile')
  52 + .headers({
  53 + Authorization: `Bearer ${response.body.access_token}`
  54 + }).end(function (response) {
  55 + res.send({
  56 + userId : response.body.userId,
  57 + date: req.query.state
  58 + })
  59 + });
  60 + });
  61 +
33 62 }
34 63 \ No newline at end of file
... ...
package-lock.json
... ... @@ -2121,6 +2121,11 @@
2121 2121 "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz",
2122 2122 "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c="
2123 2123 },
  2124 + "run-parallel-limit": {
  2125 + "version": "1.0.6",
  2126 + "resolved": "https://registry.npmjs.org/run-parallel-limit/-/run-parallel-limit-1.0.6.tgz",
  2127 + "integrity": "sha512-yFFs4Q2kECi5mWXyyZj3UlAZ5OFq5E07opABC+EmhZdjEkrxXaUwFqOaaNF4tbayMnBxrsbujpeCYTVjGufZGQ=="
  2128 + },
2124 2129 "safe-buffer": {
2125 2130 "version": "5.1.2",
2126 2131 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
... ...
package.json
... ... @@ -24,6 +24,7 @@
24 24 "multiparty": "^4.2.1",
25 25 "n_": "^2.0.2",
26 26 "node-json-config": "0.0.5",
  27 + "run-parallel-limit": "^1.0.6",
27 28 "unirest": "^0.6.0"
28 29 }
29 30 }
... ...