wxpay_jspay_notify.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. <?php
  2. include("../../../config/conn.php");
  3. include("../../../config/function.php");
  4. $lib_path = dirname(__FILE__)."/";
  5. require_once $lib_path."WxPay.Config.php";
  6. require_once $lib_path."WxPay.Api.php";
  7. require_once $lib_path."WxPay.Notify.php";
  8. require_once $lib_path."WxPay.JsApiPay.php";
  9. require_once $lib_path."log.php";
  10. class PayNotifyCallBack extends WxPayNotify
  11. {
  12. public $data;
  13. //查询订单
  14. public function Queryorder($transaction_id)
  15. {
  16. $input = new WxPayOrderQuery();
  17. $input->SetTransaction_id($transaction_id);
  18. $result = WxPayApi::orderQuery($input);
  19. Log::DEBUG("query:" . json_encode($result));
  20. if(array_key_exists("return_code", $result)
  21. && array_key_exists("result_code", $result)
  22. && $result["return_code"] == "SUCCESS"
  23. && $result["result_code"] == "SUCCESS")
  24. {
  25. return true;
  26. }
  27. return false;
  28. }
  29. //重写回调处理函数
  30. public function NotifyProcess($data, &$msg)
  31. {
  32. Log::DEBUG("call back:" . json_encode($data));
  33. $this->data = $data;
  34. $notfiyOutput = array();
  35. if(!array_key_exists("transaction_id", $data)){
  36. $msg = "输入参数不正确";
  37. return false;
  38. }
  39. //查询订单,判断订单真实性
  40. if(!$this->Queryorder($data["transaction_id"])){
  41. $msg = "订单查询失败";
  42. return false;
  43. }
  44. return true;
  45. }
  46. }
  47. require_once "wxconfig.php";
  48. WxPayConfig::set_appid( $payment['wxpay_jspay_appid'] );
  49. WxPayConfig::set_appsecret( $payment['wxpay_jspay_appsecret']);
  50. WxPayConfig::set_mchid( $payment['wxpay_jspay_mchid'] );
  51. WxPayConfig::set_key( $payment['wxpay_jspay_key'] );
  52. $logHandler= new CLogFileHandler($lib_path."logs/".date('Y-m-d').'.log');
  53. $log = Log::Init($logHandler, 15);
  54. Log::DEBUG("begin notify");
  55. $notify = new PayNotifyCallBack( );
  56. $notify->Handle(true);
  57. $data = $notify->data;
  58. //判断签名
  59. if ($data['result_code'] == 'SUCCESS') {
  60. $transaction_id = $data['transaction_id'];
  61. // 获取log_id
  62. $out_trade_no = $data['out_trade_no'];
  63. $sj=date("Y-m-d H:i:s");
  64. $uip=$_SERVER["REMOTE_ADDR"];
  65. $sql="select * from yjcode_dingdang where wxddbh='".$data['out_trade_no']."' and ifok=0";mysql_query("SET NAMES 'GBK'");$res=mysql_query($sql);
  66. if($row=mysql_fetch_array($res)){
  67. updatetable("yjcode_dingdang","sj='".$sj."',uip='".$uip."',alipayzt='TRADE_SUCCESS',ddzt='交易成功',ifok=1 where wxddbh='".$data['out_trade_no']."'");
  68. $money1=$row["money1"];
  69. PointIntoM($row[userid],"微信手机付款".$money1."元",$money1);
  70. PointUpdateM($row[userid],$money1);
  71. $caridarr=$row[carid];
  72. include("../../../user/buy.php");
  73. }
  74. exit();
  75. }else{
  76. //echo 'fail';
  77. exit();
  78. }
  79. ?>