深入理解alipay node sdk

1,964 阅读1分钟

alipay的SDK只是提供网关,没有暴露Rest Api端点,需要自己提供封装接口到end point.

官方sdk链接 github.com/alipay/alip…

官方sdk做了进一步封装,跟原始api有些区别,请求有些区别,原始请求链接 docs.open.alipay.com/api_3/alipa…

请求参数分两个部分,common request公共请求和private request私自请求

Common request里面sdk对必须的参数做了封装,如

调用方式

因此调用方式是:

 exec(
    method: string,
    params: IRequestParams = {},  //default {}
    option: IRequestOption = {},  //default {}
  )

如果option里面有formData,则去提交表格,支付或者上传form文件;否则则执行普通的请求操作,即依靠params来操作。

  1. 必要公共参数已经封装并提供
  2. 非必要公共参数如app_auth_token则需要提供在parmas里面
  3. 如果是需要提交表格的内容则可以把参数传给formData来提交
  4. formData提交通过两个(pageExec+multipartExec分别对应PC支付+上传文件),同时如果设置formData的method是get则传回URL(而非form),即formData是两个特例进行处理,因此返回response也跟原始的api不一致(看原始response)

最后看看SDK

结论:

  1. 考虑到以上SDK的方式,如果使用则需要再次封装
  2. 相对其他SDK,官方比较灵活,理论上可以使用所有官方api,只要按照如上范式调用即可
  3. SDK使用了把参数名称里面的_改成了camelcase,即如果官方文档参数return_url则使用returnUrl来调用SDK