MediaPayController.class.php 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765
  1. <?php
  2. namespace bibidd\Controller;
  3. use Think\Controller;
  4. use Bibidd\Controller\CommonBaseController;
  5. class MediaPayController extends CommonBaseController
  6. {
  7. /**
  8. * 测试功能
  9. * @param $templateid []
  10. * @return $type 消息类型
  11. */
  12. public function testone()
  13. {
  14. echo PHP_EOL . '123';
  15. }
  16. //封装返回的数据
  17. protected function returnData()
  18. {
  19. $data['status'] = '0';
  20. $data['code'] = '202';//未携带参数,请求失败
  21. $data['message'] = 'error';
  22. return $data;
  23. }
  24. /**
  25. *获取用户IP地址
  26. * @param int $type
  27. * @return mixed
  28. */
  29. private function get_bb_ip($type = 0)
  30. {
  31. $type = $type ? 1 : 0;
  32. static $ip = NULL;
  33. if ($ip !== NULL) return $ip[$type];
  34. if ($_SERVER['HTTP_X_REAL_IP']) {//nginx 代理模式下,获取客户端真实IP
  35. $ip = $_SERVER['HTTP_X_REAL_IP'];
  36. } elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {//客户端的ip
  37. $ip = $_SERVER['HTTP_CLIENT_IP'];
  38. } elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {//浏览当前页面的用户计算机的网关
  39. $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
  40. $pos = array_search('unknown', $arr);
  41. if (false !== $pos) unset($arr[$pos]);
  42. $ip = trim($arr[0]);
  43. } elseif (isset($_SERVER['REMOTE_ADDR'])) {
  44. $ip = $_SERVER['REMOTE_ADDR'];//浏览当前页面的用户计算机的ip地址
  45. } else {
  46. $ip = $_SERVER['REMOTE_ADDR'];
  47. }
  48. // IP地址合法验证
  49. $long = sprintf("%u", ip2long($ip));
  50. $ip = $long ? array($ip, $long) : array('0.0.0.0', 0);
  51. return $ip[$type];
  52. }
  53. function send_post($url, $post_data) {
  54. $postdata = http_build_query($post_data);
  55. $options = array(
  56. 'http' => array(
  57. 'method' => 'POST',
  58. 'header' => 'Content-type:application/x-www-form-urlencoded',
  59. 'content' => $postdata,
  60. 'timeout' => 15 * 60 // 超时时间(单位:s)
  61. )
  62. );
  63. $context = stream_context_create($options);
  64. $result = file_get_contents($url, false, $context);
  65. return $result;
  66. }
  67. /**
  68. * 模拟post进行url请求
  69. * @param string $url
  70. * @param string $param
  71. */
  72. function request_post($url = '', $param = '') {
  73. if (empty($url) || empty($param)) {
  74. return false;
  75. }
  76. $postUrl = $url;
  77. $curlPost = $param;
  78. $ch = curl_init();//初始化curl
  79. curl_setopt($ch, CURLOPT_URL,$postUrl);//抓取指定网页
  80. curl_setopt($ch, CURLOPT_HEADER, 0);//设置header
  81. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
  82. curl_setopt($ch, CURLOPT_POST, 1);//post提交方式
  83. curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
  84. $data = curl_exec($ch);//运行curl
  85. curl_close($ch);
  86. return $data;
  87. }
  88. function testAction(){
  89. header('Content-Type:text/json;charset=utf-8');
  90. header('Access-Control-Allow-Origin:*');
  91. header("Access-Control-Allow-Headers:token,Origin, X-Requested-With, Content-Type, Accept");
  92. header('Access-Control-Allow-Methods:POST');
  93. header('Access-Control-Expose-Headers:*');
  94. $url = 'http://mobile.jschina.com.cn/jschina/register.php';
  95. $post_data['appid'] = '10';
  96. $post_data['appkey'] = 'cmbohpffXVR03nIpkkQXaAA1Vf5nO4nQ';
  97. $post_data['member_name'] = 'zsjs123';
  98. $post_data['password'] = '123456';
  99. $post_data['email'] = 'zsjs123@126.com';
  100. $o = "";
  101. foreach ( $post_data as $k => $v )
  102. {
  103. $o.= "$k=" . urlencode( $v ). "&" ;
  104. }
  105. $post_data = substr($o,0,-1);
  106. $res = $this->request_post($url, $post_data);
  107. print_r($res);
  108. }
  109. /**
  110. * 测试功能
  111. * @param $templateid []
  112. * @return $type 消息类型
  113. */
  114. public function strtest(){
  115. header('Content-Type:text/json;charset=utf-8');
  116. header('Access-Control-Allow-Origin:*');
  117. header("Access-Control-Allow-Headers:token,Origin, X-Requested-With, Content-Type, Accept");
  118. header('Access-Control-Allow-Methods:POST');
  119. header('Access-Control-Expose-Headers:*');
  120. //用户id
  121. $uid = $_POST['uid'];
  122. //选择支付类型
  123. $type = $_POST['type'];
  124. $mo = $_POST['mo'];
  125. switch ($mo) {
  126. case '1':
  127. $pay_amount = 60;
  128. //永久会员
  129. $vip_type = 1;
  130. break;
  131. case '2':
  132. $pay_amount = 50;
  133. //3月会员
  134. $vip_type = 2;
  135. break;
  136. case '3':
  137. $pay_amount = 40;
  138. //1月会员
  139. $vip_type = 3;
  140. break;
  141. default:
  142. echo "type error";
  143. die();
  144. }
  145. switch ($type) {
  146. case '1':
  147. // $pay_bankcode = 8088;
  148. // $beizhu = '支付宝原生';
  149. $pay_bankcode = M("td_save")->where("id=1")->getField("td_id");
  150. $beizhu =M("td_save")->where("id=1")->getField("td_str"); //ok
  151. // $pay_bankcode = 8035;
  152. // $beizhu = '支付宝纯视频'; //风控
  153. // $pay_amount = 30;
  154. // $pay_bankcode = 8008;
  155. // $beizhu = '支付宝直播混合'; //ok
  156. // $pay_bankcode = 8009;
  157. // $beizhu = '支付宝YY'; //风险
  158. // $pay_amount = 10;
  159. break;
  160. case '2':
  161. // $pay_bankcode = 8023;
  162. // $beizhu = '支付宝快手'; //ok
  163. $pay_bankcode = M("td_save")->where("id=2")->getField("td_id");
  164. $beizhu =M("td_save")->where("id=2")->getField("td_str"); //ok
  165. // $pay_bankcode = 8016;
  166. // $beizhu = '微信抖音'; //拉起弹窗无法支付 ok 3
  167. // $pay_bankcode = 8037;
  168. // $beizhu = '微信话费';
  169. // $pay_amount = 50;
  170. break;
  171. #微信支付需要判断
  172. case '3':
  173. // $pay_bankcode = 8008;
  174. // $beizhu = '支付宝直播混合'; //ok
  175. $pay_bankcode = M("td_save")->where("id=3")->getField("td_id");
  176. $beizhu =M("td_save")->where("id=3")->getField("td_str"); //ok
  177. // if ($pay_amount==40) {
  178. // $pay_bankcode = 8015;
  179. // $beizhu = '微信游戏原生'; //风控
  180. // }else{
  181. // $pay_bankcode = 8026;
  182. // $beizhu = '微信游戏原生'; //风控
  183. // }
  184. break;
  185. case '4':
  186. $pay_bankcode = 8016;
  187. $beizhu = '微信抖音';
  188. break;
  189. case '5':
  190. $pay_bankcode = 8009;
  191. $beizhu = '支付宝YY';
  192. break;
  193. default:
  194. echo "type error";
  195. }
  196. $max=M("pay_test")->order("id desc")->limit(1)->find()['order_id'];
  197. if($max)
  198. {
  199. $number=$this->plus("$max","1");
  200. }else{
  201. $number='10000000000000000001';
  202. }
  203. //提交时间
  204. $ttime = time();
  205. $pay_applydate = date("Y-m-d H:i:s",$ttime);;
  206. //服务端通知
  207. $pay_notifyurl = 'https://www.aa9169.com/bibidd/MediaPaytest/huidiao_test';
  208. //页面跳转通知
  209. $pay_callbackurl = 'https://www.aa9169.com/bibidd/MediaPaytest/huidiao_test';
  210. //付款人 IP
  211. $pay_ip = $this->get_bb_ip();
  212. //商户号
  213. $pay_memberid = 230508633;
  214. //订单号
  215. $pay_orderid = "$number" ;
  216. //商品名称
  217. $pay_productname = $uid.$beizhu.$pay_bankcode;
  218. $dingdan['order_id'] = $number;
  219. $dingdan['uid'] = $uid;
  220. $dingdan['order_str'] = $pay_productname;
  221. $dingdan['order_ip'] = $pay_ip;
  222. $dingdan['apply_date'] = $pay_applydate;
  223. $dingdan['apply_time'] = $ttime;
  224. $dingdan['order_type'] = '待支付';
  225. $dingdan['amount'] = $pay_amount;
  226. $stringSignTemp="pay_amount=$pay_amount&pay_applydate=$pay_applydate&pay_bankcode=$pay_bankcode&pay_callbackurl=$pay_callbackurl&pay_memberid=$pay_memberid&pay_notifyurl=$pay_notifyurl&pay_orderid=$pay_orderid&key=0jp1j02wzsllk7ljk2m200dgwe4wsd0x" ;
  227. $sign1 = md5($stringSignTemp);
  228. $sign= strtoupper($sign1);
  229. M("pay_test")->add($dingdan);
  230. $post_data = array(
  231. 'pay_memberid' => $pay_memberid,
  232. 'pay_orderid' =>$pay_orderid,
  233. 'pay_applydate' => $pay_applydate,
  234. 'pay_bankcode' => $pay_bankcode,
  235. 'pay_notifyurl' => $pay_notifyurl,
  236. 'pay_callbackurl' => $pay_callbackurl,
  237. 'pay_amount' => $pay_amount,
  238. 'pay_md5sign' => $sign,
  239. 'pay_productname' => $pay_productname,
  240. 'pay_ip' => $pay_ip,
  241. 'pay_attach' => $vip_type,
  242. );
  243. $rs= $this->send_post('http://apizf.mifeng.xiaomfzf.com/Pay_Index.html', $post_data);
  244. $new_rs = json_decode($rs,true);
  245. $new_rs['uid'] = $uid;
  246. if (empty($rs)) {
  247. $e_data['status'] = '0';
  248. $e_data['code'] = '204';//未携带参数,请求失败
  249. $e_data['pay_url'] = '';//未携带参数,请求失败
  250. $e_data['message'] = '请重试。';
  251. echo json_encode($e_data);
  252. }else{
  253. echo json_encode($new_rs);
  254. }
  255. }
  256. /**
  257. * 回调?
  258. * @param $templateid []
  259. * @return $type 消息类型
  260. */
  261. public function huidiao_test(){
  262. header('Content-Type:text/json;charset=utf-8');
  263. header('Access-Control-Allow-Origin:*');
  264. header("Access-Control-Allow-Headers:token,Origin, X-Requested-With, Content-Type, Accept");
  265. header('Access-Control-Allow-Methods:POST');
  266. header('Access-Control-Expose-Headers:*');
  267. $post = $_POST;
  268. if ($post == null) {
  269. $post = file_get_contents("php://input");
  270. }
  271. $chenggong['name'] = $post['returncode'];
  272. //商户编号
  273. $memberid = $post['memberid'];
  274. //订单号
  275. $orderid = $post['orderid'];
  276. //订单金额
  277. $amount = $post['amount'];
  278. //交易流水号
  279. $transaction_id = $post['transaction_id'];
  280. //交易时间
  281. $datetime = $post['datetime'];
  282. //交易状态
  283. $returncode = $post['returncode'];
  284. //扩展返回
  285. $attach = $post['attach'];
  286. if ($chenggong['name']==00) {
  287. //交易成功 将用户改成会员
  288. $now_time_chuo = time();
  289. $chenggong['order_type'] = '已支付';
  290. $chenggong['pay_time'] = $now_time_chuo;
  291. $chenggong['amount_due'] =$amount;
  292. $chenggong['mifeng_id'] =$transaction_id;
  293. $uid = M("pay_test")->where("order_id='$orderid'")->getField("uid");
  294. $huiyuan['vip_yn'] = '1';
  295. $huiyuan['vip_time'] = '1';
  296. $huiyuan['vip_money'] = $amount;
  297. switch ($attach) {
  298. case '1':
  299. //永久会员
  300. $huiyuan['vip_over_time'] = '9999999999';
  301. $huiyuan['vip_yn'] = '1';
  302. break;
  303. case '2':
  304. //季度会员
  305. $over_time_chuo_jj = $now_time_chuo + (3600*24*90);
  306. $huiyuan['vip_over_time'] =$over_time_chuo_jj;
  307. $huiyuan['vip_yn'] = '2';
  308. break;
  309. case '3':
  310. //月度会员
  311. $over_time_chuo_yue = $now_time_chuo + (3600*24*30);
  312. $huiyuan['vip_over_time'] = $over_time_chuo_yue;
  313. $huiyuan['vip_yn'] = '3';
  314. break;
  315. default:
  316. echo "type error";
  317. die();
  318. }
  319. M("pay_test")->where("order_id='$orderid'")->save($chenggong);
  320. $post['uid'] = $uid;
  321. M("user_info")->where("id=$uid")->save($huiyuan);
  322. M("huidiao_test")->add($post);
  323. //代理回调
  324. //查询当前用户是否是代理用户 是则进行
  325. $yn_agent = M("pop_user")->where("get_uid=$uid")->getField("uid");
  326. if (!empty($yn_agent)) {
  327. //是代理用户
  328. //更新代理详情列表
  329. M('pop_user')->where("get_uid=$uid and uid=$yn_agent")->setInc('pay_money',$amount);
  330. $agent_money = $amount * 0.3;
  331. M('pop_user')->where("get_uid=$uid and uid=$yn_agent")->setInc('pay_brokerage',$agent_money);
  332. //更新到用户表
  333. M('user_info')->where("id=$yn_agent")->setInc('agent_money',$agent_money);
  334. $agent_time = time();
  335. $agent_time_date = date("Y-m-d H:i:s",$agent_time);
  336. //新增 代理记录
  337. $data_agent_time_date = array('agent_money_time'=>"$agent_time",'agent_money_date'=>"$agent_time_date");
  338. M('pop_user')->where("get_uid=$uid and uid=$yn_agent")->setField($data_agent_time_date);
  339. $agent_jilu_add['uid'] = $yn_agent;
  340. $agent_jilu_add['get_uid'] = $uid;
  341. $agent_jilu_add['agent_money'] = $agent_money;
  342. $agent_jilu_add['pay_money'] = $amount;
  343. $agent_jilu_add['time'] = $agent_time;
  344. $agent_jilu_add['time_date'] = $agent_time_date;
  345. M("agent_money")->add($agent_jilu_add);
  346. }else{
  347. //不是 代理用户
  348. }
  349. exit('OK');
  350. }else{
  351. }
  352. }
  353. /**
  354. * 测试功能
  355. * @param $templateid []
  356. * @return $type 消息类型
  357. */
  358. public function test(){
  359. header('Content-Type:text/json;charset=utf-8');
  360. header('Access-Control-Allow-Origin:*');
  361. header("Access-Control-Allow-Headers:token,Origin, X-Requested-With, Content-Type, Accept");
  362. header('Access-Control-Allow-Methods:POST');
  363. header('Access-Control-Expose-Headers:*');
  364. if (!empty($_POST)){
  365. $uid = $_POST['uid'];
  366. $amount = $_POST['amount'];
  367. //代理回调
  368. //查询当前用户是否是代理用户 是则进行
  369. $yn_agent = M("pop_user")->where("get_uid=$uid")->getField("uid");
  370. if (!empty($yn_agent)) {
  371. //是代理用户
  372. M('pop_user')->where("get_uid=$uid and uid=$yn_agent")->setInc('pay_money',$amount);
  373. $agent_money = $amount * 0.3;
  374. M('pop_user')->where("get_uid=$uid and uid=$yn_agent")->setInc('pay_brokerage',$agent_money);
  375. M('user_info')->where("id=$yn_agent")->setInc('agent_money',$agent_money);
  376. $agent_time = time();
  377. $agent_time_date = date("Y-m-d H:i:s",$agent_time);
  378. $data_agent_time_date = array('agent_money_time'=>"$agent_time",'agent_money_date'=>"$agent_time_date");
  379. M('pop_user')->where("get_uid=$uid and uid=$yn_agent")->setField($data_agent_time_date);
  380. $agent_jilu_add['uid'] = $yn_agent;
  381. $agent_jilu_add['get_uid'] = $uid;
  382. $agent_jilu_add['agent_money'] = $agent_money;
  383. $agent_jilu_add['pay_money'] = $amount;
  384. $agent_jilu_add['time'] = $agent_time;
  385. $agent_jilu_add['time_date'] = $agent_time_date;
  386. M("agent_money")->add($agent_jilu_add);
  387. }else{
  388. //不是 代理用户
  389. }
  390. }else{
  391. echo $this->returnData();
  392. }
  393. }
  394. function plus($a, $b) {
  395. if (!is_string($a) || !is_string($b)) {
  396. echo '参数必须是字符串类型';
  397. return;
  398. }
  399. $len = strlen($a) > strlen($b) ? strlen($a) : strlen($b);
  400. /// 反转字符串
  401. $ar = strrev($a);
  402. $br = strrev($b);
  403. $result = '';
  404. for($i = 0 ;$i < $len; $i++) {
  405. //从个位开始加,缺的补0
  406. $temp = (empty($ar[$i]) ? 0 : $ar[$i]) + (empty($br[$i]) ? 0 : $br[$i]);
  407. if (!empty($apendOne)) {
  408. //当后一位进1时加1
  409. $temp += 1;
  410. }
  411. $apendOne = false;
  412. if ($temp > 9) {
  413. /// 如果结果大于9 向前进1 减10 做标记
  414. $apendOne = true;
  415. $temp -= 10;
  416. }
  417. $result = $temp . $result;
  418. }
  419. return (string)$result;
  420. }
  421. /**
  422. * 将订单改为支付中
  423. * @param $templateid []
  424. * @return $type 消息类型
  425. */
  426. public function dingdan_huidiao_one(){
  427. header('Content-Type:text/json;charset=utf-8');
  428. header('Access-Control-Allow-Origin:*');
  429. header("Access-Control-Allow-Headers:token,Origin, X-Requested-With, Content-Type, Accept");
  430. header('Access-Control-Allow-Methods:POST');
  431. header('Access-Control-Expose-Headers:*');
  432. // echo 'OK';
  433. if (!empty($_POST)) {
  434. $ttime = time();
  435. $pay_applydate = date("Y-m-d H:i:s",$ttime);;
  436. $wula['time'] = $pay_applydate;
  437. $wula['name'] = 'dingdan_huidiao_one';
  438. $wula['code'] = '成了';
  439. M("huidiao_test")->add($wula);
  440. }else{
  441. $ttime = time();
  442. $pay_applydate = date("Y-m-d H:i:s",$ttime);;
  443. $wula['time'] = $pay_applydate;
  444. $wula['name'] = 'dingdan_huidiao_one';
  445. $wula['code'] = '失败';
  446. M("huidiao_test")->add($wula);
  447. }
  448. //商户标号
  449. //订单号
  450. //订单金额
  451. //交易流水号
  452. //交易时间
  453. //交易状态
  454. //扩展返回
  455. //签名
  456. }
  457. /**
  458. * 接收支付最终回调
  459. * @param $templateid []
  460. * @return $type 消息类型
  461. */
  462. public function huidiao_two(){
  463. header('Content-Type:text/json;charset=utf-8');
  464. header('Access-Control-Allow-Origin:*');
  465. header("Access-Control-Allow-Headers:token,Origin, X-Requested-With, Content-Type, Accept");
  466. header('Access-Control-Allow-Methods:POST');
  467. header('Access-Control-Expose-Headers:*');
  468. if (!empty($_POST)) {
  469. echo "OK";
  470. $ttime = time();
  471. $pay_applydate = date("Y-m-d H:i:s",$ttime);;
  472. $wula['time'] = $pay_applydate;
  473. $wula['name'] = 'huidiao_two';
  474. $wula['code'] = '成了';
  475. M("huidiao_test")->add($wula);
  476. }else{
  477. echo "OK";
  478. $ttime = time();
  479. $pay_applydate = date("Y-m-d H:i:s",$ttime);;
  480. $wula['time'] = $pay_applydate;
  481. $wula['name'] = 'huidiao_two';
  482. $wula['code'] = '失败';
  483. M("huidiao_test")->add($wula);
  484. }
  485. }
  486. /**
  487. * 测试功能
  488. * @param $templateid []
  489. * @return $type 消息类型
  490. */
  491. public function wulatest(){
  492. header('Content-Type:text/json;charset=utf-8');
  493. header('Access-Control-Allow-Origin:*');
  494. header("Access-Control-Allow-Headers:token,Origin, X-Requested-With, Content-Type, Accept");
  495. header('Access-Control-Allow-Methods:POST');
  496. header('Access-Control-Expose-Headers:*');
  497. //用户id
  498. $uid = $_POST['uid'];
  499. //选择支付类型
  500. $type = $_POST['type'];
  501. $mo = $_POST['mo'];
  502. switch ($mo) {
  503. case '1':
  504. $pay_amount = 60;
  505. //永久会员
  506. $vip_type = 1;
  507. break;
  508. case '2':
  509. $pay_amount = 50;
  510. //3月会员
  511. $vip_type = 2;
  512. break;
  513. case '3':
  514. $pay_amount = 40;
  515. //1月会员
  516. $vip_type = 3;
  517. break;
  518. default:
  519. echo "type error";
  520. die();
  521. }
  522. switch ($type) {
  523. case '1':
  524. // $pay_bankcode = 8088;
  525. // $beizhu = '支付宝原生';
  526. $pay_bankcode = 8023;
  527. $beizhu = '支付宝快手'; //ok
  528. // $pay_bankcode = 8035;
  529. // $beizhu = '支付宝纯视频'; //风控
  530. // $pay_amount = 30;
  531. // $pay_bankcode = 8008;
  532. // $beizhu = '支付宝直播混合'; //ok
  533. // $pay_bankcode = 8009;
  534. // $beizhu = '支付宝YY'; //风险
  535. // $pay_amount = 10;
  536. break;
  537. case '2':
  538. // $pay_bankcode = 8023;
  539. // $beizhu = '支付宝快手'; //ok
  540. $pay_bankcode = 8008;
  541. $beizhu = '支付宝直播混合'; //ok
  542. // $pay_bankcode = 8016;
  543. // $beizhu = '微信抖音'; //拉起弹窗无法支付 ok 3
  544. // $pay_bankcode = 8037;
  545. // $beizhu = '微信话费';
  546. // $pay_amount = 50;
  547. break;
  548. #微信支付需要判断
  549. case '3':
  550. // $pay_bankcode = 8008;
  551. // $beizhu = '支付宝直播混合'; //ok
  552. // $pay_bankcode = 8015;
  553. // $beizhu = '微信游戏原生'; //风控
  554. // if ($pay_amount==40) {
  555. // $pay_bankcode = 8015;
  556. // $beizhu = '微信游戏原生'; //风控
  557. // }else{
  558. // $pay_bankcode = 8026;
  559. // $beizhu = '微信游戏原生'; //风控
  560. // }
  561. break;
  562. case '4':
  563. $pay_bankcode = 8016;
  564. $beizhu = '微信抖音';
  565. break;
  566. case '5':
  567. $pay_bankcode = 8009;
  568. $beizhu = '支付宝YY';
  569. break;
  570. default:
  571. echo "type error";
  572. }
  573. $max=M("pay_test")->order("id desc")->limit(1)->find()['order_id'];
  574. if($max)
  575. {
  576. $number=$this->plus("$max","1");
  577. }else{
  578. $number='10000000000000000001';
  579. }
  580. //提交时间
  581. $ttime = time();
  582. $pay_applydate = date("Y-m-d H:i:s",$ttime);;
  583. //服务端通知
  584. $pay_notifyurl = 'https://www.aa9169.com/bibidd/MediaPaytest/huidiao_test';
  585. //页面跳转通知
  586. $pay_callbackurl = 'https://www.aa9169.com/bibidd/MediaPaytest/huidiao_test';
  587. //付款人 IP
  588. $pay_ip = $this->get_bb_ip();
  589. //商户号
  590. $pay_memberid = 230508633;
  591. //订单号
  592. $pay_orderid = "$number" ;
  593. //商品名称
  594. $pay_productname = $uid;
  595. $dingdan['order_id'] = $number;
  596. $dingdan['uid'] = $uid;
  597. $dingdan['order_str'] = $pay_productname;
  598. $dingdan['order_ip'] = $pay_ip;
  599. $dingdan['apply_date'] = $pay_applydate;
  600. $dingdan['apply_time'] = $ttime;
  601. $dingdan['order_type'] = '待支付';
  602. $dingdan['amount'] = $pay_amount;
  603. $stringSignTemp="pay_amount=$pay_amount&pay_applydate=$pay_applydate&pay_bankcode=$pay_bankcode&pay_callbackurl=$pay_callbackurl&pay_memberid=$pay_memberid&pay_notifyurl=$pay_notifyurl&pay_orderid=$pay_orderid&key=0jp1j02wzsllk7ljk2m200dgwe4wsd0x" ;
  604. $sign1 = md5($stringSignTemp);
  605. $sign= strtoupper($sign1);
  606. M("pay_test")->add($dingdan);
  607. $post_data = array(
  608. 'pay_memberid' => $pay_memberid,
  609. 'pay_orderid' =>$pay_orderid,
  610. 'pay_applydate' => $pay_applydate,
  611. 'pay_bankcode' => $pay_bankcode,
  612. 'pay_notifyurl' => $pay_notifyurl,
  613. 'pay_callbackurl' => $pay_callbackurl,
  614. 'pay_amount' => $pay_amount,
  615. 'pay_md5sign' => $sign,
  616. 'pay_productname' => $pay_productname,
  617. 'pay_ip' => $pay_ip,
  618. 'pay_attach' => $vip_type,
  619. );
  620. $rs= $this->send_post('http://apizf.mifeng.xiaomfzf.com/Pay_Index.html', $post_data);
  621. $new_rs = json_decode($rs,true);
  622. $new_rs['uid'] = $uid;
  623. if (empty($rs)) {
  624. $e_data['status'] = '0';
  625. $e_data['code'] = '204';//未携带参数,请求失败
  626. $e_data['pay_url'] = '';//未携带参数,请求失败
  627. $e_data['message'] = '请重试。';
  628. echo json_encode($e_data);
  629. }else{
  630. echo json_encode($new_rs);
  631. }
  632. }
  633. }