buy_notify.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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 wxddbh='".$result[out_trade_no]."'");
  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. $caridarr=$row[carid];
  40. include("../../buy.php");
  41. }
  42. return true;
  43. }
  44. return false;
  45. }
  46. //重写回调处理函数
  47. public function NotifyProcess($data, &$msg)
  48. {
  49. Log::DEBUG("call back:" . json_encode($data));
  50. $notfiyOutput = array();
  51. if(!array_key_exists("transaction_id", $data)){
  52. $msg = "输入参数不正确";
  53. return false;
  54. }
  55. //查询订单,判断订单真实性
  56. if(!$this->Queryorder($data["transaction_id"])){
  57. $msg = "订单查询失败";
  58. return false;
  59. }
  60. return true;
  61. }
  62. }
  63. Log::DEBUG("begin notify");
  64. $notify = new PayNotifyCallBack();
  65. $notify->Handle(false);