kandi background
Explore Kits

packr | Packages your JAR , assets and a JVM for distribution | Runtime Evironment library

 by   libgdx C Version: 2.1 License: Apache-2.0

 by   libgdx C Version: 2.1 License: Apache-2.0

kandi X-RAY | packr Summary

packr is a C library typically used in Server, Runtime Evironment applications. packr has no bugs, it has no vulnerabilities, it has a Permissive License and it has high support. You can download it from GitHub.
Packages your JAR, assets and a JVM for distribution on Windows, Linux and macOS, adding a native executable file to make it appear like a native app. Packr is most suitable for GUI applications, such as games made with libGDX. On the topic of games, Packr version 2.4.2+ supports Java 14 and the Z garbage collector has been verified to work. Because who doesn't want GC pause times guaranteed to not exceed 10ms with work in progress for sub 1ms GC pauses. When bundling Java 14+ make sure to use --useZgcIfSupportedOs instead of passing --vmargs XX:+UseZGC because versions of Windows before Windows 10 1803 are not supported by the Z garbage collector. Starting with Java 14, there's a new tool that is included with the JDK called jpackage. There's a lot of overlap between jpackage and packr. Considering jpackage is supported by the broader OpenJDK community, it's worth looking into. It might be a better solution for your product.
Support
Support
Quality
Quality
Security
Security
License
License
Reuse
Reuse

kandi-support Support

  • packr has a highly active ecosystem.
  • It has 2435 star(s) with 170 fork(s). There are 80 watchers for this library.
  • It had no major release in the last 12 months.
  • There are 25 open issues and 150 have been closed. On average issues are closed in 289 days. There are 4 open pull requests and 0 closed requests.
  • It has a negative sentiment in the developer community.
  • The latest version of packr is 2.1
packr Support
Best in #Runtime Evironment
Average in #Runtime Evironment
packr Support
Best in #Runtime Evironment
Average in #Runtime Evironment

quality kandi Quality

  • packr has 0 bugs and 87 code smells.
packr Quality
Best in #Runtime Evironment
Average in #Runtime Evironment
packr Quality
Best in #Runtime Evironment
Average in #Runtime Evironment

securitySecurity

  • packr has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
  • packr code analysis shows 0 unresolved vulnerabilities.
  • There are 3 security hotspots that need review.
packr Security
Best in #Runtime Evironment
Average in #Runtime Evironment
packr Security
Best in #Runtime Evironment
Average in #Runtime Evironment

license License

  • packr is licensed under the Apache-2.0 License. This license is Permissive.
  • Permissive licenses have the least restrictions, and you can use them in most projects.
packr License
Best in #Runtime Evironment
Average in #Runtime Evironment
packr License
Best in #Runtime Evironment
Average in #Runtime Evironment

buildReuse

  • packr releases are available to install and integrate.
  • Installation instructions, examples and code snippets are available.
  • It has 1898 lines of code, 92 functions and 16 files.
  • It has high code complexity. Code complexity directly impacts maintainability of the code.
packr Reuse
Best in #Runtime Evironment
Average in #Runtime Evironment
packr Reuse
Best in #Runtime Evironment
Average in #Runtime Evironment
Top functions reviewed by kandi - BETA

