wxnotify.php 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: stanley-king
  5. * Date: 15/12/10
  6. * Time: 下午6:01
  7. */
  8. ini_set('date.timezone','Asia/Shanghai');
  9. error_reporting(E_ERROR);
  10. define(WXPAY_PATH,BASE_DATA_PATH.'/api/wxpay');
  11. require_once (WXPAY_PATH . '/lib/WxPay.Api.php');
  12. require_once (WXPAY_PATH . '/lib/WxPay.Config.php');
  13. require_once (WXPAY_PATH . '/lib/WxPay.Data.php');
  14. require_once (WXPAY_PATH . '/lib/WxPay.Exception.php');
  15. require_once (WXPAY_PATH . '/lib/WxPay.Notify.php');
  16. //初始化日志
  17. $log_path = BASE_ROOT_PATH . "/logs/wx-".date('Y-m-d').'.log';
  18. $logHandler= new CLogFileHandler(BASE_ROOT_PATH . "/logs/wx-".date('Y-m-d').'.log');
  19. $log = wxLog::Init($logHandler, 15);
  20. if(empty($log)) {
  21. Log::record('open file error',Log::ERR);
  22. }
  23. //xml格式
  24. //$content = '<xml><appid><![CDATA[wx24c5645aa986234a]]></appid>
  25. //<attach><![CDATA[120503418859341217]]></attach>
  26. //<bank_type><![CDATA[CFT]]></bank_type>
  27. //<cash_fee><![CDATA[1]]></cash_fee>
  28. //<fee_type><![CDATA[CNY]]></fee_type>
  29. //<is_subscribe><![CDATA[N]]></is_subscribe>
  30. //<mch_id><![CDATA[1279745801]]></mch_id>
  31. //<nonce_str><![CDATA[smzubtf1eul75d7snt7qzqyh258hwns3]]></nonce_str>
  32. //<openid><![CDATA[o-E2Rw9BKvBKnHgp41VYdxAHMJqg]]></openid>
  33. //<out_trade_no><![CDATA[127974580120151214143419]]></out_trade_no>
  34. //<result_code><![CDATA[SUCCESS]]></result_code>
  35. //<return_code><![CDATA[SUCCESS]]></return_code>
  36. //<sign><![CDATA[F43C02BBBB3B5E341D78EE477D67F598]]></sign>
  37. //<time_end><![CDATA[20151214143425]]></time_end>
  38. //<total_fee>1</total_fee>
  39. //<trade_type><![CDATA[APP]]></trade_type>
  40. //<transaction_id><![CDATA[1002150763201512142078937308]]></transaction_id>
  41. //</xml>';
  42. try
  43. {
  44. $content = $_POST['original_querystring'];//request_helper::content();
  45. wxLog::DEBUG("content = {$content}");
  46. $result = WxPayResults::Init($content);
  47. $ret_wx = array();
  48. $ret_code = $result['result_code'];
  49. Log::record("result_code= {$ret_code}",Log::DEBUG);
  50. wxLog::DEBUG("result_code= {$ret_code}");
  51. if($ret_code == 'SUCCESS')
  52. {
  53. $out_trade_no = $result['out_trade_no'];
  54. $transaction_id=$result['transaction_id'];
  55. wxLog::DEBUG("out_trade_no={$out_trade_no} and transaction_id = {$transaction_id}");
  56. Log::record("out_trade_no={$out_trade_no} and transaction_id = {$transaction_id}",Log::DEBUG);
  57. if($cb_info['state'] == false) {
  58. wxLog::ERROR('wxpay error 1.');
  59. Log::record('wxpay error.',Log::DEBUG);
  60. } else {
  61. wxLog::DEBUG('wxpay success.');
  62. Log::record('wxpay success.',Log::DEBUG);
  63. $cb_info = app_payControl::update_order($out_trade_no,$transaction_id,'wxpay');
  64. }
  65. $ret_wx['return_code'] = 'SUCCESS';
  66. $ret_wx['return_msg'] = 'OK';
  67. } else {
  68. Log::record('wxpay error 2.',Log::DEBUG);
  69. wxLog::ERROR('wxpay error 2.');
  70. $ret_wx['return_code'] = 'FAIL';
  71. $ret_wx['return_msg'] = 'Error.';
  72. }
  73. $retoper = new WxPayResults();
  74. $retoper->FromArray($ret_wx);
  75. $xml = $retoper->ToXml();
  76. wxLog::DEBUG($xml);
  77. Log::record("return to wx= {$xml}",Log::DEBUG);
  78. echo($xml);
  79. } catch (WxPayException $e){
  80. Log::record($e->getTraceAsString(),Log::ERR);
  81. wxLog::DEBUG($e->getTraceAsString());
  82. $msg = $e->errorMessage();
  83. return false;
  84. }