alipay / alipay-sdk-nodejs-all

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

exec 方法抛异常 #4

Closed heiheiLqq closed 6 years ago

heiheiLqq commented 6 years ago

const AlipaySDK = require('alipay-sdk').default; const fs = require('fs')

const alipaySdk = new AlipaySDK({ appId: '2018081661053647', privateKey: fs.readFileSync(dirname + '/../secretKey/private-key.pem', 'ascii'), alipayPublicKey: fs.readFileSync(dirname+'/../secretKey/public-key.pem', 'ascii'), }); async function getAccessToken (auth_code,refreshToken) { alipaySdk.exec('alipay.system.oauth.token', { grantType: 'authorization_code', code: auth_code, refreshToken: '' }).then(res => { console.log(res); }).catch((err) => { console.log(err); }); }

报异常

TypeError: [AlipaySdk]exec error at WeakMap.set (native) at mapObj (/Users/zhuangzihao/i-counting/customer_api/node_modules/map-obj/index.js:23:7) at camelCaseConvert (/Users/zhuangzihao/i-counting/customer_api/node_modules/camelcase-keys/index.js:16:9) at module.exports (/Users/zhuangzihao/i-counting/customer_api/node_modules/camelcase-keys/index.js:39:9) at config.urllib.request.then (/Users/zhuangzihao/i-counting/customer_api/node_modules/alipay-sdk/lib/alipay.js:251:52) at at process._tickCallback (internal/process/next_tick.js:188:7)

myliweihao commented 6 years ago

我也遇到这个问题,请问解决了吗?

tudou527 commented 6 years ago

@heiheiLqq 能提供个可以重现的 demo 到 tudou527#gmail.com 吗?

leoner commented 6 years ago

+1

image

重现就是比如把key 写错啥的, 开放平台会返回一个错误, 这个时候, 解析这里就报错了.

leoner commented 6 years ago

比如这个错误返回了, 肯定解析不出来

{"error_response":{"code":"40002","msg":"Invalid Arguments","sub_code":"isv.code-invalid","sub_msg":"授权码code无效"
leoner commented 6 years ago

@tudou527 尽快帮忙修复吧, 估计后面碰到这个错误的人会很多.

tudou527 commented 6 years ago

https://github.com/alipay/alipay-sdk/commit/9107cebb6e1727997a86e2162e725720c67dfa92

heiheiLqq commented 6 years ago

fork 一份 这么改 alipay.js 256行 if (validateSuccess) 改成 if(validateSuccess && data)