Ejemplo n.º 1
0
 public function run($open_id, $total_fee, $body, $detail, $out_trade_no)
 {
     $response = array('error' => 1, 'msg' => '');
     $_SESSION['payment'] = 'wechat';
     global $config;
     $res = create_prepay($config['appid'], $this->mch_id, $this->mch_key, $open_id, $total_fee, $body, $detail, $out_trade_no);
     $res = simplexml_load_string($res);
     if ($res->prepay_id) {
         $response['error'] = 0;
     } else {
         $response['msg'] = $res->return_code . ',' . $res->return_msg;
     }
     $nonce_str = get_nonce_str();
     $response['nonce_str'] = $nonce_str;
     $time_stamp = time();
     //最后参与签名的参数有appId, timeStamp, nonceStr, package, signType。
     $sign = 'appId=' . $config['appid'] . '&nonceStr=' . $nonce_str . '&package=prepay_id=' . $res->prepay_id . '&signType=MD5&timeStamp=' . $time_stamp . '&key=' . $this->mch_key;
     $sign = md5($sign);
     $sign = strtoupper($sign);
     $response['timestamp'] = $time_stamp;
     $response['sign'] = $sign;
     $response['prepay_id'] = "" . $res->prepay_id;
     return $response;
 }
Ejemplo n.º 2
0
 if ($db->autoInsert('pay_order', array($pay_order_data))) {
     if ($balance_paid || $reward_paid) {
         member_account_change($_SESSION['account'], -1 * $balance_paid, -1 * $reward_paid, 0, 0, 0, 0, $_SESSION['account'], 2, $pay_order_sn);
     }
     //根据订单状态判断是否需要发起支付
     if ($response['status'] == 3) {
         //解冻会员
         if ($level_id == 2) {
             $db->autoUpdate('member', array('status' => 2, 'level_expired' => time() + 365 * 24 * 3600), '`account`=\'' . $account . '\'');
         } else {
             $db->autoUpdate('member', array('status' => 2), '`account`=\'' . $account . '\'');
         }
         //结算
         settle($recommend_info['recommend_path'] . $register_id . ',', $total_amount, $pay_order_sn);
     } else {
         $res = create_prepay($config['appid'], $config['mch_id'], $config['mch_key'], $_SESSION['openid'], $real_amount, $config['site_name'], $pay_order_sn, $pay_order_sn);
         $res = simplexml_load_string($res);
         if ($res->prepay_id) {
             $response['error'] = 0;
         } else {
             $response['msg'] = $res->return_code . ',' . $res->return_msg;
         }
         $nonce_str = get_nonce_str();
         $pay_params = array();
         $pay_params['nonce_str'] = $nonce_str;
         $time_stamp = time();
         //最后参与签名的参数有appId, timeStamp, nonceStr, package, signType。
         $sign = 'appId=' . $config['appid'] . '&nonceStr=' . $nonce_str . '&package=prepay_id=' . $res->prepay_id . '&signType=MD5&timeStamp=' . $time_stamp . '&key=' . $config['mch_key'];
         $sign = md5($sign);
         $sign = strtoupper($sign);
         $pay_params['timestamp'] = $time_stamp;
Ejemplo n.º 3
0
//支付方式变更时生成支付代码
if ('wechat' == $opera) {
    $mch_id = '1281515101';
    $mch_key = 'noihsilxueevoliiodosemdluowmarri';
    $response = array('error' => 1, 'msg' => '');
    $_SESSION['payment'] = 'wechat';
    $order_sn = $_SESSION['order_sn'];
    $get_order_info = 'select * from ' . $db->table('order') . ' where `order_sn`=\'' . $order_sn . '\' and `account`=\'' . $_SESSION['account'] . '\'';
    $order = $db->fetchRow($get_order_info);
    $total_fee = $order['amount'];
    $detail = '订单编号:' . $order_sn;
    $response['price'] = '¥' . sprintf('%.2f', $total_fee);
    $body = $config['site_name'] . '订单收款';
    $body = $detail;
    $out_trade_no = $order_sn;
    $res = create_prepay($config['appid'], $mch_id, $mch_key, $_SESSION['openid'], $total_fee, $body, $detail, $out_trade_no);
    $res = simplexml_load_string($res);
    if ($res->prepay_id) {
        $response['error'] = 0;
    } else {
        $response['msg'] = $res->return_code . ',' . $res->return_msg;
    }
    $nonce_str = get_nonce_str();
    $response['nonce_str'] = $nonce_str;
    $time_stamp = time();
    //最后参与签名的参数有appId, timeStamp, nonceStr, package, signType。
    $sign = 'appId=' . $config['appid'] . '&nonceStr=' . $nonce_str . '&package=prepay_id=' . $res->prepay_id . '&signType=MD5&timeStamp=' . $time_stamp . '&key=' . $mch_key;
    $sign = md5($sign);
    $sign = strtoupper($sign);
    $response['timestamp'] = $time_stamp;
    $response['sign'] = $sign;