Example #1
0
 } while ($db->fetchOne($check_pay_order_sn));
 $pay_order_data['order_sn'] = $pay_order_sn;
 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);
Example #2
0
 do {
     $pay_order_sn = time() . rand(1000, 9999);
     $check_pay_order_sn = 'select `order_sn` from ' . $db->table('pay_order') . ' where `order_sn`=\'' . $pay_order_sn . '\'';
 } while ($db->fetchOne($check_pay_order_sn));
 $pay_order_data['order_sn'] = $pay_order_sn;
 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) {
         //解冻会员
         $level_expired = $member_info['level_expired'] + 365 * 24 * 3600;
         $db->autoUpdate('member', array('status' => 2, 'level_expired' => $level_expired), '`account`=\'' . $account . '\'');
         //结算
         settle($member_info['recommend_path'], $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);