前言
作者在做毕业设计的时候,打算给自己的商店模块加一个支付功能,因此选择尝试调用支付宝的支付功能,在此记录一下。
准备工作
登录支付宝开放平台(登录 - 支付宝 (alipay.com))
登录成功后在控制台底部找到沙箱
然后选择启用公钥模式
启动之后可以查看公钥和私钥,一般来说如果是自己写个小demo做模拟的话用公钥模式就足够了,如果是需要真实上线的话,还是需要用证书模式的,更安全。
后续我们需要用到的就是这个公钥跟私钥以及APPID,因为作者是使用Node写的项目,所以私钥选择非Java语言,如果有小伙伴是使用Java语言写的服务器,那就选择Java语言。
项目配置
准备好上述工作之后,就要回到我们的项目中了,我们需要将刚才的公钥以及私钥配置到项目中,如下图所示。
然后我们通过npm i alipay-sdk 下载支付宝官方提供的包
下载完成后新建一个文件,写入如下配置,需要注意的是,沙箱环境中必须填支付宝的网关配置,如果是正式环境则不需要这个网关配置,因为两个环境支付宝的网关是不一样的
经过上述操作,下面我们就可以写一个生成支付宝支付链接的方法了
上面方法中是最简单的生成一个支付链接的方法,其中的alipaySdk.pageExec是直接返回一个链接,用户点击这个链接会跳转到支付宝的支付页面,bizContent事支付订单的内容,tatal_amount是支付订单的金额,其他字段是订单号等一些信息,各位可以根据自己的需要填写,支付成功会支付宝会根据notifyUrl中填写的信息给服务器返回支付详细信息,如果是模拟环境,一般是使用内网穿透让本地服务器能接收到支付宝回调回来的信息。
生成支付链接后,在支付页面使用支付宝提供的沙箱账号进行付款就好了
总结
支付宝的沙箱环境有时候不太顶用,我用的时候到支付页面经常会网络出错而付款失败,还有就是付款成功后有时候也收不到回调信息,各位自己使用的时候多尝试一下就好了