notify.php 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php
  2. ini_set('date.timezone','Asia/Shanghai');
  3. error_reporting(E_ERROR);
  4. //require_once "../lib/WxPay.Api.php";
  5. //require_once '../lib/WxPay.Notify.php';
  6. //require_once 'log.php';
  7. //初始化日志
  8. //$logHandler= new CLogFileHandler("../logs/".date('Y-m-d').'.log');
  9. $logHandler= new CLogFileHandler("/www/web/develop/fecshop/vendor/fancyecommerce/fecshop/lib/wxpay/logs/test.log");
  10. $log = Log::Init($logHandler, 15);
  11. class PayNotifyCallBack extends WxPayNotify
  12. {
  13. public $postData;
  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. return true;
  27. }
  28. return false;
  29. }
  30. //重写回调处理函数
  31. public function NotifyProcess($data, &$msg)
  32. {
  33. Log::DEBUG("call back:" . json_encode($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. $arr = $this->getDataArray($data);
  45. return \Yii::$service->payment->wxpay->ipnOrderProcess($arr);
  46. }
  47. public function getDataArray($data){
  48. $arr = [];
  49. foreach($data as $k => $v){
  50. $arr[$k] = $v;
  51. }
  52. return $arr;
  53. }
  54. }