示例#1
0
 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');
 }
示例#2
0
 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');
 }
示例#3
0
 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');
 }
示例#4
0
 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');
 }