api.php 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
  1. <?php
  2. $platform_id = Dever::input('set')['platform_id'] ?? 0;
  3. $platform = include('platform.php');
  4. $config = array
  5. (
  6. 'list' => array
  7. (
  8. 'where' => array('platform_id' => $platform_id),
  9. 'field' => array
  10. (
  11. //'id',
  12. 'sort' => 'input',
  13. 'name',
  14. 'uri',
  15. 'env_type',
  16. 'platform_id',
  17. 'status' => array
  18. (
  19. 'type' => 'switch',
  20. 'show' => '{status}',
  21. 'active_value' => 1,
  22. 'inactive_value' => 2,
  23. ),
  24. ),
  25. 'data_button' => array
  26. (
  27. '设置' => 'edit',
  28. '删除' => 'delete',
  29. ),
  30. 'button' => array
  31. (
  32. '新增' => array('fastadd', array('platform_id' => $platform_id, 'field' => 'name,env_type,platform_id,uri')),
  33. ),
  34. 'search' => array
  35. (
  36. 'platform_id' => array
  37. (
  38. 'type' => 'hidden',
  39. 'default' => $platform_id,
  40. ),
  41. 'name',
  42. 'uri',
  43. 'status',
  44. ),
  45. ),
  46. 'update' => array
  47. (
  48. 'desc' => $platform['update']['desc'],
  49. 'tab' => array
  50. (
  51. '基本设置' => 'name,env_type,sign_col,uri,api/api_uri',
  52. '价格设置' => 'spec_type,api/sku,api/sku#',
  53. '请求参数' => 'method,post_method,api/api_request_header,api/api_request_body',
  54. '响应参数' => 'api/api_response_header,api/api_response_body',
  55. '输入输出' => 'api/api_request_input,api/api_request_output',
  56. '存储设置' => 'api/api_save',
  57. '回调设置' => 'notify_type,notify_sign_col,notify_success,notify_error,api/api_notify_body,api/api_notify_code',
  58. ),
  59. 'field' => array
  60. (
  61. 'name',
  62. 'env_type' => 'radio',
  63. 'platform_id' => array
  64. (
  65. 'desc' => '【提交后不能更改】',
  66. ),
  67. 'sign_col' => array
  68. (
  69. 'type' => 'textarea',
  70. 'autosize' => array('minRows' => 2),
  71. 'desc' => '按顺序做加密,用+号隔开,为空则所有字段均参与加密,这里填写后,将替换平台中的签名加密参数',
  72. ),
  73. 'uri',
  74. 'api/api_uri' => array
  75. (
  76. 'name' => '接口地址生成',
  77. 'where' => array('api_id' => 'id'),
  78. 'desc' => '如果需要动态生成接口地址,这里填写参数即可,同样支持变量',
  79. ),
  80. 'method' => array
  81. (
  82. 'type' => 'radio',
  83. 'control' => true,
  84. ),
  85. 'post_method' => array
  86. (
  87. 'type' => 'radio',
  88. 'show' => false,
  89. ),
  90. 'api/api_request_input' => array
  91. (
  92. 'name' => '参数输入',
  93. 'where' => array('api_id' => 'id'),
  94. 'desc' => '[默认值/可选项:可以多行输入,默认值为第一行,其他行为可选项]',
  95. ),
  96. 'api/api_request_output' => array
  97. (
  98. 'name' => '参数输出',
  99. 'where' => array('api_id' => 'id'),
  100. ),
  101. 'api/api_request_body' => array
  102. (
  103. 'name' => '请求体',
  104. 'where' => array('api_id' => 'id'),
  105. ),
  106. 'api/api_request_header' => array
  107. (
  108. 'name' => '请求头',
  109. 'where' => array('api_id' => 'id'),
  110. ),
  111. 'api/api_response_body' => array
  112. (
  113. 'name' => '响应体',
  114. 'desc' => '填写后,平台中的标准响应体将失效,并且只保留填写后的响应体,格式:data[].name,不是列表则为data.name',
  115. 'where' => array('api_id' => 'id'),
  116. ),
  117. 'api/api_response_header' => array
  118. (
  119. 'name' => '响应头',
  120. 'desc' => '填写后,平台中的标准响应头将失效,不填写不保留响应头,格式:data[].name,不是列表则为data.name',
  121. 'where' => array('api_id' => 'id'),
  122. ),
  123. 'api/api_save' => array
  124. (
  125. 'name' => '存储设置',
  126. 'desc' => '用于将响应数据保存到数据表中,该数据表最好有api_id(int)和request_id(varchar)字段,用于区分是哪个接口哪次请求,当然也可以没有',
  127. 'where' => array('api_id' => 'id'),
  128. ),
  129. 'notify_type' => array
  130. (
  131. 'type' => 'radio',
  132. 'control' => true,
  133. ),
  134. 'notify_success' => array
  135. (
  136. 'type' => 'textarea',
  137. 'autosize' => array('minRows' => 2),
  138. 'desc' => '回调成功后,返回给上游的信息',
  139. ),
  140. 'notify_error' => array
  141. (
  142. 'type' => 'textarea',
  143. 'autosize' => array('minRows' => 2),
  144. 'desc' => '回调失败后,返回给上游的信息,默认应答状态码为500,可以换行输入应答状态码',
  145. ),
  146. 'notify_sign_col' => array
  147. (
  148. 'desc' => '填写参与回调签名的参数,不填写则使用平台设置的签名参数',
  149. ),
  150. 'api/api_notify_body' => array
  151. (
  152. 'name' => '回调参数设置',
  153. 'where' => array('api_id' => 'id'),
  154. ),
  155. 'api/api_notify_code' => array
  156. (
  157. 'name' => '回调状态码',
  158. 'where' => array('api_id' => 'id'),
  159. ),
  160. 'spec_type' => array
  161. (
  162. 'type' => 'radio',
  163. 'control' => true,
  164. ),
  165. 'api/sku' => array
  166. (
  167. 'name' => '单规格设置',
  168. 'where' => array('api_id' => 'id', 'key' => '-1'),
  169. # 默认值,如果有默认值则无法添加和删除
  170. 'default' => array
  171. (
  172. # 默认值
  173. array
  174. (
  175. 'price' => '',
  176. 'num' => '',
  177. 'day_num' => '',
  178. ),
  179. ),
  180. ),
  181. 'api/sku#' => array
  182. (
  183. 'name' => '多规格设置',
  184. 'where' => array('api_id' => 'id', 'key' => array('!=', '-1')),
  185. 'type' => 'sku',
  186. # 设置规格表名
  187. 'spec' => 'api/spec',
  188. # 设置规格表关联字段
  189. 'spec_field' => 'api_id',
  190. # 获取规格数据的接口
  191. 'spec_data' => 'api/spec.manage',
  192. ),
  193. ),
  194. 'control' => array
  195. (
  196. 'post_method' => array
  197. (
  198. 'method' => 2,
  199. ),
  200. 'notify_success' => array
  201. (
  202. 'notify_type' => 1,
  203. ),
  204. 'notify_error' => array
  205. (
  206. 'notify_type' => 1,
  207. ),
  208. 'api/api_notify_body' => array
  209. (
  210. 'notify_type' => 1,
  211. ),
  212. 'api/api_notify_code' => array
  213. (
  214. 'notify_type' => 1,
  215. ),
  216. 'notify_sign_col' => array
  217. (
  218. 'notify_type' => 1,
  219. ),
  220. /*
  221. 'api/api_notify' => array
  222. (
  223. 'notify_type' => 1,
  224. ),*/
  225. 'api/sku' => array
  226. (
  227. 'spec_type' => 1,
  228. ),
  229. 'api/sku#' => array
  230. (
  231. 'spec_type' => 2,
  232. ),
  233. ),
  234. ),
  235. );
  236. $id = Dever::input('id');
  237. if (!$id) {
  238. unset($config['update']['tab']);
  239. }
  240. return $config;