alipay / alipay-sdk-nodejs-all

支付宝开放平台 Alipay SDK for Node.js
https://docs.open.alipay.com/54/103419/
Other
407 stars 64 forks source link

nodejs.Error: error:0D0680A8:asn1 encoding routines:asn1_check_tlen:wrong tag #60

Closed js1121302139 closed 1 year ago

js1121302139 commented 4 years ago

alipay.ts `import { Controller } from 'egg'; import AlipaySdk from 'alipay-sdk'; const fs = require('fs');

export default class aliPay extends Controller { async pay() { console.log('===================================='); console.log(fs.readFileSync('./config/private-key.pem')); console.log('===================================='); const { ctx } = this; const alipaySdk = new AlipaySdk({ appId: '2016102100729109', gateway: 'https://openapi.alipaydev.com/gateway.do', privateKey: fs.readFileSync('./config/private-key.pem', 'ascii'), alipayPublicKey: fs.readFileSync('./config/public-key.pem', 'ascii') }); const result = await alipaySdk.exec('alipay.system.oauth.token', { grantType: 'authorization_code', code: 'code', refreshToken: 'token' }); ctx.body = result; // const result = await alipaySdk.exec( // 'alipay.trade.page.pay', // {}, // { formData: formData } // ); // ctx.success({ code: 0, data: { result } }); } } public-key.pem MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlud7LEg2vsDnYvyUWByjOnpvrSOil6MUSW7DLOn6zuRG2NAy0D0L9ubGVBiDUTn/CowN1x+LhNQ1323dwarH+ZIFYGeUt5UwKmeHqEKMLS1F4lnjGdxhg1PJ2ASSKaLHh3lum2JZU6Yt0T+wgBdV5hbXd+RAL+L1bTYGqr4918W+WNBAw7F019gZN9ZQ9WRpd+bTZNLu+VJvOgyQQsbfgzuiB28cm3aLvVBP2VW7yhgHie0RsxfGhUtK70907LzmDRr4yprq/g+iBvlANRyngG8Uu8BRm0Ryu8I8B/eWNIPN1wY6eE1vWJD0dVaQzTOQANXY/8JQmsYvDlHlLEIJBQIDAQAB private-key.pem MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCWZoXQIW0H5E5a5jlfKBNx5bLQ1vaOLYnjIECLJzqWu1qKM20olZwUEpPcU5SbglQLzqj25sxuXx2L3ytBaprnNDou0FvPMQxoylAL1lt5ZIiQgfMac+T05UKnmEQuMyJcgA0pUVe1ztjizUO4MvTtfpmtD3FtIjOkt0+ryHeQVuYQuHpZSlWnYAhDzANeewvNCnr+GfDbDC7z7l+L+3+ny/HezJOlNeFY52ey7vAEt6z9itPA+TEZwaa9DLLt/UojSZ4dS0nCixTr+nKRHGGIk/Na7LaoetHO8KkyAxs0mgZqO0zonbc/ASAUURezva+2j+wjzyG29HnoDW7iVHqhAgMBAAECggEAHa11UjCGVzxRydYMFB7QV3U/573DQSLzRoIiulKvWPb3UrX7IDsFZWCVFLDZbiY1d278IFxCkrTqG6OZ4Xqrvlur73jl5OiEzli9mthdjIKt//Xkhp+/2iMzF+cP7R3h9ea+shx+9j0uxvJCHqLPed21bVTSyPoqvqH9cqRIE48DkkIQyK/gDUBEmREDeljWbjnTC/AjqQHWNTdRUGeVOrtnDXSYlUiY2ehvAYx95iWe9lENy0fVmTq8IrdfKadpVghb4Xik3qkSASHK0nRjuokUsd/Tz8oVV9p1g+Q0rBWyU4cbw3qrHPBMdebQl80sH15AJjbItA/Jg82yLq98EQKBgQDpeDSBFzieXmE7y6Lks0Bvhke4EBAHuAJsXQhhkQAY3NMLppBGW/FFgqcmcaUlSPgS7HTUps4Mchj+Ypc5sutcZl6I0OO0a7N3qaBBnDS5E3Nol0LsZbmBhWOiE0APCNnzSDo9KqE7dXxocR++6VHkyTB2ja/xgVf4diCgtovLlwKBgQCk6h8IpPTMpHIh4cJoev//1BkgGAWkipSVjYZJ1/cX4V5gioObFheXHZHf+oIaLmpg5cWzystknTMzm7c832djN7K+88m5dexEm/3xhp42N5XoOK+dxGuJGkhE/rzcLhQy8LlBk5MyjOAlgCD8VPUE4Pkp9QEzAPHVi8Eiz4CShwKBgQCUCS8ph2LUMD3xH077Opmp3XgOQskXS9rlgRv2WW25VhPPuF6U7mmOzKhV3Qt9F8aMoTf3Ook+JP6qFjOTV1qbbSGWGPW5Ce1y+7BsybI4hBfSgs7hfCLi+IRTWWdt4Qvpkauz6xruy7EFvG0HrYPK0LMVCQQ92ui/148auITtowKBgC17sMF2lVmXhS7ZEAA25EIPojpaxbuiyOYSWVYmbSy16IyhxzhPuIPiEOiAM7+6y3YcCRHUPZJrVMLIEJqGVwJjSzYlEJ7I6jfl+fzSDvKPFBYvBCh0EuCGUiZNR5NGViXShJWUeQV5GxzcoLxXRhhpX+71drY1bX1jBQpvxlsjAoGAXRsrzEDaC3RXBdzLNjBX6OyxA1GVZ2KszuxuK+qlVuliont3F1f6f1bfIzqaPiAA7F0rIdoLvfjwGJn00DzKVyqT672HimDDO6/afjQzBHY5to8c1+RlCZ9jNtGvjIQxTjlvtyDbJx6k4WvNllwRdhN01SzfscXkBKPCWz3Wrdo=`

js1121302139 commented 4 years ago

沙箱环境

ranwawa commented 3 years ago

同样问题,最后怎么解决的?

No1white commented 3 years ago

解决问了吗 遇到同样的问题

endian86 commented 3 years ago

constructor(config) { if (!config.appId) { throw Error('config.appId is required'); } if (!config.privateKey) { throw Error('config.privateKey is required'); } const privateKeyType = config.keyType === 'PKCS8' ? 'PRIVATE KEY' : 'RSA PRIVATE KEY'; config.privateKey = this.formatKey(config.privateKey, privateKeyType);

看下sdk的代码,有个参数keyType,初始化的时候传入参数keyType:PKCS8就行了。

PEM 格式一般有 PKCS#8 和 PKCS#1,前者不用加RSA,后者要。

Argentinaleo commented 1 year ago

私钥没有进行格式转换

ranwawa commented 1 year ago

你的邮件我已收到,查收后会尽快回复!:)