Alipay SDK
蚂蚁金服开放平台 SDK
使用步骤
2. 生成密钥
-
下载 RSA密钥工具:https://docs.open.alipay.com/291/106097/
-
切换到生成秘钥 tab,秘钥格式选择“PKCS1(非JAVA适用)” Differences between “BEGIN RSA PRIVATE KEY” and “BEGIN PRIVATE KEY”
-
新建 private-key.pem 保存私钥,文件格式如下:
-----BEGIN RSA PRIVATE KEY-----
// 粘贴上一步生成的私钥到这里(不需要换行)
-----END RSA PRIVATE KEY-----
完整的 private-key.pem 文件例子:
-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEAqATL9/w/B5Siq/C0mKO8CoUqxX9gv2Fxs2Xz8n0Ce2O3qk+zzQxxwpgG77TMQ5JRaFZ8f1hA2Ax8DQVp9NLi5hqX3cZUpt8snWvc2Jz3hNWv81GqTDZCsMQD/HqgLURZxyw1yVHA2sayFcm8Exn1gqd1bNMSdy/VxhtfwKRxBq/vTNtfKus2E15/bQKB+l/mvroYrR5qYOAInEQt0HoTDFKL2+kvq3TD24gT/VbsfpJoy8FU3lT33LkYAOhHridveugXLbd7eK9e4iC02KV1loQBbL7R+UKdvh+5RZQfRIbQfKhDaSwQqTY0l+2u0b7W80BV8M1iMwQ8errtyUuWKQIDAQABAoIBAEcB5/XA7B5XCbyiuKA9qm3Dw8S9xXR8SSIpN0TG4jKlfOyETJee58D2oQ/TF/SCtNbkni7vbFAiTpbuL85hBbV7ja0TcZkofmF1QVtmUxEXggnR/KfC0sKDxK+CX4lh9pM/MugHHfsXuBGPNWXZNbHm9bBtL8OhOrZDwV7X4FCTgKw8qPBX+hO+RuUQ8iDfZMgUWkrSPCAT68XdLU4K9RrPYMHSmE9HgQhkNbtbLpbHgXxL81H9mIwA4DL3FMoh0IwJ+Yx12m1xC6mVQay2e2DRWfOiGFJWgE2EM1+KY1SR2WgsjNM2/Q1QmSijHbTOx2/gW7xbsuazNQRoptoFVIECgYEA1cslOJmWXa3BVTaV/o47bSSYEjwfg/bV9gDkqA9+33oxLvWehaOYjwsLmY9uid95sWD0mQtJj4pXr63e5SBnTd3vB2p5fJ2Cnt9vnpq/nHvnB0xPHB/DhAMCMYm1bV6gKSzimG1DJVsygjWrbz1lEQ0GMJSBidC0mLx2Jl+jCvECgYEAyTBAPzMvKt1OUTbg1UwqoktKOBCWbaTVNst22/NtLIxi0zAl80NgdbNLhH+zesFGnTmFnP/79SshntvbPNAlUOkL1BPPAhHoIUR7ubFxDeDGFQ+DIUtHKBzYSvbekRO1AEPNkhFA3NiYnRrDOGYC+utuyafCppuBSSXpgMzXjrkCgYEAxaEiaS3hB/vk6gappUSJvpzDTqfxYiW9J8kvlgOs/pyP9p7qyRKvphtJv8wNHLpOXiAIO6lpeJ0j7axGjXvkwuBTY4GTiBR6eK6HGhBm7BrFN8PcpVzfeZrmXjC0W8PLPgTV+p2WImQpTqCaNxyD3r0xaZr+HA2nxEEC3votV6ECgYEAnyQLrfJO3RkxWgyOzCnzj2z+yFpWo2Q/Q5it7E4hjZt+kI8FdedV5cRtd+GLlw5LTRKzHf1e0A/OCFrgkLoUymuNb7Q7iuefNrF1LO2u/8tM5Fvg3fUt1Az9Ck88voVYJ116vo/nPsoV7i+9PF90/AY/HEQXNLLNEY9rpPZjjAECgYEAk9RSfc1w5TJbW8EqqSJ+tgyfJ8zP/D9pnZ0zmXeryVwne7YQmOar6KlLGNBKxbMSF6JV+Yo0lPKKdDmeH8Iqbo6l2grDGyeNLOlTug3fgdtFfgvBzJmQNXd8qpR8smzPqbcYwYHZG39l7lZ+lx/h1+qDiEcMRu/r8h3gv04lMxA=
-----END RSA PRIVATE KEY-----
3. 设置应用公钥
-
复制 2.2 中生成的应用公钥
-
登录开放平台设置应用公钥
注意: 1.0.x 只支持 RSA(SHA1WithRSA) 方式的签名,请务必设置 RSA 秘钥
4. 保存支付宝公钥
“支付宝公钥”用于开放平台返回值的进行验签
-
开放平台“应用概览”页面中复制“支付宝公钥”
-
新建 public-key.pem 保存私钥,文件格式如下:
-----BEGIN PUBLIC KEY-----
// 粘贴上一步复制的“支付宝公钥”到这里(不需要换行)
-----END PUBLIC KEY-----
完整的 public-key.pem 文件例子:
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqATL9/w/B5Siq/C0mKO8CoUqxX9gv2Fxs2Xz8n0Ce2O3qk+zzQxxwpgG77TMQ5JRaFZ8f1hA2Ax8DQVp9NLi5hqX3cZUpt8snWvc2Jz3hNWv81GqTDZCsMQD/HqgLURZxyw1yVHA2sayFcm8Exn1gqd1bNMSdy/VxhtfwKRxBq/vTNtfKus2E15/bQKB+l/mvroYrR5qYOAInEQt0HoTDFKL2+kvq3TD24gT/VbsfpJoy8FU3lT33LkYAOhHridveugXLbd7eK9e4iC02KV1loQBbL7R+UKdvh+5RZQfRIbQfKhDaSwQqTY0l+2u0b7W80BV8M1iMwQ8errtyUuWKQIDAQAB
-----END PUBLIC KEY-----
调用 SDK
Exp:
const AlipaySdk = require('alipay-sdk');
const sdk = new AlipaySdk({
appId: '2016101300678716',
privateKey: fs.readFileSync('./private-key.pem', 'ascii'),
alipayPublicKey: fs.readFileSync('./public-key.pem', 'ascii'),
});
sdk.execute(method, bizContent)
.then(ret => {
// console.log(ret);
})
.catch(() => {
// ...
});
-
alipaySDKConfig 配置参数
- 必选参数
appId
: String
开放平台上创建应用时生成的 appIdprivateKey
: String
应用私钥alipayPublicKey
: String
支付宝公钥
- 可选参数
timeout
: Number
网关超时时间camelcase
: Boolean
是否把服务端返回的数据下划线转驼峰
-
execute 方法参数列表
- 必选参数
method
: String
调用的 Api,比如 koubei.marketing.campaign.tags.query
bizContext
: Object
Api 的请求参数(文档中的“请求参数“)
注: 某些 Api 可能没有请求参数
- 可选参数
publicArgs
: String
Api 的公共请求参数(系统会自动处理公共请求参数,某些 Api 有自己特殊的公共请求参数时,请在这里设置)validateSign
: String
是否对返回值验签(依赖3.2中配置的”支付宝公钥“)log
: Log 对象,存在时会调用 info
方法写执行日志