index.php 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249
  1. <?php
  2. // by 请勿倒卖,已申请软著,否则追究法律责任
  3. namespace app\pay;
  4. use AlipayService;
  5. use app\index\Base;
  6. use WxPayResults;
  7. class index extends Base
  8. {
  9. protected function complate($out_trade_no, $trade_no)
  10. {
  11. $_var_0 = db("paylog")->where("pay_id", $out_trade_no)->find();
  12. if ($_var_0 && $_var_0["pay_status"] > 0) {
  13. $_var_1 = $_var_0["in_uid"];
  14. $_var_2 = db("user")->where("in_userid", $_var_1)->find();
  15. $_var_3 = $_var_0["pay_money"] * IN_PROMOTE_RATE / 100;
  16. $_var_4 = db("paylog")->where("pay_id", $out_trade_no)->update(["pay_status" => 0, "pay_no" => $trade_no, "pay_time" => time(), "update_time" => time(), "forp_money" => $_var_3]);
  17. if ($_var_0["pay_type"] && $_var_0["pay_type"] != 6 && $_var_0["pay_type"] != 7) {
  18. db("user")->where("in_userid", $_var_1)->inc("cost_money", $_var_0["pay_money"])->update();
  19. if (IN_PROMOTE && IN_PROMOTE_DAY > 0 && IN_PROMOTE_CASH_DAY < 1 && $_var_4 && $_var_2["pid"] && strtotime("+ " . IN_PROMOTE_DAY . " days", strtotime($_var_2["in_regdate"]) > time())) {
  20. $_var_5 = db("user")->where("in_userid", $_var_2["pid"])->find();
  21. if ($_var_5) {
  22. $_var_6 = $_var_5["promote_money"];
  23. db("user")->where("in_userid", $_var_1)->inc("forp_money", $_var_3)->update();
  24. $_var_4 = db("user")->where("in_userid", $_var_2["pid"])->inc("promote_money", $_var_3)->update();
  25. $_var_4 && aclog_save($_var_2["pid"], $_var_6 + $_var_3, $_var_6, "promote_money", $_var_2["in_username"] . " - 消费返佣");
  26. }
  27. } else {
  28. db("user")->where("in_userid", $_var_1)->inc("unforp_money", $_var_3)->update();
  29. }
  30. }
  31. $_var_7 = intval($_var_0["pay_points"]);
  32. if ($_var_0["pay_type"] && $_var_0["pay_type"] != 6 && $_var_0["pay_param"] == 0) {
  33. $_var_8 = $_var_2["money"];
  34. $_var_4 = db("user")->where("in_userid", $_var_1)->inc("money", $_var_7)->update();
  35. $_var_4 && aclog_save($_var_1, $_var_8 + $_var_7, $_var_8, "money", "充值");
  36. } elseif ($_var_0["pay_param"] == 1) {
  37. $_var_8 = $_var_2["in_points"];
  38. $_var_4 = db("user")->where("in_userid", $_var_1)->inc("in_points", $_var_7)->update();
  39. $_var_4 && aclog_save($_var_1, $_var_8 + $_var_7, $_var_8, "in_points", "购买");
  40. } elseif ($_var_0["pay_param"] == 2) {
  41. $_var_9 = $_var_2["in_viptime"] - time();
  42. $_var_10 = strtotime("+1 year");
  43. if ($_var_9 > 0) {
  44. if ($_var_7 != $_var_2["in_svip"]) {
  45. $_var_11 = db("item")->where("type", $_var_0["pay_param"])->where("number", $_var_2["in_svip"])->value("price");
  46. $_var_12 = db("item")->where("type", $_var_0["pay_param"])->where("number", $_var_7)->value("price");
  47. $_var_9 *= $_var_11 / $_var_12;
  48. }
  49. $_var_10 += $_var_9;
  50. }
  51. db("user")->where("in_userid", $_var_1)->update(["in_svip" => $_var_7, "in_viptime" => $_var_10]);
  52. } elseif ($_var_0["pay_param"] == 3) {
  53. $_var_13 = explode("-", $_var_0["pay_tag"]);
  54. $_var_14 = intval($_var_13[0]);
  55. $_var_15 = db("appid")->where("in_id", $_var_14)->find();
  56. if ($_var_15) {
  57. $_var_16 = 2678400 * $_var_7;
  58. $_var_17 = $_var_15["in_sign"] ? $_var_15["in_sign"] + $_var_16 : time() + $_var_16;
  59. $_var_18 = db("item")->where("id", $_var_0["item_id"])->value("recommended");
  60. db("appid")->where("in_id", $_var_14)->inc("in_resign", IN_RESIGN)->update(["in_sign" => $_var_17, "in_package" => "[" . $_var_18 . "]" . [1 => "包月", 3 => "包季", 12 => "包年"][$_var_7], "in_cert_type" => $_var_18]);
  61. }
  62. } elseif ($_var_0["pay_param"] == 4) {
  63. $_var_13 = explode("ssid:", $_var_0["pay_tag"]);
  64. $_var_19 = intval($_var_13[1]);
  65. if ($_var_19) {
  66. $_var_20 = db("super_sign")->where("id", $_var_19)->find();
  67. $_var_21 = Randomstr(12);
  68. db("super_code")->insert(["user_id" => $_var_20["user_id"], "code" => $_var_21, "type" => 1, "udid" => $_var_20["udid"], "create_time" => time()]);
  69. }
  70. $_var_8 = $_var_2["device_num"];
  71. $_var_22["device_num"] = $_var_8 + $_var_7;
  72. if (!$_var_19) {
  73. $_var_22["max_super_code"] = $_var_2["max_super_code"] + $_var_7;
  74. }
  75. $_var_4 = db("user")->where("in_userid", $_var_1)->update($_var_22);
  76. $_var_4 && aclog_save($_var_1, $_var_8 + $_var_7, $_var_8, "device_num", "购买");
  77. } elseif ($_var_0["pay_param"] == 5) {
  78. $_var_23 = $_var_2["prv_device_num"];
  79. $_var_22["prv_device_num"] = $_var_23 + $_var_7;
  80. $_var_22["max_super_code"] = $_var_2["max_super_code"] + $_var_7;
  81. $_var_4 = db("user")->where("in_userid", $_var_1)->update($_var_22);
  82. $_var_4 && aclog_save($_var_1, $_var_23 + $_var_7, $_var_23, "prv_device_num", "购买");
  83. }
  84. return true;
  85. }
  86. return false;
  87. }
  88. function user_money_pay()
  89. {
  90. $_var_24 = SafeRequest("trade_id", "get");
  91. $_var_25 = "error";
  92. if ($this->userid && $_var_24) {
  93. if ($_var_26 = db("paylog")->where("pay_id", $_var_24)->where("pay_type", "6")->where("pay_status", "1")->find()) {
  94. $_var_27 = changeAc(-$_var_26["pay_money"], $this->user, "money", $_var_26["pay_tag"]);
  95. if ($_var_27) {
  96. $this->user["money"] += -$_var_26["pay_money"];
  97. $_var_27 = $this->complate($_var_24, $_var_24);
  98. if ($_var_27) {
  99. $_var_25 = "success";
  100. } else {
  101. changeAc($_var_26["pay_money"], $this->user, "money", "支付失败退还");
  102. }
  103. }
  104. }
  105. }
  106. redirect("/index/item_price?type=1&ump_notify=" . $_var_25);
  107. }
  108. function alipay_notify()
  109. {
  110. require_once "alipay/alipay.class.php";
  111. if (!IN_DEBUG) {
  112. $aliPay = new AlipayService(IN_ALIPAYID, "", "", "MD5", IN_ALIPAYKEY);
  113. $checkpay = $aliPay->verifyNotify($_POST);
  114. if (!$checkpay || empty($_POST["out_trade_no"]) || empty($_POST["trade_no"]) || empty($_POST["trade_status"])) {
  115. exit("fail");
  116. }
  117. }
  118. $out_trade_no = $_POST["out_trade_no"];
  119. $trade_no = $_POST["trade_no"];
  120. $trade_status = $_POST["trade_status"];
  121. if ($trade_status == "TRADE_FINISHED" || $trade_status == "TRADE_SUCCESS") {
  122. $this->complate($out_trade_no, $trade_no);
  123. exit("success");
  124. }
  125. }
  126. function alipay_return()
  127. {
  128. require_once "alipay/alipay.class.php";
  129. $aliPay = new AlipayService(IN_ALIPAYID, "", "", "MD5", IN_ALIPAYKEY);
  130. $checkpay = $aliPay->verifyNotify($_GET);
  131. if (!$checkpay) {
  132. exit("fail");
  133. }
  134. $out_trade_no = $_GET["out_trade_no"];
  135. $trade_no = $_GET["trade_no"];
  136. $trade_status = $_GET["trade_status"];
  137. if ($trade_status == "TRADE_FINISHED" || $trade_status == "TRADE_SUCCESS") {
  138. $this->complate($out_trade_no, $trade_no);
  139. redirect("/index/apps/apps");
  140. }
  141. }
  142. function codepay_notify()
  143. {
  144. ksort($_POST);
  145. reset($_POST);
  146. $_var_28 = IN_CODEPAYKEY;
  147. $_var_29 = "";
  148. foreach ($_POST as $_var_30 => $_var_31) {
  149. if ($_var_31 == "" || $_var_30 == "sign") {
  150. continue;
  151. }
  152. if ($_var_29) {
  153. $_var_29 .= "&";
  154. }
  155. $_var_29 .= $_var_30 . "=" . $_var_31;
  156. }
  157. if (empty($_POST["pay_no"]) || empty($_POST["pay_id"]) || empty($_POST["sign"]) || md5($_var_29 . $_var_28) != $_POST["sign"]) {
  158. exit("fail");
  159. } else {
  160. $this->complate($_POST["pay_id"], $_POST["pay_no"]);
  161. exit("success");
  162. }
  163. }
  164. function codepay_return()
  165. {
  166. redirect("/index/apps/apps");
  167. }
  168. function f2fpay_notify()
  169. {
  170. require_once "f2fpay/alipay.class.php";
  171. $config = ["signType" => IN_F2FPAY_STYPE, "publicKey" => IN_F2FPAY_AKEY];
  172. $aliPay = new AlipayService($config);
  173. $checkpay = $aliPay->check($_POST);
  174. if (!$checkpay || empty($_POST["out_trade_no"]) || empty($_POST["trade_no"]) || empty($_POST["trade_status"])) {
  175. exit("fail");
  176. }
  177. $out_trade_no = $_POST["out_trade_no"];
  178. $trade_no = $_POST["trade_no"];
  179. $trade_status = $_POST["trade_status"];
  180. if ($trade_status == "TRADE_FINISHED" || $trade_status == "TRADE_SUCCESS") {
  181. $res = $this->complate($out_trade_no, $trade_no);
  182. $res && exit("success");
  183. }
  184. }
  185. function wxpay_notify()
  186. {
  187. require_once "weixin/WxPay.Api.php";
  188. $xml = empty($GLOBALS["HTTP_RAW_POST_DATA"]) ? file_get_contents("php://input") : $GLOBALS["HTTP_RAW_POST_DATA"];
  189. $notify = new WxPayResults();
  190. try {
  191. $data = $notify->FromXml($xml);
  192. if ($notify->CheckSign() == true) {
  193. if ($data["return_code"] == "SUCCESS") {
  194. $out_trade_no = $data["out_trade_no"];
  195. $trade_no = $data["transaction_id"];
  196. $this->complate($out_trade_no, $trade_no);
  197. exit("SUCCESS");
  198. }
  199. }
  200. } catch (\WxPayException $e) {
  201. exit("ERROR");
  202. }
  203. }
  204. function wxpay_return()
  205. {
  206. redirect("/index/apps/apps");
  207. }
  208. function zzpay_notify()
  209. {
  210. $_var_32 = file_get_contents("php://input");
  211. $_var_33 = json_decode($_var_32, true);
  212. if ($_var_33["code"] != 10001) {
  213. exit($_var_33["code"]);
  214. } else {
  215. $_var_34 = (float) $_var_33["price"];
  216. $_var_35 = (float) $_var_33["originalprice"];
  217. $_var_36 = $_var_33["thirduid"];
  218. $_var_37 = $_var_33["orderId"];
  219. $_var_38 = $_var_33["paytype"] ? 1 : 2;
  220. if (!$_var_37) {
  221. exit("fail_1");
  222. }
  223. $_var_39 = $this->postRequest("https://admin.zhanzhangfu.com/order/onlinePayFindResult", ["orderId" => $_var_37]);
  224. if ($_var_39["code"] != 10001) {
  225. exit("fail_2");
  226. }
  227. $this->complate($_var_36, $_var_37);
  228. exit("success");
  229. }
  230. }
  231. function postRequest($url, $data)
  232. {
  233. $_var_40 = array("Payment-Key:" . IN_ZZPAY_AppKey, "Payment-Secret:" . IN_ZZPAY_AppSecret);
  234. $_var_41 = curl_init();
  235. curl_setopt($_var_41, CURLOPT_URL, $url);
  236. curl_setopt($_var_41, CURLOPT_SSL_VERIFYPEER, FALSE);
  237. curl_setopt($_var_41, CURLOPT_SSL_VERIFYHOST, FALSE);
  238. curl_setopt($_var_41, CURLOPT_POST, 1);
  239. curl_setopt($_var_41, CURLOPT_POSTFIELDS, $data);
  240. curl_setopt($_var_41, CURLOPT_HTTPHEADER, $_var_40);
  241. curl_setopt($_var_41, CURLOPT_RETURNTRANSFER, 1);
  242. $_var_42 = curl_exec($_var_41);
  243. curl_close($_var_41);
  244. $_var_42 = json_decode($_var_42, true);
  245. return $_var_42;
  246. }
  247. }