member_payment.php 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. <?php
  2. /**
  3. * 支付
  4. *
  5. *
  6. *
  7. *
  8. * by 33hao.com 好商城V3 运营版
  9. */
  10. //use Shopnc\Tpl;
  11. defined('InShopNC') or exit('Access Invalid!');
  12. class member_paymentControl extends mbMemberControl
  13. {
  14. private $payment_code = 'alipay';
  15. public function __construct()
  16. {
  17. parent::__construct();
  18. $this->payment_code = isset($_GET['payment_code']) && trim($_GET['payment_code']) != '' ? trim($_GET['payment_code']) : 'alipay';
  19. }
  20. /**
  21. * 实物订单支付
  22. */
  23. public function payOp()
  24. {
  25. $pay_sn = $_GET['pay_sn'];
  26. $model_mb_payment = Model('mb_payment');
  27. $logic_payment = Logic('payment');
  28. $condition = array();
  29. $condition['payment_code'] = $this->payment_code;
  30. $mb_payment_info = $model_mb_payment->getMbPaymentOpenInfo($condition);
  31. if (!$mb_payment_info) {
  32. output_error('系统不支持选定的支付方式');
  33. }
  34. //重新计算所需支付金额
  35. $result = $logic_payment->getRealOrderInfo($pay_sn, $_SESSION['member_id']);
  36. if (!$result['state']) {
  37. output_error($result['msg']);
  38. }
  39. //第三方API支付
  40. $this->_api_pay($result['data'], $mb_payment_info);
  41. }
  42. /**
  43. * 虚拟订单支付
  44. */
  45. public function vr_payOp()
  46. {
  47. $order_sn = $_GET['pay_sn'];
  48. $model_mb_payment = Model('mb_payment');
  49. $logic_payment = Logic('payment');
  50. $condition = array();
  51. $condition['payment_code'] = $this->payment_code;
  52. $mb_payment_info = $model_mb_payment->getMbPaymentOpenInfo($condition);
  53. if (!$mb_payment_info) {
  54. output_error('系统不支持选定的支付方式');
  55. }
  56. //重新计算所需支付金额
  57. $result = $logic_payment->getVrOrderInfo($order_sn, $_SESSION['member_id']);
  58. if (!$result['state']) {
  59. output_error($result['msg']);
  60. }
  61. //第三方API支付
  62. $this->_api_pay($result['data'], $mb_payment_info);
  63. }
  64. /**
  65. * 第三方在线支付接口
  66. *
  67. */
  68. private function _api_pay($order_pay_info, $mb_payment_info)
  69. {
  70. $inc_file = BASE_PATH . DS . 'api' . DS . 'payment' . DS . $this->payment_code . DS . $this->payment_code . '.php';
  71. if (!is_file($inc_file)) {
  72. output_error('支付接口不存在');
  73. }
  74. if ($payment_info['payment_code'] == 'wxpay') {
  75. $wxpayurl = BASE_SITE_URL . '/mobile/api/payment/wxpay/wxpay.php?pay_sn=' . $order_pay_info['pay_sn'] . '&pay_amount=' . $order_pay_info['api_pay_amount'];
  76. redirect($wxpayurl);
  77. //@header("Location: ".ApiUrl.'/api/paymentpaypay.php?pay_sn='.$order_pay_info['pay_sn'].'&pay_amount='.$order_pay_info['api_pay_amount']);
  78. } else {
  79. require($inc_file);
  80. $param = array();
  81. $param = $mb_payment_info['payment_config'];
  82. $param['order_sn'] = $order_pay_info['pay_sn'];
  83. $param['order_amount'] = $order_pay_info['api_pay_amount'];
  84. $param['order_type'] = ($order_pay_info['order_type'] == 'real_order' ? 'r' : 'v');
  85. $payment_api = new $this->payment_code();
  86. $return = $payment_api->submit($param);
  87. echo $return;
  88. }
  89. exit();
  90. }
  91. /**
  92. * 获取可用参数列表
  93. */
  94. public function payment_listOp()
  95. {
  96. $model_mb_payment = Model('mb_payment');
  97. $payment_list = $model_mb_payment->getMbPaymentOpenList();
  98. $payment_array = array();
  99. if (!empty($payment_list)) {
  100. foreach ($payment_list as $value) {
  101. $payment_array[] = $value['payment_code'];
  102. }
  103. }
  104. output_data(array('payment_list' => $payment_array));
  105. }
  106. }