buy_notify.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <?php
  2. include("../../../config/conn.php");
  3. include("../../../config/function.php");
  4. ini_set('date.timezone','Asia/Shanghai');
  5. error_reporting(E_ERROR);
  6. require_once "WxPay.Api.php";
  7. require_once 'WxPay.Notify.php';
  8. require_once 'log.php';
  9. //初始化日志
  10. $logHandler= new CLogFileHandler("logs/".date('Y-m-d').'.log');
  11. $log = Log::Init($logHandler, 15);
  12. class PayNotifyCallBack extends WxPayNotify
  13. {
  14. //查询订单
  15. public function Queryorder($transaction_id)
  16. {
  17. $input = new WxPayOrderQuery();
  18. $input->SetTransaction_id($transaction_id);
  19. $result = WxPayApi::orderQuery($input);
  20. Log::DEBUG("query:" . json_encode($result));
  21. if(array_key_exists("return_code", $result)
  22. && array_key_exists("result_code", $result)
  23. && $result["return_code"] == "SUCCESS"
  24. && $result["result_code"] == "SUCCESS")
  25. {
  26. $fp= fopen("test.php","w");
  27. fwrite($fp,$result[out_trade_no]);
  28. fclose($fp);
  29. $sj=date("Y-m-d H:i:s");
  30. $uip=$_SERVER["REMOTE_ADDR"];
  31. $sql="select * from yjcode_dingdang where wxddbh='".$result[out_trade_no]."' and ifok=0";mysql_query("SET NAMES 'GBK'");$res=mysql_query($sql);
  32. if($row=mysql_fetch_array($res)){
  33. updatetable("yjcode_dingdang","sj='".$sj."',uip='".$uip."',alipayzt='TRADE_SUCCESS',ddzt='交易成功',ifok=1 where wxddbh='".$result[out_trade_no]."'");
  34. $money1=$row["money1"];
  35. PointIntoM($row[userid],"微信手机付款".$money1."元",$money1);
  36. PointUpdateM($row[userid],$money1);
  37. $caridarr=$row[carid];
  38. include("../../../user/buy.php");
  39. }
  40. return true;
  41. }
  42. return false;
  43. }
  44. //重写回调处理函数
  45. public function NotifyProcess($data, &$msg)
  46. {
  47. Log::DEBUG("call back:" . json_encode($data));
  48. $notfiyOutput = array();
  49. if(!array_key_exists("transaction_id", $data)){
  50. $msg = "输入参数不正确";
  51. return false;
  52. }
  53. //查询订单,判断订单真实性
  54. if(!$this->Queryorder($data["transaction_id"])){
  55. $msg = "订单查询失败";
  56. return false;
  57. }
  58. return true;
  59. }
  60. }
  61. Log::DEBUG("begin notify");
  62. $notify = new PayNotifyCallBack();
  63. $notify->Handle(false);