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() { $chinapay = new chinapay_lib(); $debug = $this->payment['param']['env'] == 'start' ? false : true; $chinapay->set_debug($debug); $chinapay->set_pid($this->payment['param']['pid']); $chinapay->set_pri_key($this->payment['param']['prikey']); $chinapay->set_pub_key($this->payment['param']['pubkey']); $merid = $GLOBALS['app']->get('merid'); $orderno = $GLOBALS['app']->get('orderno'); $transdate = $GLOBALS['app']->get('transdate'); $amount = $GLOBALS['app']->get('amount'); $currencycode = $GLOBALS['app']->get('currencycode'); $transtype = $GLOBALS['app']->get('transtype'); $status = $GLOBALS['app']->get('status'); $checkvalue = $GLOBALS['app']->get('checkvalue'); $gateId = $GLOBALS['app']->get('gateId'); $priv1 = $GLOBALS['app']->get('priv1'); $opts = array('merid' => $merid, 'orderno' => $orderno, 'transdate' => $transdate, 'amount' => $amount); $opts['currencycode'] = $currencycode; $opts['transtype'] = $transtype; $opts['status'] = $status; $opts['checkvalue'] = $checkvalue; $opts['gateId'] = $gateId; $opts['priv1'] = $priv1; $verify = $chinapay->verify($opts); if (!$verify) { phpok_log('答名验证不通过'); exit; } if ($status != '1001') { echo $status; exit; } $pay_date = $GLOBALS['app']->time; $price = $amount; //更新订单信息 $array = array('pay_status' => "付款完成", 'pay_date' => $pay_date, 'pay_price' => $price, 'pay_end' => 1); $array['status'] = '付款完成'; //更新扩展数据 $tmp2 = array(); $tmp2['orderno'] = $orderno; $tmp2['status'] = $status; $tmp2['amount'] = $amount; $array['ext'] = serialize($tmp2); $GLOBALS['app']->model('order')->save($array, $this->order['id']); exit('success'); }
public function submit() { unset($_GET[$GLOBALS['app']->config['ctrl_id']], $_GET[$GLOBALS['app']->config['func_id']], $_GET['sn']); $alipay_config = array('partner' => $this->param['param']['pid'], 'key' => $this->param['param']['key']); $alipay_config['sign_type'] = 'MD5'; $alipay_config['input_charset'] = 'utf-8'; $alipay_config['cacert'] = $this->paydir . 'cacert.pem'; $alipay_config['transport'] = 'http'; $alipayNotify = new AlipayNotify($alipay_config); $verify_result = $alipayNotify->verify($_GET); if (!$verify_result) { phpok_log(P_Lang('异步通知:支付宝验证不通过')); exit('fail'); } //附款日期 $pay_date = $GLOBALS['app']->get('notify_time'); if ($pay_date) { $pay_date = strtotime($pay_date); } //附款金额,支付宝接口仅支持人民币 $price = $GLOBALS['app']->get('total_fee', 'float'); $trade_status = $GLOBALS['app']->get('trade_status'); $tmp = array('WAIT_SELLER_SEND_GOODS', 'WAIT_BUYER_CONFIRM_GOODS', 'TRADE_FINISHED', 'TRADE_SUCCESS'); if (in_array($trade_status, $tmp)) { $array = array('pay_status' => "付款完成", 'pay_date' => $pay_date, 'pay_price' => $price, 'pay_end' => 1); $array['status'] = '付款完成'; //更新扩展数据 $alipay = array(); $alipay['buyer_email'] = $GLOBALS['app']->get('buyer_email'); $alipay['buyer_id'] = $GLOBALS['app']->get('buyer_id'); $alipay['time'] = $GLOBALS['app']->get('notify_time'); $alipay['seller_email'] = $GLOBALS['app']->get('seller_email'); $alipay['seller_id'] = $GLOBALS['app']->get('seller_id'); $alipay['total_fee'] = $GLOBALS['app']->get('total_fee'); $alipay['trade_no'] = $GLOBALS['app']->get('trade_no'); $alipay['trade_status'] = $GLOBALS['app']->get('trade_status'); $array['ext'] = serialize($alipay); $GLOBALS['app']->model('order')->save($array, $rs['id']); } exit('success'); }
function submit() { $tenpay = new tenpay_lib(); $tenpay->set_key($this->payment['param']['key']); //签名验证 //设置不包含的参数 $array = array($GLOBALS['app']->config['ctrl_id'], $GLOBALS['app']->config['func_id'], 'sign', 'sn'); $trade_mode = $GLOBALS['app']->get('trade_mode', 'int'); $trade_status = $GLOBALS['app']->get('trade_state', 'int'); //检测为fail的几种情况 if ($trade_mode != '1' && $trade_mode != '2') { phpok_log('支付模式不符合要求'); exit('fail'); } if ($trade_mode == '1') { if ($trade_status != '0') { phpok_log('订单失败'); exit('fail'); } } $attach = $GLOBALS['app']->get('attach'); //密码不一致时,返回错误 if ($this->order['passwd'] != $attach || !$attach) { phpok_log('订单密码验证不通过'); exit('fail'); } //初始化内容参数 $tenpay->param_clear(); $notify_id = $GLOBALS['app']->get('notify_id'); //通过通知ID查询,确保通知来至财付通 $tenpay->set_url('https://gw.tenpay.com/gateway/simpleverifynotifyid.xml'); $tenpay->param('partner', $this->payment['param']['pid']); $tenpay->param('notify_id', $notify_id); $tenpay->set_key($this->payment['param']['key']); $url = $tenpay->url(); $call = $tenpay->call($url); //请求数据失败 if (!$call) { phpok_log('财付通请求不成功,请检查'); exit('fail'); } $tenpay->param_clear(); $tenpay->set_key($this->payment['param']['key']); $tenpay->set_xml_content(); //取得订单通知 if (!$tenpay->check_sign($array)) { phpok_log('验证不通过,请检查'); exit('fail'); } if ($tenpay->param('retcode') == '0') { $pay_date = $tenpay->get_date(); $pay_date = $pay_date ? strtotime($pay_date) : $GLOBALS['app']->time; $price = round($tenpay->param('total_fee') / 100, 2); //更新订单信息 $array = array('pay_status' => "付款完成", 'pay_date' => $pay_date, 'pay_price' => $price, 'pay_end' => 1); $array['status'] = '付款完成'; //更新扩展数据 $tenpay = array(); $tenpay['fee_type'] = $tenpay->param('fee_type'); $tenpay['notify_id'] = $tenpay->param('notify_id'); $tenpay['time_end'] = $tenpay->param('time_end'); $tenpay['total_fee'] = $tenpay->param('total_fee'); $tenpay['transaction_id'] = $tenpay->param('transaction_id'); $array['ext'] = serialize($tenpay); $GLOBALS['app']->model('order')->save($array, $this->order['id']); exit('success'); } exit('success'); }