RegexUtil.php 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281
  1. <?php
  2. namespace LdzfPay\Api;
  3. /**订单查询数据字段*/
  4. //define("PLATTOMER_QUERYTRANS_FIELD", "merId,goodsId,orderId,merDate,payDate,amount,amtType,bankType,mobileId,gateId,transType,transState,settleDate,bankCheck,merPriv,retCode,version,sign");
  5. /**商户撤销交易数据字段*/
  6. define("PLATTOMER_REVOKE_FIELD", "merId,amount,retCode,retMsg,version,sign");
  7. /**商户退费交易数据字段*/
  8. define("PLATTOMER_REFUND_FIELD", "merId,refundNo,amount,retCode,retMsg,version,sign");
  9. /**后台直连数据字段*/
  10. define("PLATTOMER_DIRECTREQPAY_FIELD", "merId,goodsId,orderId,merDate,retCode,retMsg,version,sign");
  11. /**2011-10-14 add by xiajiajia*/
  12. /** 一般支付请求*/
  13. define("PAY_REQ_RULE", "service,charset,mer_id,sign_type,version,order_id,mer_date,amount,amt_type");
  14. /** IVR支付方式下单*/
  15. define("PAY_REQ_IVR_CALL_RULE", "service,charset,mer_id,sign_type,version,order_id,mer_date,amount,amt_type");
  16. /** IVR转呼方式下单*/
  17. define("PAY_REQ_IVR_TCALL_RULE", "service,charset,mer_id,sign_type,version,order_id,mer_date,amount,amt_type");
  18. /** 商户查询订单状态*/
  19. define("QUERY_ORDER_RULE","service,charset,sign_type,mer_id,version,mer_date");
  20. /** 商户撤销交易*/
  21. define("MER_CANCEL_RULE","service,charset,sign_type,mer_id,version,order_id,mer_date,amount");
  22. /** 商户退费*/
  23. define("MER_REFUND_RULE", "service,charset,sign_type,mer_id,version,refund_no,order_id,mer_date,org_amount");//,refund_amount
  24. /** 下载对账文件*/
  25. define("DOWNLOAD_SETTLE_FILE_RULE", "service,sign_type,mer_id,version,settle_date");
  26. /** 分账前端支付请求*/
  27. define("PAY_REQ_SPLIT_FRONT_RULE", "service,charset,mer_id,sign_type,version,order_id,mer_date,amount,amt_type");
  28. /** 分账后端支付请求*/
  29. define("PAY_REQ_SPLIT_BACK_RULE", "service,charset,mer_id,sign_type,version,order_id,mer_date,amount,amt_type");
  30. /** 分账退费*/
  31. define("SPLIT_REFUND_REQ_RULE", "service,charset,mer_id,sign_type,version,refund_no,order_id,mer_date,refund_amount,org_amount,sub_mer_id,sub_order_id");
  32. /** 直连网银*/
  33. define("PAY_REQ_SPLIT_DIRECT_RULE", "service,charset,mer_id,sign_type,version,order_id,mer_date,amount,amt_type");
  34. /** 交易结果通知*/
  35. define("PAY_RESULT_NOTIFY_RULE", "service,charset,mer_id,sign_type,version,trade_no,order_id,mer_date,pay_date,amount,amt_type,pay_type,settle_date,trade_state");
  36. /** 分账结果通知*/
  37. define("SPLIT_REQ_RESULT_RULE", "service,charset,mer_id,sign_type,version,order_id,mer_date,is_success");
  38. /** 分账退费结果通知*/
  39. define("SPLIT_REFUND_RESULT_RULE", "service,charset,sign_type,mer_id,version,refund_no,order_id,mer_date");//,refund_amount,org_amount,refund_amt,sub_mer_id,sub_order_id,sub_refund_amt,is_success
  40. /** 信用卡直连*/
  41. define("CREDIT_DIRECT_PAY_RULE", "service,charset,mer_id,sign_type,version,order_id,mer_date,amount,amt_type,pay_type,card_id,valid_date,cvv2");
  42. /** 借记卡直连*/
  43. define("DEBIT_DIRECT_PAY_RULE", "service,charset,mer_id,sign_type,version,order_id,mer_date,amount,amt_type,pay_type,card_id");
  44. /**预授权直连申请*/
  45. define("PRE_AUTH_DIRECT_REQ", "service,charset,mer_id,sign_type,version,order_id,mer_date,media_id,media_type,amount,amt_type,pay_type,card_id,valid_date,cvv2");
  46. /**预授权完成*/
  47. define("PRE_AUTH_DIRECT_PAY", "service,charset,mer_id,sign_type,version,order_id,trade_no,mer_date,amount,amt_type,pay_type");
  48. /**预授权撤销*/
  49. define("PRE_AUTH_DIRECT_CANCEL", "service,charset,mer_id,sign_type,version,order_id,trade_no,mer_date");
  50. /**银行卡转账注册*/
  51. define("PAY_TRANSFER_REGISTER ", "service,charset,mer_id,res_format,version,sign_type,req_date,req_time,media_type,media_id,identity_type,identity_code,cust_name");
  52. /**银行卡转账申请*/
  53. define("PAY_TRANSFER_REQ", "service,charset,mer_id,ret_url,res_format,version,sign_type,order_id,mer_date,req_time,media_id,media_type,amount,fee_amount,recv_account_type,recv_bank_acc_pro,recv_account,recv_user_name,recv_gate_id,recv_type,purpose");
  54. /**银行卡转账订单查询*/
  55. define("PAY_TRANSFER_ORDER_QUERY", "service,charset,mer_id,res_format,version,sign_type,order_id,mer_date");
  56. /**银行卡转账退费*/
  57. define("PAY_TRANSFER_MER_REFUND", "service,charset,mer_id,res_format,version,sign_type,refund_no,order_id,mer_date");
  58. /**预授权查询*/
  59. define("PRE_AUTH_DIRECT_QUERY", "service,charset,mer_id,sign_type,version,order_id,mer_date");
  60. /**预授权退费*/
  61. define("PRE_AUTH_DIRECT_REFUND", "service,charset,sign_type,mer_id,version,order_id,mer_date,refund_no,refund_amount,org_amount");
  62. /**预授权下载对账文件*/
  63. define("PRE_AUTH_DIRECT_SETTLE", "service,sign_type,mer_id,version,settle_date");
  64. /**实名认证*/
  65. define("CARD_AUTH", "service,charset,mer_id,sign_type,version,mer_date,card_id");
  66. /**信用卡API快捷---获取短信验证码*/
  67. define("REQ_SMS_VERIFYCODE", "service,mer_id,charset,sign_type,version,trade_no,media_id,media_type");
  68. /**信用卡API快捷---确认支付*/
  69. define("PAY_CONFIRM", "service,mer_id,charset,sign_type,version,trade_no,pay_category,card_id");
  70. /**一键快捷--前端请求*/
  71. define("PAY_REQ_SHORTCUT_FRONT", "service,charset,mer_id,sign_type,version,order_id,mer_date,amount,amt_type,pay_type,gate_id");
  72. /**一键快捷--API下单*/
  73. define("PAY_REQ_SHORTCUT", "service,charset,mer_id,sign_type,version,order_id,mer_date,amount,amt_type");
  74. /**一键快捷--(首次支付)确认支付*/
  75. define("FIRST_PAY_CONFIRM_SHORTCUT", "service,mer_id,charset,sign_type,version,trade_no,media_id,media_type,card_id");
  76. /**一键快捷--(协议支付)确认支付*/
  77. define("AGREEMENT_PAY_CONFIRM_SHORTCUT", "service,mer_id,charset,sign_type,version,trade_no,usr_pay_agreement_id");
  78. /**一键快捷--获取短信验证码*/
  79. define("REQ_SMSVERIFY_SHORTCUT", "service,mer_id,sign_type,version,trade_no");
  80. /**一键快捷--查询商户支持的银行列表*/
  81. define("QUERY_MER_BANK_SHORTCUT", "service,sign_type,charset,mer_id,version,pay_type");
  82. /**一键快捷--查询用户签约的银行列表*/
  83. define("QUERY_MERCUST_BANK_SHORTCUT", "service,sign_type,charset,mer_id,version,pay_type");
  84. /**一键快捷--商户解除用户关联*/
  85. define("UNBIND_MERCUST_PROTOCOL_SHORTCUT", "service,sign_type,charset,mer_id,version");
  86. /**分账项目--分账指令*/
  87. define("SPLIT_REQ_RULE", "service,charset,mer_id,sign_type,version,order_id,mer_date");
  88. /**分账项目--分账状态查询*/
  89. define("QUERY_SPLIT_ORDER_RULE", "service,sign_type,charset,mer_id,version,order_id,mer_date");
  90. /**付款API直连--付款请求*/
  91. define("TRANSFER_DIRECT_REQ_RULE", "service,charset,mer_id,version,sign_type,order_id,mer_date,amount,recv_account_type,recv_bank_acc_pro,recv_account,recv_user_name");
  92. /**付款API直连--付款查询*/
  93. define("TRANSFER_QUERY_RULE", "service,charset,mer_id,version,sign_type,order_id,mer_date");
  94. /**历史订单查询*/
  95. define("MER_ORDER_INFO_QUERY", "service,sign_type,charset,mer_id,version,mer_date");//order_id,trade_no
  96. /**退费订单状态查询*/
  97. define("MER_REFUND_QUERY", "service,sign_type,charset,mer_id,version,refund_no");
  98. /**聚合支付--微信、支付宝扫码支付*/
  99. define("ACTIVE_SCANCODE_ORDER", "service,charset,mer_id,sign_type,version,goods_inf,order_id,mer_date,amount,amt_type,scancode_type");
  100. define("ACTIVE_SCANCODE_ORDER_NEW", "service,charset,mer_id,sign_type,version,goods_inf,order_id,mer_date,amount,amt_type,scancode_type");
  101. /**聚合支付--微信、支付宝被扫*/
  102. define("PASSIVE_SCANCODE_PAY", "service,charset,mer_id,sign_type,version,goods_inf,order_id,mer_date,amount,amt_type,auth_code,use_desc,scancode_type");
  103. /**付款--查询结算账户余额*/
  104. define("QUERY_ACCOUNT_BALANCE", "service,charset,mer_id,version,sign_type");
  105. /**公共验证产品*/
  106. define("COMM_AUTH", "service,charset,mer_id,sign_type,version,auth_type,order_id");
  107. /**快捷支付2.2产品-下单*/
  108. define("QUICK_PAY", "service,charset,mer_id,sign_type,version,order_id,order_id,mer_date,amount,amt_type,pay_type,gate_id");
  109. /**商户向平台请求获取短信验证码*/
  110. define("GET_MESSAGE", "service,charset,mer_id,sign_type,version,trade_no,media_id,media_type");
  111. /**快捷支付中的确认支付*/
  112. define("QUICK_PAY_FIRST", "service,charset,mer_id,sign_type,version,trade_no,trade_no,verify_code,media_type,media_id");
  113. /**获取商户支持的银行列表*/
  114. define("GET_BANK_MER", "service,charset,mer_id,sign_type,version,pay_type");
  115. /**快捷支付解约列表*/
  116. define("CANCEL_SURRENDER", "service,charset,mer_id,sign_type,version");
  117. /**退费消息补录*/
  118. define("REFUND_INFO_REPLENISH", "service,charset,mer_id,sign_type,version,refund_no,card_holder,card_id");
  119. /**一键快捷API绑定申请*/
  120. define("REQ_BIND_VERIFY_SHORCUT", "service,mer_id,sign_type,version,media_type,media_id,card_id");
  121. /**一键快捷API绑定确认*/
  122. define("REQ_BIND_CONFIRM_SHORCUT", "service,mer_id,sign_type,charset,version,media_type,media_id,card_id");
  123. /**一键快捷绑定结果通知*/
  124. define("BIND_AGREEMENT_NOTIFY_SHORCUT", "service,mer_id,sign_type,version,mer_cust_id,media_type,media_id,usr_busi_agreement_id,usr_pay_agreement_id,gate_id,last_four_cardid,bank_card_type");
  125. /**一键快捷前台绑定请求*/
  126. define("BIND_REQ_SHORTCUT_FRONT", "service,mer_id,sign_type,charset,version,pay_type,gate_id,mer_cust_id");
  127. /**商业委托签约下短信*/
  128. define("COM_SIGN_ORDER","service,mer_id,sign_type,charset,media_id,media_type,card_id");
  129. /**商业委托签约确认*/
  130. define("COM_BIND_CONFIRM","service,mer_id,sign_type,charset,bind_id,verify_code");
  131. /**子商户提现*/
  132. define("EDRAW_TRANS_MAIN ", "service,charset,mer_id,sign_type,version");
  133. /**子商户提现查询*/
  134. define("QUERY_EDRAW_TRANS_MAIN", "service,charset,mer_id,sign_type,version");
  135. /**子商户余额查询*/
  136. define("QUERY_ACCOUNT_BALANCE_MAIN", "service,charset,mer_id,sign_type,version");
  137. /**
  138. * 正则表达式校验工具类
  139. */
  140. Class RegexUtil{
  141. public static $serviceRule = array(
  142. "pay_req"=>PAY_REQ_RULE,
  143. "query_order"=>QUERY_ORDER_RULE,
  144. "mer_cancel"=>MER_CANCEL_RULE,
  145. "mer_refund"=>MER_REFUND_RULE,
  146. "download_settle_file"=>DOWNLOAD_SETTLE_FILE_RULE,
  147. "split_refund_req"=>SPLIT_REFUND_REQ_RULE,
  148. "query_mer_bank_shortcut"=>QUERY_MER_BANK_SHORTCUT,
  149. "unbind_mercust_protocol_shortcut"=>UNBIND_MERCUST_PROTOCOL_SHORTCUT,
  150. "transfer_direct_req"=>TRANSFER_DIRECT_REQ_RULE,
  151. "transfer_query"=>TRANSFER_QUERY_RULE,
  152. "mer_order_info_query"=>MER_ORDER_INFO_QUERY,
  153. "mer_refund_query"=>MER_REFUND_QUERY,
  154. "active_scancode_order"=>ACTIVE_SCANCODE_ORDER,
  155. "active_scancode_order_new"=>ACTIVE_SCANCODE_ORDER_NEW,
  156. "passive_scancode_pay"=>PASSIVE_SCANCODE_PAY,
  157. "query_account_balance"=>QUERY_ACCOUNT_BALANCE,
  158. "comm_auth"=>COMM_AUTH,
  159. "apply_pay_shortcut"=>QUICK_PAY,
  160. "sms_req_shortcut"=>GET_MESSAGE,
  161. "confirm_pay_shortcut"=>QUICK_PAY_FIRST,
  162. "refund_info_replenish"=>REFUND_INFO_REPLENISH,
  163. "apply_sms_bind_shortcut"=>COM_SIGN_ORDER,
  164. "confirm_bind_shortcut"=>COM_BIND_CONFIRM,
  165. "pay_req_shortcut"=>PAY_REQ_SHORTCUT,
  166. "agreement_pay_confirm_shortcut"=>AGREEMENT_PAY_CONFIRM_SHORTCUT,
  167. );
  168. public static $reqRule = array(
  169. "service"=>"/^[a-zA-Z0-9_]{1,32}$/",
  170. "charset"=>"/^(UTF-8|GBK|GB2312|GB18030)$/",
  171. "mer_id"=>"/^[0-9]{1,8}$/",
  172. "sign_type"=>"/^RSA$/",
  173. "version"=>"/^(4.0|1.0)$/",
  174. "media_type"=>"/^(MOBILE|EMAIL|MERUSERID)$/",
  175. "order_id"=>"/^\S{1,32}$/",
  176. "mer_date"=>"/^[1-2][0-9]{7}$/",
  177. "amount"=>"/^[1-9][0-9]*$/",
  178. "amt_type"=>"/^RMB$/",
  179. "expire_time"=>"/^[0-9]{1,32}$/",
  180. "ret_code"=>"/^[0-9]+$/",
  181. "trade_no"=>"/^[0-9]{1,16}$/",
  182. "pay_date"=>"/^[1-2][0-9]{7}$/",
  183. "settle_date"=>"/^[1-2][0-9]{7}$/",
  184. "error_code"=>"/^[0-9]*$/",
  185. "mer_check_date"=>"/^[1-2][0-9]{7}$/",
  186. "refund_amt"=>"/^[1-9][0-9]*$/",
  187. "refund_amount"=>"/^[1-9][0-9]*$/",
  188. "org_amount"=>"/^[1-9][0-9]*$/",
  189. "split_type"=>"/^[1-2]{0,2}$/",
  190. "is_success"=>"/^(Y|N)$/",
  191. "sub_mer_id"=>"/^[0-9]*$/",
  192. "req_date"=>"/^[1-2][0-9]{7}$/",
  193. "req_time"=>"/^[0-9]{6}$/",
  194. "birthday"=>"/^[1-2][0-9]{7}$/",
  195. "sex"=>"/^(M|F)$/",
  196. "contact_mobile"=>"^[0-9]{11}$/",
  197. "fee_amount"=>"/^(0|[1-9][0-9]*)$/",
  198. "recv_account_type"=>"/^[0-1]{2}$/",
  199. "recv_bank_acc_pro"=>"/^[0-1]{1}$/",
  200. "recv_type"=>"/^[0-1]$/",
  201. "debit_pay_type"=>"^(1|2)$",
  202. "pay_category"=>"/^(01|02)$/",
  203. "split_category"=>"/^(1|2|3)$/",
  204. "push_type"=>"/^(0|1|2|3)$/",
  205. "order_type"=>"/^(1|2)$/",
  206. "sign"=>"/^\S+$/",
  207. "res_format"=>"/^\S+$/",
  208. "goods_inf"=>"/^\S+$/",
  209. "token"=>"/^\S+$/",
  210. "trade_state"=>"/^\S{1,32}$/",
  211. "refund_no"=>"/^\S{1,16}$/",
  212. "refund_state"=>"/^\S+$/",
  213. "sub_order_id"=>"/^\S{1,32}$/",
  214. "refund_desc"=>"/^\S{1,128}$/",
  215. "valid_date"=>"/^\S{1,256}$/",
  216. "cvv2"=>"/^\S{1,256}$/",
  217. "mail_addr"=>"/^\S{1,64}$/",
  218. "contact_phone"=>"/^\S+$/",
  219. "finance_vou_no"=>"/^\S{1,32}$/",
  220. "purpose"=>"/^\S+$/",
  221. "prov_name"=>"/^\S+$/",
  222. "city_name"=>"/^\S+$/",
  223. "bank_brhname"=>"/^\S+$/",
  224. "ret_url"=>"/^\S*$/",
  225. "notify_url"=>"/^\S*$/",
  226. "goods_id"=>"/^\S*$/",
  227. "media_id"=>"/^\S+$/",
  228. "mobile_id"=>"/^\S{0,11}$/",
  229. "pay_type"=>"/^\S*$/",
  230. "gate_id"=>"/^\S*$/",
  231. "mer_priv"=>"/^\S*$/",
  232. "user_ip"=>"/^\S*$/",
  233. "expand"=>"/^\S*$/",
  234. "ret_msg"=>"/^\S*$/",
  235. "pay_seq"=>"/^\S*$/",
  236. "bank_check_state"=>"/^\S*$/",
  237. "product_id"=>"/^\S*$/",
  238. "mer_trace"=>"/^\S*$/",
  239. "split_data"=>"/^\S*$/",
  240. "card_id"=>"/^\S{0,256}$/",
  241. "pass_wd"=>"/^\S{0,256}$/",
  242. "identity_type"=>"/^\S{0,256}$/",
  243. "identity_code"=>"/^\S{0,256}$/",
  244. "card_holder"=>"/^\S{0,256}$/",
  245. "cust_name"=>"/^\S{0,32}$/",
  246. "recv_account"=>"/^\S*$/",
  247. "recv_user_name"=>"/^\S*$/",
  248. "recv_gate_id"=>"/^\S*$/",
  249. "verify_code"=>"/^\S{0,8}$/",
  250. "mer_cust_id"=>"/^\S{0,32}$/",
  251. "usr_busi_agreement_id"=>"/^\S{0,64}$/",
  252. "usr_pay_agreement_id"=>"/^\S{0,64}$/",
  253. "identity_holder"=>"/^\S{0,256}$/",
  254. "split_refund_list"=>"/^\S*$/",
  255. "split_cmd"=>"/^\S*$/",
  256. "settle_type"=>"/^\S*$/",
  257. //新增
  258. //"scancode_type"=>"/WECHAT|ALIPAY|QQ/",
  259. "auth_code"=>"",
  260. "use_desc"=>"",
  261. // "last_four_cardid"=>"[0-9]{4}",4,false),
  262. "bank_account"=>"",
  263. "account_name"=>"",
  264. // "bank_card_type"=>"",16,false),
  265. );
  266. }