alipay_notify_url.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <?php
  2. define('ALIPAY_PATH', BASE_MOBILE_PATH . '/api/payment/alipay');
  3. require_once(ALIPAY_PATH . '/alipay.config.php');
  4. require_once(ALIPAY_PATH . '/lib/alipay_notify.class.php');
  5. require_once(BASE_MOBILE_PATH . '/control/app_pay.php');
  6. $out_trade_no = $_POST['out_trade_no']; // 商户订单号
  7. $trade_no = $_POST['trade_no']; // 支付宝交易号
  8. Log::record("alipay_notify_url: out_trade_no={$out_trade_no}", Log::DEBUG);
  9. // 步骤一:验证数据来源正确性
  10. $alipayNotify = new AlipayNotify($alipay_config);
  11. $verify_result = $alipayNotify->verifyReturn();
  12. Log::record("verify_result={$verify_result}, out_trade_no={$out_trade_no}", Log::DEBUG);
  13. echo("Content-Type: text/html; charset=UTF-8\r\n\r\n");
  14. if ($verify_result) {
  15. $trade_status = $_POST['trade_status'];
  16. if ($trade_status === 'TRADE_FINISHED' || $trade_status === 'TRADE_SUCCESS') {
  17. // 步骤二:更新订单状态
  18. $cb_info = app_payControl::update_order($out_trade_no, $trade_no, 'alipay');
  19. if ($cb_info['state'] == false) {
  20. Log::record("update_order fail: out_trade_no={$out_trade_no}", Log::DEBUG);
  21. echo('fail');
  22. } else {
  23. echo('success');
  24. Log::record("update_order success: out_trade_no={$out_trade_no}", Log::DEBUG);
  25. }
  26. // 步骤三:如果此用户为静默注册用户,将此用户置为普通用户
  27. $ret = app_payControl::updateMember($out_trade_no);
  28. if(!$ret){
  29. Log::record("updateMember fail : out_trade_no={$out_trade_no}",Log::ERR);
  30. }
  31. } else if ($trade_status == 'WAIT_BUYER_PAY') {
  32. }
  33. echo("success"); // 交易正确时,返回success
  34. } else {
  35. echo("fail"); // 验证错误时,返回fail
  36. Log::record("verify notify fail : out_trade_no={$out_trade_no}");
  37. }
  38. ?>