全面解读支付宝支付 API,各类支付,商家授权,支付宝开放文档平台文档

本文知识点

  • 1.支付宝开放平台API签名算法拼接
  • 2.支付宝开放平台各类支付
  • 3.支付宝第三方应用商家授权
  • 4.支付宝第三方授权发起支付
  • 5.支付本支付回调签名验证

这里三方授权是指开放平台的服务商应用。

1.支付宝开发文档

https://opendocs.alipay.com/apis
我们以支付宝的支付和商家授权那块来讲解。首先我们打开支付宝的文档,我们先看手机支付。https://opendocs.alipay.com/apis/api_1/alipay.trade.wap.pay

黑白课堂

你往下拖,(⊙o⊙)…,怎么没有告诉我是啥请求形式呢?也没告诉我参数如何组装,也没用告诉我签名是哪些参数参与。

1.1一般API请求形式

  • 通常我们把API建议化的话,会告诉你们我们用什么请求形式,例如post
  • 签名也会告诉我们哪些参数参与,请求形式也会告诉我们是 json 请求呢,还是 form 请求

了解之后我们就来正式学习它,支付宝的的SDK,demo我感觉还是看旧版,比较容易看懂,新版的composer 包,虽然说统一的类,但是很多BUG,很多跑不通,官方也不理,自己看呗。

1.2支付宝API请求形式

  • 1.支付宝的请求是post,因为支付宝太多接口了,不确定是否还有其他请求形式。
  • 2.支付宝的签名,是传入的值和业务数据都需要参与签名,业务数据都是json格式,而官方并没有告诉你,而是给你写这个玩意,如下图

黑白课堂

这明明就是一个json,告知下,多直接。

$request->setBizContent(json_encode(['body'=>'标题']))

1.3支付宝RSA2/RSA签名流程

  • 1.将参数 ksort 下(按照键名从低到高进行排序)将请求参数和业务参数一起参与组成字符串,形式:key1=value1&key2=value2...类推,例如wap支付,后面会具体代码讲解
alipay_sdk=alipay-sdk-php-20200415&app_id=2016102500755499&biz_content={"out_trade_no":"202012061158071248","total_amount":100,"subject":"\u82f9\u679c\u6d4b\u8bd5wap"}&charset=UTF-8&format=json&method=alipay.trade.wap.pay&sign_type=RSA2&timestamp=2020-12-06 11:58:07&version=1.0
  • 2.RSA2签名
 openssl_sign($signStr, $sign, $res, OPENSSL_ALGO_SHA256);
 //$res 为应用私钥的
 //signStr 为上面的签名的字符串

 //RSA
//openssl_sign($data, $sign, $res);

1.4支付宝参数方法说明:method

这个 method 参数就是来区别各个接口的类别,说白了就是接口类型,什么值对应什么接口,例如我们要手机支付,传入 alipay.trade.wap.pay,电脑支付alipay.trade.page.pay 等。

2.支付本发起支付

2.1支付宝WAP支付请求

流程是:

  • 1.将商户配置参数进行url组合,组合成query形式,例如
//参数

Array
(
    [app_id] => 2016102500755499
    [version] => 1.0
    [format] => json
    [sign_type] => RSA2
    [timestamp] => 2020-12-06 11:59:15
    [alipay_sdk] => alipay-sdk-php-20200415
    [charset] => UTF-8
    [method] => alipay.trade.wap.pay
    [sign] => d0fAgzS6OlO7Hm0mRDfzFmIQQn4x/jBYjA9eov+5TZUIajM8w7PoAegU0+/mv119xS8wA3MsEdX+Gb7kYbni8gGU/VsfGY2FoHZ3isXwZQdj1gU4X3Wd1QU+zgSXRDqNCqfxyibgcwuZ+kS9e5D4YDYMw9YTgBna0XxoUGL64n7xaS+lllrMjleO2NqAiMhsATREK6ysCRLhrMfC1aQDKcb+TpwpO7fucpdosFuGGbdrNOW+OexhKb6kJyNDQ7mGVPU3hmLYJgvZSGLonAoVXBrjdF7+F7kpAZyr0YzLrL9zumfrcm/OPmHqSv6djm1gmAtYE1LNeimGtLGzSRKIgA==
)

组成ur queryl形式。

https://openapi.alipaydev.com/gateway.do?app_id=2016102500755499&version=1.0&format=json&sign_type=RSA2&timestamp=2020-12-06+11%3A58%3A55&alipay_sdk=alipay-sdk-php-20200415&charset=UTF-8&method=alipay.trade.wap.pay&sign=pkZzmxXdjYn21Mqjjfr0T9yfIh%2BI5KYP%2FH%2BQrznsYXbvOOv4uf0w%2BS2fwf2ifHmfaDChLorCtuJK7H4F2RgYzbz9Wla0ihXbAKSYrnt%2B%2FddnUOY2rbgiC6UZLfU4IZY1XzSKMUF5FMsEsx0HwJjkzNXbiBJN15jMjsCYW3nw5ggve0DLVTadyheZh8AfBKaQtm%2F5hEQG5ABehZx1iZxYhPlxujCRTwa8q3v1gGWuGbp1j7p8hLt8KT6mDd8dPHZNbo5zRpc50qsx9kNC9Cv81AxqC2Ia5hqflY%2BNa8MuiiYrPFfSzZLB2OrE9cd2X7bPPPqfPOklsdJBr8mndQ%2FcPA%3D%3D
需要花费 50 个 学币,后才能查看完整内容 立即购买

评论区 (2)

啊,为什么还要5块钱

#1 楼
itcont • 初学者 回复:

所以要努力赚学币,如果不想充值。

#2 楼
支持 markdown,图片截图粘贴拖拽都可以自动上传。

相关帖子

黑白课堂

如果你在.env文件下配置了变量参数,在路由缓存下会无效

| 最后更新 2020-12-11 03:05:43
1596 0
黑白课堂

laravel之Artisan命令操作,以及自己编写Artisan Console命令

| 最后更新 2021-01-13 14:24:58
1398 0
黑白课堂

JWT(JSON Web Token)是一个非常轻巧的规范。这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息。 一个JWT实际上就是一个字符串,它由三部分组成,头部、载荷与签名

| 最后更新 2021-01-13 14:25:29
1530 0
黑白课堂

扩展一个指令在blade模板中使用。

| 最后更新 2020-12-11 03:04:51
1144 0
黑白课堂

所有Laravel应用启动的中心,所有Laravel的核心服务都是通过服务提供者启动,服务提供者是应用配置的中心. >这里需要了解下IOC(控制反转)也叫依赖注入

| 最后更新 2021-01-11 03:14:14
1047 0
黑白课堂

控制对资源的访问权限,这个权限不同于RBAC(角色的权限访问控制),比如,只能操作自己的信息,可以说是拟补RBAC的更加细腻的权限。

| 最后更新 2021-01-13 14:24:00
1068 0
黑白课堂

黑白课堂 · 技术专家

专业PHP开发

年度VIP 站长创业者玉树凌风每天醒来0收入
查看更多

最新视频课程

钻级赞助商