Example #1
0
 /**
  * Registers swiftMailer autoloader and includes the required files
  */
 public function registerScripts()
 {
     if (self::$registeredScripts) {
         return;
     }
     self::$registeredScripts = true;
     require dirname(__FILE__) . '/func/common.php';
     require dirname(__FILE__) . '/func/SDKConfig.php';
     require dirname(__FILE__) . '/func/secureUtil.php';
     //require dirname(__FILE__).'/func/log.class.php';
 }
 function unionpay1()
 {
     $order_sn = $_GET['order_sn'];
     $token = $this->token;
     $wecha_id = $this->wechat_id;
     if (empty($order_sn)) {
         $this->error('没有订单号');
     }
     $order = M('b2c_order')->where(array('sn' => $order_sn, 'token' => $token, 'status' => 1))->find();
     if (!$order) {
         $this->error('该订单不存在');
     }
     $payment_where = array('token' => $token, 'pay_code' => 'unionpay', 'enabled' => '1');
     $payment = M('b2c_payment')->where($payment_where)->find();
     //$wingpay_config = unserialize($payment['pay_config']);
     if (empty($payment)) {
         $this->error('商家未设置银联支付方式!请联系商家客服!');
     }
     if (version_compare(phpversion(), '5.4.10', '>')) {
         include_once LIB_PATH . 'ORG/Payment/UnionPay/lib.php';
     } else {
         include_once LIB_PATH . 'ORG/Payment/UnionPay/netpayclient.php';
     }
     $merid = buildKey('keys/MerPrK_808080301000216_20141106164338.key');
     if (empty($merid)) {
         $this->error('未设置商户号!');
     }
     $ordid = $this->get_order_no($order['sn']);
     $transamt = padstr($order['price'] * 100, 12);
     //订单交易金额,12位长度,左补0,单位:分
     $curyid = '156';
     //订单交易币种,3位长度,固定为人民币156
     $transdate = date('Ymd');
     $transtype = '0001';
     //交易类型,4位长度,"0001"表示消费交易,"0002"表示退货交易
     $version = '20070129';
     //支付接入版本号20040916,20070129
     $gateid = '8607';
     $priv1 = 'wechat';
     if (!signOrder($merid, $ordid, $transamt, $curyid, $transdate, $transtype)) {
         $this->error('订单签名验证失败!');
     }
     $chkvalue = sign($merid . $ordid . $transamt . $curyid . $transdate . $transtype . $priv1);
     //PageRetUrl 返回支付后的商户网站页面
     if (isset($_GET['fxs_id'])) {
         $pagereturl = C('site_url') . '/index.php/Fxs/Shop/my?token=' . $token . '&fxs_id=' . $_GET['fxs_id'];
     } elseif (isset($_GET['type'])) {
         $pagereturl = C('site_url') . '/index.php/Fxs/Fxs/my?token=' . $token;
     } else {
         $pagereturl = C('site_url') . '/index.php/Wap/Shop/my?token=' . $token;
     }
     //后台接受应答地址,用于商户记录交易信息和处理
     $bgreturl = C('site_url') . '/index.php/unionpay/notify';
     $trade = M('b2c_wingtrade')->where(array('order_sn' => $order_sn, 'token' => $token))->find();
     if ($trade) {
         if ($trade['is_pay']) {
             $this->success('该订单已付款,不能重复付款!');
         }
     } else {
         $serialize = array('MerId' => $merid, 'OrdId' => $ordid, 'TransAmt' => $transamt, 'CuryId' => $curyid, 'TransDate' => $transdate, 'TransType' => $transtype, 'Version' => $version, 'BgRetUrl' => $bgreturl, 'PageRetUrl' => $pagereturl, 'GateId' => $gateid, 'Priv1' => $priv1, 'ChkValue' => $chkvalue);
         $data = array('token' => $token, 'order_sn' => $order_sn, 'is_pay' => '0', 'set_params' => serialize($serialize), 'create_time' => time(), 'update_time' => time());
         M('b2c_wingtrade')->add($data);
     }
     include_once LIB_PATH . "ORG/Payment/UnionPay/UnionPay.php";
     $unionpay = new UnionPay();
     $unionpay->setParameter('MerId', $merid);
     $unionpay->setParameter('OrdId', $ordid);
     $unionpay->setParameter('TransAmt', $transamt);
     $unionpay->setParameter('CuryId', $curyid);
     $unionpay->setParameter('TransDate', $transdate);
     $unionpay->setParameter('TransType', $transtype);
     $unionpay->setParameter('Version', $version);
     $unionpay->setParameter('BgRetUrl', $bgreturl);
     $unionpay->setParameter('PageRetUrl', $pagereturl);
     $unionpay->setParameter('GateId', $gateid);
     $unionpay->setParameter('Priv1', $priv1);
     $unionpay->setParameter('ChkValue', $chkvalue);
     echo $unionpay->_buildForm('web');
 }