notify.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  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 "../lib/WxPay.Api.php";
  7. require_once '../lib/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. $sj=date("Y-m-d H:i:s");
  27. $uip=$_SERVER["REMOTE_ADDR"];
  28. $sql="select * from yjcode_dingdang where wxddbh='".$result[out_trade_no]."' and ifok=0";mysql_query("SET NAMES 'GBK'");$res=mysql_query($sql);
  29. if($row=mysql_fetch_array($res)){
  30. updatetable("yjcode_dingdang","sj='".$sj."',uip='".$uip."',alipayzt='TRADE_SUCCESS',ddzt='交易成功',ifok=1 where id=".$row[id]);
  31. $money1=$row[money1];
  32. PointIntoM($row[userid],"微信充值".$money1."元",$money1,4,$result[out_trade_no]);
  33. PointUpdateM($row[userid],$money1);
  34. if(!empty($row[sxf])){
  35. $sxf=$row[sxf]*(-1);
  36. PointIntoM($row[userid],"支付接口手续费",$sxf,0,$result[out_trade_no]);
  37. PointUpdateM($row[userid],$sxf);
  38. }
  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);