orderquery.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <?php
  2. function weixin_do($out_trade_no, $orderQueryResult)
  3. {
  4. $v_oid = trim($out_trade_no);
  5. $remark1 = trim($orderQueryResult['attach']);
  6. $v_amount = trim($orderQueryResult['total_fee'] / 100);
  7. $orderid = $v_oid;
  8. $ddno = $remark1;
  9. $money = $v_amount;
  10. $paybz = iconv('UTF-8', 'gb2312', '支付成功');
  11. UpdatePayRecord($ddno, $paybz);
  12. }
  13. define('IN_MYMPS', true);
  14. define('IN_ADMIN', true);
  15. define('CURSCRIPT', 'orderquery');
  16. require_once dirname(__FILE__) . '/../../../include/global.php';
  17. require_once MYMPS_DATA . '/config.php';
  18. require_once MYMPS_DATA . '/config.db.php';
  19. require_once MYMPS_INC . '/db.class.php';
  20. include MYMPS_INC . '/pay.fun.php';
  21. require_once MYMPS_INC . '/member.class.php';
  22. if (!$member_log->chk_in()) {
  23. write_msg('', $mymps_global['SiteUrl'] . '/' . $mymps_global['cfg_member_logfile'] . '?url=' . urlencode(GetUrl()));
  24. }
  25. include_once MYMPS_INC . '/payment/wxnative/WxPayPubHelper.php';
  26. $paytype = 'wxnative';
  27. $payr = $db->getRow('SELECT * FROM ' . $db_mymps . 'payapi WHERE paytype=\'' . $paytype . '\'');
  28. WxPayConfig::$APPID = $payr['appid'];
  29. WxPayConfig::$MCHID = $payr['payuser'];
  30. WxPayConfig::$KEY = $payr['paykey'];
  31. WxPayConfig::$APPSECRET = $payr['appkey'];
  32. $orderQuery = new OrderQuery_pub();
  33. $orderQuery->setParameter('out_trade_no', $out_trade_no);
  34. $orderQueryResult = $orderQuery->getResult();
  35. if ($orderQueryResult['return_code'] == 'FAIL') {
  36. echo 0;
  37. exit();
  38. }
  39. else if ($orderQueryResult['result_code'] == 'FAIL') {
  40. echo 0;
  41. exit();
  42. }
  43. else {
  44. $i = $_SESSION['i'];
  45. $i--;
  46. $_SESSION['i'] = $i;
  47. switch ($orderQueryResult['trade_state']) {
  48. case SUCCESS:
  49. $flag = 1;
  50. weixin_do($out_trade_no, $orderQueryResult);
  51. break;
  52. case REFUND:
  53. $flag = '2';
  54. break;
  55. case NOTPAY:
  56. $flag = '3';
  57. break;
  58. case CLOSED:
  59. $flag = '4';
  60. break;
  61. case PAYERROR:
  62. $flag = '5';
  63. break;
  64. default:
  65. $flag = '6';
  66. break;
  67. }
  68. echo $flag;
  69. exit();
  70. }
  71. is_object($db) && $db->Close();
  72. $mymps_global = NULL;
  73. ?>