voltrue2 / in-app-purchase

A Node.js module for in-App-Purchase for iOS, Android, Amazon and Windows.
http://iap.gracenode.org
Other
1.04k stars 287 forks source link

Error in `internal/crypto/sig.js:80` #327

Closed MobileVet closed 3 years ago

MobileVet commented 3 years ago

Setup

const iap = require("in-app-purchase");
iap.config({
  googleServiceAccount: {
    clientEmail: process.env["GOOGLE_CLIENT_EMAIL"],
    privateKey: process.env["GOOGLE_PRIVATE_KEY"]
  },
  test: false, 
  verbose: true
});

const validatePurchase = async purchaseInfo => {
    try {
      await iap.setup();
      const validationResponse = await iap.validate(purchaseInfo);      
    }
    catch (error) {
        console.log(error)
    }}

Output

[1598459066450][VERBOSE] GOOGLE API Validate this {packageName: 'com.pocketprep.msw', productId: 'premium', purchaseToken: 'cefcetcetcetc'}

Error: error:0909006C:PEM routines:get_name:no start line
    at Sign.sign (internal/crypto/sig.js:80:26)
    at sign (/Users/rwitman/Development/server/node_modules/jwt-simple/lib/jwt.js:184:57)
    at Object.jwt_encode [as encode] (/Users/rwitman/Development/server/node_modules/jwt-simple/lib/jwt.js:147:17)
    at _getToken (/Users/rwitman/Development/server/node_modules/in-app-purchase/lib/googleAPI.js:139:21)
    at Object.validatePurchase (/Users/rwitman/Development/server/node_modules/in-app-purchase/lib/googleAPI.js:81:5)
    at Object.module.exports.validatePurchase (/Users/rwitman/Development/server/node_modules/in-app-purchase/lib/google.js:172:26)
    at Object.module.exports.validate (/Users/rwitman/Development/server/node_modules/in-app-purchase/index.js:143:20)
    at /Users/rwitman/Development/server/node_modules/in-app-purchase/index.js:125:28
    at new Promise (<anonymous>)
    at Object.module.exports.validate (/Users/rwitman/Development/server/node_modules/in-app-purchase/index.js:124:16)
    at /Users/me/Development/server/dist/cloud/playStore-utils.js:68:42
    at step (/Users/me/Development/server/dist/cloud/playStore-utils.js:33:23)
    at Object.next (/Users/me/Development/server/dist/cloud/playStore-utils.js:14:53)
    at fulfilled (/Users/me/Development/server/dist/cloud/playStore-utils.js:5:58)
    at process._tickCallback (internal/process/next_tick.js:68:7) {stack: 'Error: error:0909006C:PEM routines:get_name:n…Callback (internal/process/next_tick.js:68:7)', message: 'error:0909006C:PEM routines:get_name:no start line'}
MobileVet commented 3 years ago

Resolved... had to replace the \n in the private key. See here: https://github.com/auth0/node-jsonwebtoken/issues/642