getFindMerchantConfig($order['merchant_id'], 3); $config = $paySet['config']; if ($order['m_pay_type'] == 3) { // 新大陆 $PayContinent = new PayContinentController(); return $PayContinent->searchAndUpdateOrder_v3($order); } else if ($order['m_pay_type'] == 4) { // 云闪付模式 $CloudPay = new CloudPayController(); return $CloudPay->queryOrderAndUpdate($order); } else if ($order['m_pay_type'] == 7) { // 钱客云模式 $moneyGuest = new \MoneyGuestPay\Business\MoneyGuest(); $response = $moneyGuest->moneyGuestQueryOrder([ 'pay_order' => $order, 'config' => $config ]); return $response; } else { //直连 if ($order["m_pay_type"] == 1) { // 普通模式 $key = $config[$PaySetModel::XCX_SECRET_KEY]; $post['appid'] = $config[$PaySetModel::XCX_APPID]; $post['mch_id'] = $config[$PaySetModel::XCX_MCH_ID]; } else { // 服务商 $order['m_pay_type'] == 2 $SystemConfigModel = D('SystemConfig'); $systemConfig = $config['systemConfig']; $post['appid'] = $systemConfig[$SystemConfigModel::WX_APPID]; $post['mch_id'] = $systemConfig[$SystemConfigModel::MCH_ID]; $post['sub_mch_id'] = $config[$PaySetModel::XCX_SUB_MCH_ID]; $post['sub_appid'] = $config[$PaySetModel::XCX_SUB_APPID]; $key = $systemConfig[$SystemConfigModel::WX_KEY]; } $post['nonce_str'] = createKey(); //随机字符串 $post['out_trade_no'] = $order['out_trade_no']; $post['sign'] = createSign($post, $key); //签名 // $result['post'] = $post; $post_xml = arrToXml($post); $url = 'https://api.mch.weixin.qq.com/pay/orderquery'; $xml = http_request($url, $post_xml); //POST方式请求http $xcxArr = xmlToArray($xml); //将api返回xml数据转换成数组 if ($xcxArr['return_code'] == 'SUCCESS' && $xcxArr['result_code'] == 'SUCCESS' && $xcxArr['trade_state'] == 'SUCCESS') { $PayOrderModel = new RetailPayOrderModel(); $updateData = array( 'order_state' => 'SUCCESS', 'extend_content' => json_encode($xcxArr), 'trade_date' => time(), 'trade_no' => $xcxArr['transaction_id'], ); $PayOrderModel->updateOrder(array('id' => $order['id']), $updateData); //更新pay_order表 $where = [ 'merchant_id' => $order['merchant_id'], 'openid' => $xcxArr['openid'] ]; $PayInfo = new PayInfoModel(); $pay_info = $PayInfo->getFind($where); if (empty($pay_info)) { $pay_info = [ 'merchant_id' => $order['merchant_id'], 'pay_order_id' => $order['id'], 'vip_id' => $order['vid'] ? $order['vid'] : 0, 'xcx_id' => $order['uid'] ? $order['uid'] : 0, 'm_pay_type' => $order['m_pay_type'], 'openid' => $xcxArr['openid'], 'sub_openid' => $xcxArr['sub_openid'] ? $xcxArr['sub_openid'] : '', 'type' => 1, 'add_time' => time(), ]; $PayInfo->addOrder($pay_info); } return callBack(statusCode()['success'], "支付成功"); } else { return callBack(statusCode()['error'], "订单未支付"); } } } }