uniCloud是基于node为运行环境的,所以得接入node版的SDK,需要安装npm包,由于npm包大小超过10M,目前为止,只有腾讯云环境才能满足需求。
这是支付宝开发平台SDK的npm资源地址,有安装和使用文档,可以前往了解
https://www.npmjs.com/package/alipay-sdk
安装
云函数可以·使用npm安装第三方依赖,所以从云函数里面下手
在你所需要的云函数目录下打开终端
初始化npm工程(在云函数目录下初始化,如果已经有package.json文件了,可跳过)
npm init -y
安装依赖(在云函数目录下安装依赖)
npm install alipay-sdk --save
密钥生成(本人选择的是证书模式,此步操作看实际开发情状)
需要资料
1、应用私钥证书:用工具生成的密钥(非JAVA格式,RSA2签名类型),然后复制自己生成一个pem格式文件)
2、应用公钥证书
3、支付宝公钥证书
4、支付宝根证书
这四份文件可前往https://opendocs.alipay.com/open/291/105971了解操作
注意:应用私钥转换pem格式文件时,要注意字符串格式,千万不要用txt格式,直接重命名pem格式类似的思路。不然的话,使用时会报0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag错误,可用openSSL工具生成pem文件,操作文档https://opensupport.alipay.com/support/helpcenter/207/201602520381?ant_source=antsupport,或者其它方式生成也行,不局限的
拿到上面的文件后,将这些文件直接放到云函数目录下
使用
//云函数暂时不支持import写法,只能用require导入 const AlipaySdk = require('alipay-sdk').default; //node内置的模块 const fs = require('fs'); const path = require('path'); exports.main = async (event, context) => { const alipaySdk = new AlipaySdk({ appId: 'xxx', signType: 'RSA2', privateKey: fs.readFileSync('./ssl.pem','UTF-8'),//我建的格式是UTF-8,实际填写看实际开发情状 alipayRootCertPath: path.join(__dirname,'./alipayRootCert.crt'), appCertPath: path.join(__dirname,'./appCertPublicKey.crt'), alipayPublicCertPath: path.join(__dirname,'./alipayCertPublicKey_RSA2.crt') }); return alipaySdk; }
直接上传云函数并运行测试一下,如果出现以下信息,说明SDK导入成功,并且可以使用了
如果你想要更多的运用此SDK,可以移步其它文档https://www.yuque.com/chenqiu/alipay-node-sdk/guide