kandi has reviewed packr and discovered the below as its top functions. This is intended to give you an instant insight into packr implemented functionality, and help decide if they suit your requirements.

  • The main entry point
    • Tries to shrink the JRE
    • Extracts the JDK from the configuration
    • Removes any platform libraries that match the given platform
  • Read config json file
    • Append to list

      Get all kandi verified functions for this library.

      Get all kandi verified functions for this library.

      packr Key Features

      Packages your JAR, assets and a JVM for distribution on Windows, Linux and Mac OS X

      packr Examples and Code Snippets

      Community Discussions

      Trending Discussions on packr
      • Paypal IPN Listener Help Needed
      • missing go.sum entry for module providing package <package_name>
      • Case statement check for negative value
      • Can I not create nested packages within one?
      • Can't serve vue.js SPA app using the NoRoute function
      Trending Discussions on packr

      QUESTION

      Paypal IPN Listener Help Needed

      Asked 2021-Jul-13 at 17:09

      Good day everyone, I've ran into some trouble with PayPal IPN. It appears PayPal does reach my PHP listener and gets a 200 return, and once the transaction is finished, I am returned to my website and get a positive message, that my transaction was successful, but the account is not credited with the purchased goods. I've pretty much hit a wall and I'm unsure of what might be the problem. Am I using outdated commands? Anything seems unusual? Thanks for your time!

      <?php
      require_once('globals_nonauth.php');
      
      // read the post from PayPal system and add 'cmd'
      $req = 'cmd=_notify-validate';
      
      foreach ($_POST as $key => $value)
      {
          $value = urlencode(stripslashes($value));
          $req .= "&$key=$value";
      }
      
      // post back to PayPal system to validate
      $header .= "POST /cgi-bin/webscr HTTP/1.0\r\n";
      $header .= "Content-Type: application/x-www-form-urlencoded\r\n";
      $header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
      $fp = fsockopen('www.paypal.com', 80, $errno, $errstr, 30);
      
      // assign posted variables to local variables
      $item_name = $_POST['item_name'];
      $item_number = $_POST['item_number'];
      $payment_status = $_POST['payment_status'];
      $payment_amount = $_POST['mc_gross'];
      $payment_currency = $_POST['mc_currency'];
      $txn_id = $_POST['txn_id'];
      $receiver_email = $_POST['receiver_email'];
      $payer_email = $_POST['payer_email'];
      
      if (!$fp)
      {
          // HTTP ERROR
      }
      else
      {
          fputs($fp, $header . $req);
          while (!feof($fp))
          {
              $res = fgets($fp, 1024);
              if (strcmp($res, "VERIFIED") == 0)
              {
                  $txn_db = $db->escape(stripslashes($txn_id));
                  // check the payment_status is Completed
                  if ($payment_status != "Completed")
                  {
                      fclose($fp);
                      die("");
                  }
                  $dp_check =
                          $db->query(
                                  "SELECT COUNT(`dpID`)
                                   FROM `dps_accepted`
                                   WHERE `dpTXN` = '{$txn_db}'");
                  if ($db->fetch_single($dp_check) > 0)
                  {
                      $db->free_result($dp_check);
                      fclose($fp);
                      die("");
                  }
                  $db->free_result($dp_check);
                  // check that txn_id has not been previously processed
                  // check that receiver_email is your Primary PayPal email
                  if ($receiver_email != $set['paypal'])
                  {
                      fclose($fp);
                      die("");
                  }
                  // check that payment_amount/payment_currency are correct
                  if ($payment_currency != "USD")
                  {
                      fclose($fp);
                      die("");
                  }
                  // parse for pack
                  $packr = explode('|', $item_name);
                  if (str_replace("www.", "", $packr[0])
                          != str_replace("www.", "", $_SERVER['HTTP_HOST']))
                  {
                      fclose($fp);
                      die("");
                  }
                  if ($packr[1] != "DP")
                  {
                      fclose($fp);
                      die("");
                  }
                  $pack = $packr[2];
                  if ($pack != 1 and $pack != 2 and $pack != 3 and $pack != 4
                          and $pack != 5)
                  {
                      fclose($fp);
                      die("");
                  }
                  if (($pack == 1 || $pack == 2 || $pack == 3)
                          && $payment_amount != "3.00")
                  {
                      fclose($fp);
                      die("");
                  }
                  if ($pack == 4 && $payment_amount != "5.00")
                  {
                      fclose($fp);
                      die("");
                  }
                  if ($pack == 5 && $payment_amount != "10.00")
                  {
                      fclose($fp);
                      die("");
                  }
                  // grab IDs
                  $buyer = abs((int) $packr[3]);
                  $for = $buyer;
                  // all seems to be in order, credit it.
                  if ($pack == 1)
                  {
                      $db->query(
                              "UPDATE `users` AS `u`
                               LEFT JOIN `userstats` AS `us`
                               ON `u`.`userid` = `us`.`userid`
                               SET `u`.`money` = `u`.`money` + 5000,
                               `u`.`crystals` = `u`.`crystals` + 50,
                               `us`.`IQ` = `us`.`IQ` + 50,
                               `u`.`donatordays` = `u`.`donatordays` + 30
                               WHERE `u`.`userid` = {$for}");
                      $d = 30;
                      $t = "standard";
                  }
                  else if ($pack == 2)
                  {
                      $db->query(
                              "UPDATE `users` AS `u`
                               SET `u`.`crystals` = `u`.`crystals` + 100,
                               `u`.`donatordays` = `u`.`donatordays` + 30
                               WHERE `u`.`userid` = {$for}");
                      $d = 30;
                      $t = "crystals";
                  }
                  else if ($pack == 3)
                  {
                      $db->query(
                              "UPDATE `users` AS `u`
                               LEFT JOIN `userstats` AS `us`
                               ON `u`.`userid` = `us`.`userid`
                               SET `us`.`IQ` = `us`.`IQ` + 50,
                               `u`.`donatordays` = `u`.`donatordays` + 30
                               WHERE `u`.`userid` = {$for}");
                      $d = 30;
                      $t = "iq";
                  }
                  else if ($pack == 4)
                  {
                      $db->query(
                              "UPDATE `users` AS `u`
                               LEFT JOIN `userstats` AS `us`
                               ON `u`.`userid` = `us`.`userid`
                               SET `u`.`money` = `u`.`money` + 15000,
                               `u`.`crystals` = `u`.`crystals` + 75,
                               `us`.`IQ` = `us`.`IQ` + 80,
                               `u`.`donatordays` = `u`.`donatordays` + 55
                               WHERE `u`.`userid` = {$for}");
                      $d = 55;
                      $t = "fivedollars";
                  }
                  else if ($pack == 5)
                  {
                      $db->query(
                              "UPDATE `users` AS `u`
                               LEFT JOIN `userstats` AS `us`
                               ON `u`.`userid` = `us`.`userid`
                               SET `u`.`money` = `u`.`money` + 35000,
                               `u`.`crystals` = `u`.`crystals` + 160,
                               `us`.`IQ` = `us`.`IQ` + 180,
                               `u`.`donatordays` = `u`.`donatordays` + 115
                               WHERE `u`.`userid` = {$for}");
                      $d = 115;
                      $t = "tendollars";
                  }
                  // process payment
                  event_add($for,
                          "Your \${$payment_amount} Pack {$pack} Donator Pack has been successfully credited to you.",
                          $c);
                  $db->query(
                          "INSERT INTO `dps_accepted`
                           VALUES(NULL, {$buyer}, {$for}, '$t', " . time()
                                  . ", '$txn_db')");
              }
              else if (strcmp($res, "INVALID") == 0)
              {
              }
          }
      
          fclose($fp);
      }
      

      ANSWER

      Answered 2021-Jul-13 at 17:09

      For the case of PayPal receiving a 200, the IPN has been successfully sent, so you need to debug your code. Log every step to a file, test IPNs using the simulator or with sandbox mode transactions (check for test_ipn=1, use this to determine whether to post back to the "sandbox." endpoint, and don't break if a test IPN doesn't verify--just log it) -- and thus using your logging output, figure out where the hangup is as far as processing your business logic successfully.

      Source https://stackoverflow.com/questions/68353866

      Community Discussions, Code Snippets contain sources that include Stack Exchange Network

      Vulnerabilities

      No vulnerabilities reported

      Install packr

      The latest build is available for download here. Resource artifacts are available at Maven Central.
      Until Maven central publishing is working, the following Maven repository is available: http://artifactory.nimblygames.com/artifactory/ng-public/

      Support

      The code is licensed under the Apache 2 license. By contributing to this repository, you automatically agree that your contribution can be distributed under the Apache 2 license by the author of this project. You will not be able to revoke this right once your contribution has been merged into this repository.

      Find more information at:

      Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from
      over 650 million Knowledge Items
      Find more libraries
      Reuse Solution Kits and Libraries Curated by Popular Use Cases
      Explore Kits

      Save this library and start creating your kit

      Install
      Clone
      • https://github.com/libgdx/packr.git

      • gh repo clone libgdx/packr

      • git@github.com:libgdx/packr.git

      Share this Page

      share link

      See Similar Libraries in

      Consider Popular Runtime Evironment Libraries
      Try Top Libraries by libgdx
      Compare Runtime Evironment Libraries with Highest Support
      Compare Runtime Evironment Libraries with Highest Quality
      Compare Runtime Evironment Libraries with Highest Security
      Compare Runtime Evironment Libraries with Permissive License
      Compare Runtime Evironment Libraries with Highest Reuse
      Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from
      over 650 million Knowledge Items
      Find more libraries
      Reuse Solution Kits and Libraries Curated by Popular Use Cases
      Explore Kits

      Save this library and start creating your kit