klyUnitTestTrader2.html 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373
  1. <html>
  2. <head>
  3. <meta charset="UTF-8">
  4. <title>快来优商家小程序之现场经理接口测试</title>
  5. <meta name="renderer" content="webkit|ie-comp|ie-stand">
  6. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  7. <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
  8. <script type="text/javascript" src="jquery.js"></script>
  9. </head>
  10. <body>
  11. <button onclick="fetchPageDataTest()">通用分页数据获取接口测试</button>
  12. <button onclick="entityHandleTest()">通用实体数据存取接口测试</button>
  13. <button onclick="registerTrader2Test(this)">现场经理完善信息接口测试</button>
  14. <button onclick="fetchMinaPhoneTest()">现场经理获取手机号接口测试</button>
  15. <button onclick="fetchMinaOpenidTest()">现场经理获取openid接口测试</button>
  16. </body>
  17. </html>
  18. <script type="text/javascript">
  19. function getQueryVariable(varName){
  20. var query = window.location.search.substring(1);
  21. var vars = query.split("&");
  22. for (var i=0;i<vars.length;i++) {
  23. var pair = vars[i].split("=");
  24. if(pair[0] == varName){return pair[1];}
  25. }
  26. return(false);
  27. }
  28. if(getQueryVariable("h5cb")=="true"){
  29. let h5payno=getQueryVariable("h5payno");
  30. alert("h5支付回调回来了,此时可以ajax去查单了[支付商家订单号:"+h5payno+"]");
  31. }
  32. //统一的持久化token方法
  33. function baseSaveToken(token){
  34. window.localStorage.setItem("TOKEN",token);
  35. window.sessionStorage.setItem("TOKEN",token);
  36. }
  37. //统一获取token方法
  38. function baseGetToken(){
  39. return window.localStorage.getItem("TOKEN");
  40. return window.sessionStorage.getItem("TOKEN");
  41. }
  42. //统一对接口回调结果数据进行校验的方法
  43. function verifyAjaxResult(ajaxResult,handleReLogin){
  44. if(typeof(ajaxResult.ErrMsg)=="undefined"){//必须返回ErrMsg属性,才算接口正常
  45. alert("接口调用失败");//接口调用失败信息提示
  46. return false;
  47. }else if(ajaxResult.ErrMsg){//ErrMsg属性非空,则接口异常
  48. if(handleReLogin && parseInt(ajaxResult.ErrMsg.indexOf("FOREND_TOKEN_INVAILD"))>-1){//登录TOKEN无效异常
  49. alert("登录TOKEN无效:"+ajaxResult.ErrMsg);
  50. window.location.href="重定向到登录页面,登录后后端会返回一个新的token,然后持久化即可";
  51. //wx.navigateTo("重定向到获取微信openid的接口/或直接ajax静默获取一下,此接口会返回新的token,然后持久化即可");
  52. return false;
  53. }
  54. alert("接口调用失败:"+JSON.stringify(ajaxResult.ErrMsg));//接口调用失败信息提示
  55. return false;
  56. }
  57. return true;
  58. }
  59. //公共库中配置webapi url头 WsAjaxPrj为项目标记参数(优信聘YXP,快来优KLY),切记大小写敏感
  60. let webapiHost="https://zpwebapi.kaidekuai.com";
  61. let webapiUrl="https://zpwebapi.kaidekuai.com/ajaxEntryCenter.php?WsAjaxPrj=KLY";
  62. // webapiHost="https://api.kuailaiyou.top";
  63. // //快来优/快来优/快来优 公共库中配置webapi url头
  64. // webapiUrl="https://api.kuailaiyou.top/ajaxEntryCenter.php?WsAjaxPrj=KLY";
  65. function fetchMinaOpenidTest(){
  66. url=webapiUrl + "&WsAjaxBiz=Trader2&WsAjaxAction=fetchMinaOpenid";
  67. $.ajax({
  68. type: 'post',
  69. contentType: 'text/json,charset=utf-8',
  70. dataType: "JSON",
  71. url: url,
  72. data: {
  73. //wx.login 的code
  74. "minaCode":"011I7F000D3fMM10hd200Af68P0I7F0i",
  75. "regmode":"0",//0空-openid标识模式;1-phone标识模式;
  76. },
  77. success: function (res) {
  78. if(verifyAjaxResult(res,false)==false) return;//统一的进行接口返回数据的预检验!
  79. let data=res.Result;//输入输出都可以是嵌套对象
  80. console.log("成功:"+JSON.stringify(data));
  81. baseSaveToken(data.forendToken);//缓存openid标识模式token
  82. let baseUser=data.baseUser;
  83. //缓存基本用户信息id,后端会缓存解密数据的sessionkey
  84. localStorage.setItem("baseUserId",baseUser["id"]);
  85. //openid标识模式缓存openid
  86. localStorage.setItem("openid",baseUser["wxmina_openid"]);
  87. //openid标识模式业务用户信息
  88. let bizUserInfo=data.bizTrader2;
  89. alert(JSON.stringify(data));
  90. },
  91. error: function (xhr, textStatus, errorThrown) {
  92. let failMsg="接口调用失败";
  93. failMsg+=" 状态码:"+xhr.status;
  94. failMsg+=" 错误信息:"+xhr.statusText;
  95. failMsg+=errorThrown?" "+errorThrown:"";
  96. console.log(failMsg);
  97. },
  98. complete:function(xhr,ts){
  99. }
  100. });
  101. }
  102. function fetchMinaPhoneTest(){
  103. url=webapiUrl + "&WsAjaxBiz=Trader2&WsAjaxAction=fetchMinaPhone";
  104. $.ajax({
  105. type: 'post',
  106. contentType: 'text/json,charset=utf-8',
  107. dataType: "JSON",
  108. url: url,
  109. data: {
  110. "regmode":"0",//0空-openid标识模式;1-phone标识模式;
  111. "baseUserId":localStorage.getItem("baseUserId"),
  112. //获取手机号后的相关数据
  113. "iv":"4qoqG9U1dE+3WXQc7Ry0Eg==",
  114. "encryptedData":"mswe7ZnbgY1m9kGfbs3CWwDEieCIlldA5W0blOoE1ARNcvmiTvLIkUb700RJFme2WUAW1QCpKGHERcMxw3MhMC03tmypd52LygePJRh+7g1YD+nmtGPiAaWQh4QgqfXH1G0YNsI3IHzRko0ZN2PPRIBQ9NI3QErrTM7YitDhQ2Z02L3AWmrxA9caH/TuR5xq5o+IA1VayoYScd3qYwh43Q==",
  115. // "sesseion_key":"sYVcizJr7phhGHp0PAP+pQ==",//
  116. // "iv":"n8KZI4bkA5kosszJD3teUQ==",
  117. // "encryptedData":"RU2LeokNrNWyBPSZkmTUPNJ0arRCXIomBzCkuTC1NgEr2hBcjlJqWQ45FePYUwRP8hTZJ+pEhI2auqNnVlelKqFrIGwR1x4198mmKNAyWtG04me8vv5nrsMthfu91RxNvRKPsTl5CG4RaSYa4FRrtuzylo1ttBHgRWTVOKHRRG8P4CkBYvOYTuIhz+BkTLtq9XrBWeW32jdyZiOI5nO8vw==",//
  118. },
  119. success: function (res) {
  120. if(verifyAjaxResult(res,false)==false) return;//统一的进行接口返回数据的预检验!
  121. let data=res.Result;//输入输出都可以是嵌套对象
  122. console.log("成功:"+JSON.stringify(data));
  123. baseSaveToken(data.forendToken);//缓存token
  124. let baseUser=data.baseUser;
  125. //缓存基本用户信息id
  126. localStorage.setItem("baseUserId",baseUser["id"]);
  127. //缓存基本用户phone
  128. localStorage.setItem("phone",baseUser["mobile"]);
  129. //业务用户信息
  130. let bizUserInfo=data.bizTrader2;
  131. alert(JSON.stringify(data));
  132. },
  133. error: function (xhr, textStatus, errorThrown) {
  134. let failMsg="接口调用失败";
  135. failMsg+=" 状态码:"+xhr.status;
  136. failMsg+=" 错误信息:"+xhr.statusText;
  137. failMsg+=errorThrown?" "+errorThrown:"";
  138. console.log(failMsg);
  139. },
  140. complete:function(xhr,ts){
  141. }
  142. });
  143. }
  144. function registerTrader2Test(){
  145. $.ajax({
  146. type: 'post',
  147. contentType: 'text/json,charset=utf-8',
  148. dataType: "JSON",
  149. //非商户用户注册完善信息接口;大小写敏感,直接复制即可
  150. url: webapiUrl + "&WsAjaxBiz=Trader2&WsAjaxAction=registerInfo",
  151. data: {
  152. "FOREND_TOKEN":baseGetToken(),//统一传递一下前端token
  153. //"phone":localStorage.getItem("phone"),//手机号身份标识 两者手机优先
  154. "openid":localStorage.getItem("openid"),//openid身份标识
  155. "nickname":"昵称",//
  156. "profile_photo":"头像",//
  157. "true_name":"张三李四",//
  158. },
  159. success: function (res) {
  160. if(verifyAjaxResult(res,false)==false) return;//统一的进行接口返回数据的预检验!
  161. let data=res.Result;//输入输出都可以是嵌套对象
  162. console.log("成功:"+JSON.stringify(data));
  163. //可以在此处放置前端的假数据
  164. alert(JSON.stringify(data));
  165. },
  166. error: function (xhr, textStatus, errorThrown) {
  167. let failMsg="接口调用失败";
  168. failMsg+=" 状态码:"+xhr.status;
  169. failMsg+=" 错误信息:"+xhr.statusText;
  170. failMsg+=errorThrown?" "+errorThrown:"";
  171. console.log(failMsg);
  172. },
  173. complete:function(xhr,ts){
  174. }
  175. });
  176. }
  177. function entityHandleTest(mode){
  178. let data={
  179. "FOREND_TOKEN":baseGetToken(),//统一传递一下前端token
  180. //"phone":localStorage.getItem("phone"),//手机号身份标识 两者手机优先
  181. "openid":localStorage.getItem("openid"),//openid身份标识
  182. };
  183. ajaxUrl = webapiUrl + "&WsAjaxBiz=Trader2&WsAjaxAction=entityDataHandle";
  184. /*招聘信息相关接口*/
  185. data["bizCatalog"]="RecruitEntity";
  186. data["handleMode"]="fetch";
  187. data["bizId"]="1";//招聘记录ID
  188. /***工单详情**/
  189. data["bizCatalog"]="TodoWorkEntity";
  190. data["handleMode"]="fetch";
  191. data["workid"]="1";
  192. /***抢夺授权**/
  193. data["bizCatalog"]="RecruitEntity";
  194. data["handleMode"]="grabDelegate";
  195. data["recruitId"]="1";//授权的招聘记录id 分享挂接 缓存后传递
  196. /***拉取支付前(展示商家/活信息/工资/支付码/自己专款专户余额等信息)接口**/
  197. data["bizCatalog"]="TodoWorkEntity";
  198. data["handleMode"]="waitPay";
  199. data["workid"]="0";//工单id 优选工单id
  200. data["workPayCode"]="A00001";//工单核销码
  201. /***工单支付结算接口**/
  202. data["bizCatalog"]="TodoWorkEntity";
  203. data["handleMode"]="paySettle";
  204. data["workid"]="2";//工单id 优选工单id
  205. data["workPayCode"]="A00001";//工单核销码
  206. data["minaCode"]="011VD4Ga1l147C0x8pFa1iZSSs1VD4Gx";//小程序登录态code,以便在余额不足时,拉起微信支付
  207. //返回prePayInfo则为需微信支付一部分钱;否则为余额支付成功!
  208. /*
  209. wx.login({
  210. success:function(e){
  211. minaCode=e.code//传递过来
  212. }
  213. })
  214. {
  215. "payBackBizCatalog":"1",//用于进行支付确认的参数,附加下一个接口调用参数中,用于确认支付结果;
  216. "payBackBizId":"2",//用于进行支付确认的参数,附加下一个接口调用参数中,用于确认支付结果;
  217. "appId":"wx8c230ea00ceb8676",
  218. "timeStamp":"1636448664",
  219. "nonceStr":"Qd4Ra46kpFWqGpMauTaDvTkQpt6n7goM",
  220. "package":"prepay_id=wx09170424477823cd6b04110220c68f0000",
  221. "signType":"RSA",
  222. "paySign":"ZwWt4tXREUrIzMAtNfe5W3xZrHJ9clOntoH9K04gBdcqO6r3tkH02nuXMAw9zX4rfOda4rMvdFyAUEwLF8kPMiXO8dATBsW2SDnoNgccs3MAlzuh6KpukFPDZiizYpSlcc3ozRpHxn56FoUwPv0vl0HeIRl+wY8JOo64IoeZHseJm30Kg4+Eb2UAnOHcamzoKJwU5eikFd/SGTYRrAvVb/GrhncGlX3cbOG5Mpl5IO0562dKbJRoVzg0AbXNpudjR76aj1usJZRLOve/M0qA+KFyajG5ZSa0kgLCMzvlT/HaLn8TkM/0O7pyjA51dCBe51nruiIVgPy69Up1VAWAhQ=="
  223. }
  224. wx.requestPayment({
  225. "timeStamp":"1636464033",
  226. "nonceStr": "FTAm6y367cdKq8swYuW7dFPfvpUsf8C5",
  227. "package": "prepay_id=wx092120331932728919625e055f0dfa0000",
  228. "signType": "RSA",
  229. "paySign": "DfqExz4l3zDPKvKQ3QcJ2+fiRv4gdgIeERG4bhRCfQ3IGFBDZfPJodiiBNTWFkZtzbcnOuCNLtMHZvLPuAcc7AlAPlXQSJTkGrpFLlAb5a/6NBbRVbbe56/ZrQw5F7m1RyZ3dIPYJUeT804H+LELEn9aFdY2j6MXKsrZ+62rKpCTdfFlRy1Wl7Pac2UKp/z6gvVZNT6+AUCVbF1b1otCaKbU/XgpeYmOCm8SlotFW6i2JujlLA78o7lPIjcTCJHj/Ebb0WGTM15Z7O8TkHVqc6Z4TsFwztIiYN6xaANnQYjFPymFVMO0ZRs7OGkY+SgXOnwMuKLu9YcCYjC4RAtBfA==",
  230. "success":function(res){
  231. wx.request("url?WsAjaxBiz=Trader&WsAjaxAction=entityDataHandle&payBackBizCatalog=&payBackBizId=")
  232. },
  233. "fail":function(res){
  234. },
  235. "complete":function(res){
  236. }
  237. });
  238. */
  239. /****现场经理侧:余额模式支付成功后则提示,并引导到已结算工单列表页面(查看结算情况)*/
  240. /****现场经理侧:微信支付模式前端支付成功后,需要用下面接口确认一下支付是否成功,成功则提示,并引导到已结算工单列表页面(查看结算情况)*/
  241. /*工单支付确认接口*/
  242. ajaxUrl = webapiUrl + "&WsAjaxBiz=Public&WsAjaxAction=entityDataHandle";
  243. data["bizCatalog"]="WeiXinEntity";
  244. data["handleMode"]="confirmPaySuccess";
  245. data["payBizCatalog"]="1";//支付业务类别:1-工单支付业务;
  246. data["payBizId"]="35";//支付记录id
  247. /***微信支付独立充值接口**/
  248. ajaxUrl = webapiUrl + "&WsAjaxBiz=Trader2&WsAjaxAction=entityDataHandle";
  249. data["bizCatalog"]="Trader2Entity";
  250. data["handleMode"]="wxRecharge";
  251. data["bizTraderId"]="1";//所属商家id
  252. data["money"]="0.01";//金额
  253. data["minaCode"]="04165zll2C6C684Xvqml2WNFUu365zlZ";//小程序登录态code,拉起微信支付
  254. /*微信充值支付确认接口*/
  255. ajaxUrl = webapiUrl + "&WsAjaxBiz=Public&WsAjaxAction=entityDataHandle";
  256. data["bizCatalog"]="WeiXinEntity";
  257. data["handleMode"]="confirmPaySuccess";
  258. data["payBizCatalog"]="2";//支付业务类别:2-微信支付充值;
  259. data["payBizId"]="47";//支付记录id
  260. /***获取某个会员信息**/
  261. data["bizCatalog"]="WorkerEntity";
  262. data["handleMode"]="fetch";
  263. data["workerId"]="1";//会员业务用户ID
  264. /***获取某个商家信息**/
  265. data["bizCatalog"]="TraderEntity";
  266. data["handleMode"]="fetch";
  267. data["traderId"]="1";//商家ID
  268. $.ajax({
  269. type: 'post',
  270. contentType: 'text/json,charset=utf-8',
  271. dataType: "JSON",
  272. url: ajaxUrl,
  273. data: data,
  274. success: function (res) {
  275. if(verifyAjaxResult(res,false)==false) return;//统一的进行接口返回数据的预检验!
  276. let data=res.Result;//输入输出都可以是嵌套对象
  277. console.log("成功:"+JSON.stringify(data));
  278. //可以在此处放置前端的假数据
  279. alert(JSON.stringify(data));
  280. },
  281. error: function (xhr, textStatus, errorThrown) {
  282. let failMsg="接口调用失败";
  283. failMsg+=" 状态码:"+xhr.status;
  284. failMsg+=" 错误信息:"+xhr.statusText;
  285. failMsg+=errorThrown?" "+errorThrown:"";
  286. console.log(failMsg);
  287. },
  288. complete:function(xhr,ts){
  289. }
  290. });
  291. }
  292. function fetchPageDataTest(mode){
  293. let data={
  294. "FOREND_TOKEN":baseGetToken(),//统一传递一下前端token
  295. "phone":"18920407769",//登录账号
  296. };
  297. ajaxUrl = webapiUrl + "&WsAjaxBiz=Trader2&WsAjaxAction=fetchPageData";
  298. //获取授权的招聘记录列表
  299. data["bizCatalog"]="RecruitEntity";
  300. data["handleMode"]="fetchall";
  301. data["pageIndex"]=1;
  302. data["pageSize"]=10;
  303. data["orderby"]="1";//0空-最新发布倒序排序;1-距离倒序;2-薪资倒序;
  304. data["nowLngLat"]="117.68898010253906,39.0351862510659";
  305. data["query"]={
  306. "status":"0",//0空-全部;1-待提交/草稿;2-待审核;3-已审核;4-被驳回;
  307. "title":"标",//招聘标题筛选
  308. };
  309. //获取授权的工单列表
  310. data["bizCatalog"]="TodoWorkEntity";
  311. data["handleMode"]="fetchall";
  312. data["pageIndex"]=1;
  313. data["pageSize"]=10;
  314. data["orderby"]="0";//0空-时间倒序;1-薪资倒序;
  315. data["query"]={
  316. "status":"",//0空-全部;1-待提交;2-已报名待审核;3-已审核待开工;4-报名被驳回;5-已开始工作;6-已结束工作待结算;7-已结算;8-主动取消报名;9-被违约 10-被动取消报名;11-未结算;
  317. "teamrole":"",//0空-全部;1-单报项;2-所有团项;3-开团项;4-参团项;
  318. "teamstatus":"",//0空-全部;1-待参团;2-已提交参团待审核;3-已审核入团;4-参团被驳回;5-参团被踢出;6-已解散;7-被动取消;
  319. "recuritTitle":"",//招聘标题筛选
  320. "memberName":"",//成员姓名
  321. };
  322. $.ajax({
  323. type: 'post',
  324. contentType: 'text/json,charset=utf-8',
  325. dataType: "JSON",
  326. url: ajaxUrl,
  327. data: data,
  328. success: function (res) {
  329. if(verifyAjaxResult(res,false)==false) return;//统一的进行接口返回数据的预检验!
  330. let data=res.Result;//输入输出都可以是嵌套对象
  331. console.log("成功:"+JSON.stringify(data));
  332. //可以在此处放置前端的假数据
  333. alert(JSON.stringify(data));
  334. },
  335. error: function (xhr, textStatus, errorThrown) {
  336. let failMsg="接口调用失败";
  337. failMsg+=" 状态码:"+xhr.status;
  338. failMsg+=" 错误信息:"+xhr.statusText;
  339. failMsg+=errorThrown?" "+errorThrown:"";
  340. console.log(failMsg);
  341. },
  342. complete:function(xhr,ts){
  343. }
  344. });
  345. }
  346. </script>