public function submit() { $paypal = new paypal_payment($this->param['param']["payid"], $this->param['param']["at"]); $paypal->set_value("action_url", $this->param['param']["action"]); $price = $GLOBALS['app']->get('mc_gross'); $sn = $GLOBALS['app']->get('invoice'); $checkcode = $GLOBALS['app']->get('custom'); if (!$checkcode) { phpok_log(P_Lang('异步传输:没有自定义验证串')); exit('error'); } if (!$price || !$sn) { phpok_log(P_Lang('数据异步')); exit('error'); } $chk = $paypal->check($price, $sn, $checkcode); if (!$chk) { phpok_log(P_Lang('异步传输:验证不能过')); exit('error'); } $payment_status = $GLOBALS['app']->get('payment_status'); if ($payment_status != 'Completed') { phpok_log(P_Lang('异步传输:支付状态是' . $payment_status)); exit('error'); } $pay_date = $GLOBALS['app']->get('payment_date'); if ($pay_date) { $pay_date = strtotime($pay_date); if (!$pay_date) { $pay_date = $GLOBALS['app']->time; } } else { $pay_date = $GLOBALS['app']->time; } $price = $GLOBALS['app']->get('mc_gross'); $array = array('pay_status' => "付款完成", 'pay_date' => $pay_date, 'pay_price' => $price, 'pay_end' => 1); $array['status'] = '付款完成'; $exchange_rate = $GLOBALS['app']->get('exchange_rate'); if ($exchange_rate) { $array['pay_currency_rate'] = $exchange_rate; } $p_array = array(); $p_array['txn_id'] = $GLOBALS['app']->get('txn_id'); $p_array['txn_type'] = $GLOBALS['app']->get('txn_type'); $p_array['mc_fee'] = $GLOBALS['app']->get('mc_fee'); $p_array['mc_currency'] = $GLOBALS['app']->get('mc_currency'); $p_array['payer_email'] = $GLOBALS['app']->get('payer_email'); $p_array['first_name'] = $GLOBALS['app']->get('first_name'); $p_array['last_name'] = $GLOBALS['app']->get('last_name'); $p_array['payer_business_name'] = $GLOBALS['app']->get('payer_business_name'); $p_array['payer_status'] = $GLOBALS['app']->get('payer_status'); $array['ext'] = serialize($p_array); $GLOBALS['app']->model('order')->save($array, $this->order['id']); exit('SUCCESS'); }
function submit() { if ($_SESSION['user_id']) { $url = $GLOBALS['app']->url('order', 'info', 'id=' . $_GET['id']); unset($_GET['id']); } else { $url = $GLOBALS['app']->url('order', 'info', 'sn=' . $_GET['sn'] . '&passwd=' . $_GET['passwd']); unset($_GET['sn'], $_GET['passwd']); } $paypal = new paypal_payment($this->param['param']["payid"], $this->param['param']["at"]); $paypal->set_value("action_url", $this->param['param']["action"]); $price = $GLOBALS['app']->get('mc_gross'); $sn = $GLOBALS['app']->get('invoice'); $checkcode = $GLOBALS['app']->get('custom'); if (!$checkcode || !$price || !$sn) { error(P_Lang('支付返回异常,请检查'), $url, 'notice'); } $chk = $paypal->check($price, $sn, $checkcode); if (!$chk) { error(P_Lang('数据验证不通过,请检查'), $url, 'notice'); } $ext = $this->order['ext']; if ($ext && is_string($ext)) { $ext = unserialize($this->order['ext']); } if ($ext && is_array($ext)) { if ($ext['txn_id'] && $ext['txn_id'] == $GLOBALS['app']->get('txn_id')) { error(P_Lang('订单支付成功'), $url, 'ok'); } } $payment_status = $GLOBALS['app']->get('payment_status'); if ($payment_status != 'Completed') { error(P_Lang('支付不确定是否完成,请联系商家确认'), $url, 'notice'); } $price = $GLOBALS['app']->get('mc_gross'); $array = array('pay_status' => "付款完成", 'pay_date' => $pay_date, 'pay_price' => $price, 'pay_end' => 1); $array['status'] = '付款完成'; $exchange_rate = $GLOBALS['app']->get('exchange_rate'); if ($exchange_rate) { $array['pay_currency_rate'] = $exchange_rate; } $p_array = array(); $p_array['txn_id'] = $GLOBALS['app']->get('txn_id'); $p_array['txn_type'] = $GLOBALS['app']->get('txn_type'); $p_array['mc_fee'] = $GLOBALS['app']->get('mc_fee'); $p_array['mc_currency'] = $GLOBALS['app']->get('mc_currency'); $p_array['payer_email'] = $GLOBALS['app']->get('payer_email'); $p_array['first_name'] = $GLOBALS['app']->get('first_name'); $p_array['last_name'] = $GLOBALS['app']->get('last_name'); $p_array['payer_business_name'] = $GLOBALS['app']->get('payer_business_name'); $p_array['payer_status'] = $GLOBALS['app']->get('payer_status'); $array['ext'] = serialize($p_array); $GLOBALS['app']->model('order')->save($array, $this->order['id']); return true; }