From 7f0b0ec9e63972da4be8d67310b3d2b0122f5c63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8A=80=E6=9C=AF=E8=80=81=E8=83=A1?= <1094551889@qq.com> Date: Mon, 28 Oct 2024 16:33:51 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=96=E6=B6=88=E5=90=8E=E5=8F=B0=E5=9B=BE?= =?UTF-8?q?=E8=A1=A8=EF=BC=8C=E6=9B=B4=E6=96=B0=E5=BC=80=E5=8F=91=E6=96=87?= =?UTF-8?q?=E6=A1=A3=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controller/IndexController.php | 5 + route/app.php | 3 + view/console/console.html | 127 +-- view/index/doc.html | 1364 ++++++++++++++++++++++++++++ view/index/index.html | 5 +- 5 files changed, 1376 insertions(+), 128 deletions(-) create mode 100644 view/index/doc.html diff --git a/app/controller/IndexController.php b/app/controller/IndexController.php index 98f4709..8af6710 100644 --- a/app/controller/IndexController.php +++ b/app/controller/IndexController.php @@ -14,6 +14,11 @@ class IndexController } return View::fetch(); } + public function doc() + { + View::assign('domain', \request()->domain()); + return View::fetch(); + } public function test() { $key = "0383d7088b6947b68e4a626af119e2bd"; diff --git a/route/app.php b/route/app.php index 3f42c6b..611aaad 100644 --- a/route/app.php +++ b/route/app.php @@ -21,3 +21,6 @@ Route::rule('validatePayResult', 'Pay/validatePayResult'); // API多级控制器 Route::rule('api/:controller/:methon', 'api.:controller/:methon'); + +// 开发文档 +Route::rule('doc', 'Index/doc'); \ No newline at end of file diff --git a/view/console/console.html b/view/console/console.html index 8d36733..9df9a1f 100644 --- a/view/console/console.html +++ b/view/console/console.html @@ -202,43 +202,7 @@ -
请求数据格式:application/x-www-form-urlencode
+返回数据格式:JSON
+签名算法:MD5
+字符编码:UTF-8
+此接口可用于用户前台直接发起支付,使用form表单跳转或拼接成url跳转。
+URL地址:/submit.php
+请求方式:POST 或 GET(推荐POST,不容易被劫持或屏蔽)
+请求参数说明:
+字段名 | +变量名 | +必填 | +类型 | +示例值 | +描述 | +
---|---|---|---|---|---|
商户ID | +pid | +是 | +Int | +1001 | ++ |
支付方式 | +type | +否 | +String | +alipay | +支付方式列表 | +
商户订单号 | +out_trade_no | +是 | +String | +20160806151343349 | ++ |
异步通知地址 | +notify_url | +是 | +String | +http://www.pay.com/notify_url.php | +服务器异步通知地址 | +
跳转通知地址 | +return_url | +是 | +String | +http://www.pay.com/return_url.php | +页面跳转通知地址 | +
商品名称 | +name | +是 | +String | +VIP会员 | +如超过127个字节会自动截取 | +
商品金额 | +money | +是 | +String | +1.00 | +单位:元,最大2位小数 | +
业务扩展参数 | +param | +否 | +String | +没有请留空 | +支付后原样返回 | +
签名字符串 | +sign | +是 | +String | +202cb962ac59075b964b07152d234b70 | +签名算法点此查看 | +
签名类型 | +sign_type | +是 | +String | +MD5 | +默认为MD5 | +
支付方式(type)不传会跳转到收银台支付
+此接口可用于服务器后端发起支付请求,会返回支付二维码链接或支付跳转url。
+URL地址:/mapi.php
+请求方式:POST
+请求参数说明:
+字段名 | +变量名 | +必填 | +类型 | +示例值 | +描述 | +
---|---|---|---|---|---|
商户ID | +pid | +是 | +Int | +1001 | ++ |
支付方式 | +type | +是 | +String | +alipay | +支付方式列表 | +
商户订单号 | +out_trade_no | +是 | +String | +20160806151343349 | ++ |
异步通知地址 | +notify_url | +是 | +String | +http://www.pay.com/notify_url.php | +服务器异步通知地址 | +
跳转通知地址 | +return_url | +否 | +String | +http://www.pay.com/return_url.php | +页面跳转通知地址 | +
商品名称 | +name | +是 | +String | +VIP会员 | +如超过127个字节会自动截取 | +
商品金额 | +money | +是 | +String | +1.00 | +单位:元,最大2位小数 | +
用户IP地址 | +clientip | +是 | +String | +192.168.1.100 | +用户发起支付的IP地址 | +
设备类型 | +device | +否 | +String | +pc | +根据当前用户浏览器的UA判断,传入用户所使用的浏览器或设备类型,默认为pc设备类型列表 | +
业务扩展参数 | +param | +否 | +String | +没有请留空 | +支付后原样返回 | +
签名字符串 | +sign | +是 | +String | +202cb962ac59075b964b07152d234b70 | +签名算法点此查看 | +
签名类型 | +sign_type | +是 | +String | +MD5 | +默认为MD5 | +
返回结果(json):
+字段名 | +变量名 | +类型 | +示例值 | +描述 | +
---|---|---|---|---|
返回状态码 | +code | +Int | +1 | +1为成功,其它值为失败 | +
返回信息 | +msg | +String | ++ | 失败时返回原因 | +
订单号 | +trade_no | +String | +20160806151343349 | +支付订单号 | +
支付跳转url | +payurl | +String | +/pay/wxpay/202010903/ + | +如果返回该字段,则直接跳转到该url支付 | +
二维码链接 | +qrcode | +String | +weixin://wxpay/bizpayurl?pr=04IPMKM | +如果返回该字段,则根据该url生成二维码 | +
小程序跳转url | +urlscheme | +String | +weixin://dl/business/?ticket=xxx | +如果返回该字段,则使用js跳转该url,可发起微信小程序支付 | +
注:payurl、qrcode、urlscheme 三个参数只会返回其中一个
+通知类型:服务器异步通知(notify_url)、页面跳转通知(return_url)
+请求方式:GET
+请求参数说明:
+字段名 | +变量名 | +必填 | +类型 | +示例值 | +描述 | +
---|---|---|---|---|---|
商户ID | +pid | +是 | +Int | +1001 | ++ |
易支付订单号 | +trade_no | +是 | +String | +20160806151343349021 | +聚合易支付订单号 | +
商户订单号 | +out_trade_no | +是 | +String | +20160806151343349 | +商户系统内部的订单号 | +
支付方式 | +type | +是 | +String | +alipay | +支付方式列表 | +
商品名称 | +name | +是 | +String | +VIP会员 | ++ |
商品金额 | +money | +是 | +String | +1.00 | ++ |
支付状态 | +trade_status | +是 | +String | +TRADE_SUCCESS | +只有TRADE_SUCCESS是成功 | +
业务扩展参数 | +param | +否 | +String | ++ | + |
签名字符串 | +sign | +是 | +String | +202cb962ac59075b964b07152d234b70 | +签名算法点此查看 | +
签名类型 | +sign_type | +是 | +String | +MD5 | +默认为MD5 | +
收到异步通知后,需返回success以表示服务器接收到了订单通知
+1、将发送或接收到的所有参数按照参数名ASCII码从小到大排序(a-z),sign、sign_type、和空值不参与签名!
+2、将排序后的参数拼接成URL键值对的格式,例如 a=b&c=d&e=f
,参数值不要进行url编码。
3、再将拼接好的字符串与商户密钥KEY进行MD5加密得出sign签名参数,sign = md5 ( a=b&c=d&e=f + KEY )
(注意:+
+ 为各语言的拼接符,不是字符!),md5结果为小写。
4、具体签名与发起支付的示例代码可下载SDK查看。
+调用值 | +描述 | +
---|---|
alipay | +支付宝 | +
wxpay | +微信支付 | +
调用值 | +描述 | +
---|---|
pc | +电脑浏览器 | +
mobile | +手机浏览器 | +
手机QQ内浏览器 | +|
微信内浏览器 | +|
alipay | +支付宝客户端 | +
URL地址:/api.php?act=query&pid={商户ID}&key={商户密钥} +
+请求参数说明:
+字段名 | +变量名 | +必填 | +类型 | +示例值 | +描述 | +
---|---|---|---|---|---|
操作类型 | +act | +是 | +String | +query | +此API固定值 | +
商户ID | +pid | +是 | +Int | +1001 | ++ |
商户密钥 | +key | +是 | +String | +89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i | ++ |
返回结果:
+字段名 | +变量名 | +类型 | +示例值 | +描述 | +
---|---|---|---|---|
返回状态码 | +code | +Int | +1 | +1为成功,其它值为失败 | +
商户ID | +pid | +Int | +1001 | +商户ID | +
商户密钥 | +key | +String(32) | +89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i | +商户密钥 | +
商户状态 | +active | +Int | +1 | +1为正常,0为封禁 | +
商户余额 | +money | +String | +0.00 | +商户所拥有的余额 | +
结算方式 | +type | +Int | +1 | +1:支付宝,2:微信,3:QQ,4:银行卡 | +
结算账号 | +account | +String | +admin@pay.com | +结算的支付宝账号 | +
结算姓名 | +username | +String | +张三 | +结算的支付宝姓名 | +
订单总数 | +orders | +Int | +30 | +订单总数统计 | +
今日订单 | +order_today | +Int | +15 | +今日订单数量 | +
昨日订单 | +order_lastday | +Int | +15 | +昨日订单数量 | +
URL地址:/api.php?act=settle&pid={商户ID}&key={商户密钥} +
+请求参数说明:
+字段名 | +变量名 | +必填 | +类型 | +示例值 | +描述 | +
---|---|---|---|---|---|
操作类型 | +act | +是 | +String | +settle | +此API固定值 | +
商户ID | +pid | +是 | +Int | +1001 | ++ |
商户密钥 | +key | +是 | +String | +89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i | ++ |
返回结果:
+字段名 | +变量名 | +类型 | +示例值 | +描述 | +
---|---|---|---|---|
返回状态码 | +code | +Int | +1 | +1为成功,其它值为失败 | +
返回信息 | +msg | +String | +查询结算记录成功! | ++ |
结算记录 | +data | +Array | +结算记录列表 | ++ |
URL地址:/api.php?act=order&pid={商户ID}&key={商户密钥}&out_trade_no={商户订单号} +
+请求参数说明:
+字段名 | +变量名 | +必填 | +类型 | +示例值 | +描述 | +
---|---|---|---|---|---|
操作类型 | +act | +是 | +String | +order | +此API固定值 | +
商户ID | +pid | +是 | +Int | +1001 | ++ |
商户密钥 | +key | +是 | +String | +89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i | ++ |
系统订单号 | +trade_no | +选择 | +String | +20160806151343312 | ++ |
商户订单号 | +out_trade_no | +选择 | +String | +20160806151343349 | ++ |
提示:系统订单号 和 商户订单号 二选一传入即可,如果都传入以系统订单号为准!
+返回结果:
+字段名 | +变量名 | +类型 | +示例值 | +描述 | +
---|---|---|---|---|
返回状态码 | +code | +Int | +1 | +1为成功,其它值为失败 | +
返回信息 | +msg | +String | +查询订单号成功! | ++ |
易支付订单号 | +trade_no | +String | +2016080622555342651 | +聚合易支付订单号 | +
商户订单号 | +out_trade_no | +String | +20160806151343349 | +商户系统内部的订单号 | +
第三方订单号 | +api_trade_no | +String | +20160806151343349 | +支付宝微信等接口方订单号 | +
支付方式 | +type | +String | +alipay | +支付方式列表 | +
商户ID | +pid | +Int | +1001 | +发起支付的商户ID | +
创建订单时间 | +addtime | +String | +2016-08-06 22:55:52 | ++ |
完成交易时间 | +endtime | +String | +2016-08-06 22:55:52 | ++ |
商品名称 | +name | +String | +VIP会员 | ++ |
商品金额 | +money | +String | +1.00 | ++ |
支付状态 | +status | +Int | +0 | +1为支付成功,0为未支付 | +
业务扩展参数 | +param | +String | ++ | 默认留空 | +
支付者账号 | +buyer | +String | ++ | 默认留空 | +
URL地址:/api.php?act=orders&pid={商户ID}&key={商户密钥} +
+请求参数说明:
+字段名 | +变量名 | +必填 | +类型 | +示例值 | +描述 | +
---|---|---|---|---|---|
操作类型 | +act | +是 | +String | +orders | +此API固定值 | +
商户ID | +pid | +是 | +Int | +1001 | ++ |
商户密钥 | +key | +是 | +String | +89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i | ++ |
查询订单数量 | +limit | +否 | +Int | +20 | +返回的订单数量,最大50 | +
页码 | +page | +否 | +Int | +1 | +当前查询的页码 | +
返回结果:
+字段名 | +变量名 | +类型 | +示例值 | +描述 | +
---|---|---|---|---|
返回状态码 | +code | +Int | +1 | +1为成功,其它值为失败 | +
返回信息 | +msg | +String | +查询结算记录成功! | ++ |
订单列表 | +data | +Array | ++ | 订单列表 | +
需要先在商户后台开启订单退款API接口开关,才能调用该接口发起订单退款
+URL地址:/api.php?act=refund
+请求方式:POST
+请求参数说明:
+字段名 | +变量名 | +必填 | +类型 | +示例值 | +描述 | +
---|---|---|---|---|---|
商户ID | +pid | +是 | +Int | +1001 | ++ |
商户密钥 | +key | +是 | +String | +89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i | ++ |
易支付订单号 | +trade_no | +特殊可选 | +String | +20160806151343349021 | +易支付订单号 | +
商户订单号 | +out_trade_no | +特殊可选 | +String | +20160806151343349 | +订单支付时传入的商户订单号,商家自定义且保证商家系统中唯一 | +
退款金额 | +money | +是 | +String | +1.50 | +少数通道需要与原订单金额一致 | +
注:trade_no、out_trade_no 不能同时为空,如果都传了以trade_no为准
+返回结果:
+字段名 | +变量名 | +类型 | +示例值 | +描述 | +
---|---|---|---|---|
返回状态码 | +code | +Int | +1 | +1为成功,其它值为失败 | +
返回信息 | +msg | +String | +退款成功 | ++ |