文件
mashangyoujiu/Application/CashierApi/Controller/SelfHelpCashierController.class.php

627 行
27 KiB
PHP
可执行文件

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

<?php
namespace CashierApi\Controller;
use Pay\Controller\CloudPayController;
use Think\Controller;
//[1.6.31]
class SelfHelpCashierController extends BaseController
{
/**
* 自助收银支付
* @param string $order_no 订单号
* @param int $pay_type 支付类型 1.微信 2.支付宝
* @param int $all_money 金额
* @return array $res
*/
public function SelfHelpCashierPay()
{
// 接受数据
$order_no = I('post.order_no');
$pay_type = I('post.pay_type');
$all_money = I('post.all_money');
$vid = I('post.vid');
$coupon_id = I('post.coupon_id');
$discount = I('post.discount') ? I('post.discount') : 1;
$small_changes_money = I('post.small_changes_money') ? I('post.small_changes_money') : 0;
$integral_cashing = I('post.integral_cashing') == 1 ? 1 : 0;
$guide_id = I('post.guide_id') ? I('post.guide_id') : 0;
// 判断订单号
if (!$order_no) {
$res = array(
'status' => 0,
'msg' => '下单失败'
);
$this->ajaxReturn($res);
}
// 判断支付类型
if (!in_array($pay_type, array('1', '2'))) {
$res = array(
'status' => 0,
'msg' => '支付类型有误'
);
$this->ajaxReturn($res);
}
// 判断金额
if (!verifyPrice($all_money)) {
$res = array(
'status' => 0,
'msg' => '订单金额有误'
);
$this->ajaxReturn($res);
}
// 查询bill订单
$BillModel = D('RetailBillOrder');
$map = array(
'b.' . $BillModel::ORDER_NO => strval($order_no),
'b.' . $BillModel::MERCHANT_ID => self::$merchant_id,
'b.' . $BillModel::STORE_ID => self::$store_id,
);
$bill_order = $BillModel->getOrderLinkFind($map);
if (!$bill_order) {
$res = array(
'status' => 0,
'msg' => '订单查询失败'
);
$this->ajaxReturn($res);
}
// 验证金额
$CashierModel = D('RetailCashier');
$StoreModel = D('RetailStore');
$item = array(
'bill_order' => $bill_order,
'vid' => $vid, //会员id
'coupon_id' => $coupon_id, //优惠券id
'discount' => $discount, //收银员手动打折折扣值
'small_changes_money' => $small_changes_money, //抹零金额
'allMoney' => $all_money, //前台计算的总价
'integral_cashing' => $integral_cashing, //积分抵现开启状态
'guide_id' => $guide_id, //导购员id
'cashier_preferential_state' => self::$cashier[$CashierModel::PREFERENTIAL_STATE],//收银员打折权限
'store_preferential_state' => self::$store[$StoreModel::PREFERENTIAL_STATE],//门店打折权限
'guide_open_state' => self::$store[$StoreModel::GUIDE_OPEN_STATE],//导购员分佣开启状态
);
$calculation = A('PayApi/Order')->calculationOrder_v1($item);//重新计算该付的金额
if ($calculation['status'] == 1) {
$bill_order = $calculation['order'];
if (round($bill_order[$BillModel::ALL_MONEY] - $all_money) < 0) {
$result['all_money'] = $bill_order[$BillModel::ALL_MONEY];
$result['status'] = 0;
$result['msg'] = '支付金额超出订单总额1';
$this->ajaxReturn($result);
}
$bill_order[$BillModel::GUIDE_ID] = $guide_id;
$bill_order[$BillModel::PAY_STATE] = 2;
$bill_order[$BillModel::PAY_TYPE] = $pay_type == 1 ? 3 : 4;//1现金 3微信支付 4支付宝支付 5会员卡余额支付 6小程序商城微信支付 7其他支付方式 8组合支付
$update = $BillModel->updateOrder(array($BillModel::ID => $bill_order[$BillModel::ID]), $bill_order);
if (!$update) {
$result['status'] = 0;
$result['msg'] = '订单更新失败,请重试';
$this->ajaxReturn($result);
}
} else {
$this->ajaxReturn($calculation);
}
// pay_order表模型
$RPOModel = D('RetailPayOrder');
// 支付
if ($pay_type == 1) {
$payOrderItem[$RPOModel::PAY_TYPE] = 1;
} else {
$payOrderItem[$RPOModel::PAY_TYPE] = 2;
}
// 查询商户支付模式设置
$RPSModel = D('RetailPaySet');
$pay_set = $RPSModel->getFindMerchantConfig(self::$merchant_id, $pay_type);
if ($pay_set['status'] != 1) {
$res = array('status' => 0, 'msg' => $pay_set['msg']);
$this->ajaxReturn($res);
}
// 商户支付设置
$config = $pay_set['config'];
$RMModel = D('RetailMerchant'); // 商户表模型
$config['body'] = self::$merchant[$RMModel::NAME] . '-' . self::$store[$StoreModel::STORE_NAME];
// 下单(pay_order)
$payOrderItem[$RPOModel::M_PAY_TYPE] = $pay_set['m_pay_type'];
$payOrderItem[$RPOModel::ORDER_TYPE] = 1;
$payOrderItem[$RPOModel::PAY_TYPE] = $pay_type;
$payOrderItem[$RPOModel::TRADE_AMOUNT] = $all_money;
$payOrderItem[$RPOModel::STORE_ID] = self::$store_id;
$payOrderItem[$RPOModel::MERCHANT_ID] = self::$merchant_id;
$payOrderItem[$RPOModel::CASHIER_ID] = self::$cashier_id;
$payOrderItem[$RPOModel::VID] = 0;
$payOrderItem[$RPOModel::ORDER_STATE] = 'WAIT_BUYER_PAY';
$payOrderItem[$RPOModel::ADD_TIME] = time();
$payOrderItem[$RPOModel::BILL_ID] = $bill_order[$BillModel::ID];
$payOrderItem[$RPOModel::NOTIFY_URL] = 'NotifyApi/SelfHelpCashier/newPayNotifyUrl';
$add_order = $RPOModel->addPayOrder($payOrderItem);
// 判断下单
if (!$add_order) {
$res = array(
'status' => 0,
'msg' => '下单失败'
);
$this->ajaxReturn($res);
}
$store_name = self::$store[$StoreModel::STORE_NAME];
// 新大陆或微信或支付宝下单
if ($add_order[$RPOModel::M_PAY_TYPE] == 3) { // 新大陆
$res = A('Pay/PayContinent')->sweepCodePay($add_order);
if ($res['status'] == 0) {
$this->ajaxReturn($res);
}
} else if ($add_order[$RPOModel::M_PAY_TYPE] == 4) { // 云闪付
$payObj = new CloudPayController();
$res = $payObj->cloudPaybarCodeAll($add_order,$config, $pay_type,$store_name);
if ($res['status'] == 0) {
$this->ajaxReturn($res);
}
} else if ($pay_type == 1) { // 微信
$wx_result = A("Api/PaymentCodes")->createWxPayOrder($add_order, $config, $store_name, 1);
if ($wx_result['status'] == 0) {
$this->ajaxReturn($wx_result);
}
$res['qr_code'] = $wx_result['data']['code_url'];
} else if ($pay_type == 2) { // 支付宝
$al_result = A("Api/PaymentCodes")->createAliPayOrder($add_order, $config, $store_name, 1);
if ($al_result['status'] == 0) {
$this->ajaxReturn($al_result);
}
$res['qr_code'] = $al_result['qr_code'];
} else {
$res = array(
'status' => 0,
'msg' => '支付类型有误'
);
$this->ajaxReturn($res);
}
$res['status'] = 1;
$res['out_trade_no'] = $add_order[$RPOModel::OUT_TRADE_NO];
$res['msg'] = '下单成功';
$this->ajaxReturn($res);
}
/**
* 自助收银支付
* @param string $order_no 订单号
* @param int $pay_type 支付类型 1.微信 2.支付宝
* @param int $all_money 金额
* @return array $res
*/
public function SelfHelpCashierPay_v2()
{
// 接受数据
$order_no = I('post.order_no');
$pay_type = I('post.pay_type');
$all_money = I('post.all_money');
$vid = I('post.vid');
$coupon_id = I('post.coupon_id');
$discount = I('post.discount') ? I('post.discount') : 1;
$small_changes_money = I('post.small_changes_money') ? I('post.small_changes_money') : 0;
$integral_cashing = I('post.integral_cashing') == 1 ? 1 : 0;
$guide_id = I('post.guide_id') ? I('post.guide_id') : 0;
$integral_dis_num = I('post.integral_dis_num')?I('post.integral_dis_num'):0; //扣除的总积分
$integral_dis_money = I('post.integral_dis_money')?I('post.integral_dis_money'):0; //抵现积分的金额
// 判断订单号
if (!$order_no) {
$res = array(
'status' => 0,
'msg' => '下单失败'
);
$this->ajaxReturn($res);
}
// 判断支付类型
if (!in_array($pay_type, array('1', '2'))) {
$res = array(
'status' => 0,
'msg' => '支付类型有误'
);
$this->ajaxReturn($res);
}
// 判断金额
if (!verifyPrice($all_money)) {
$res = array(
'status' => 0,
'msg' => '订单金额有误'
);
$this->ajaxReturn($res);
}
// 查询bill订单
$BillModel = D('RetailBillOrder');
$map = array(
'b.' . $BillModel::ORDER_NO => strval($order_no),
'b.' . $BillModel::MERCHANT_ID => self::$merchant_id,
'b.' . $BillModel::STORE_ID => self::$store_id,
);
$bill_order = $BillModel->getOrderLinkFind($map);
if (!$bill_order) {
$res = array(
'status' => 0,
'msg' => '订单查询失败'
);
$this->ajaxReturn($res);
}
// 验证金额
$CashierModel = D('RetailCashier');
$StoreModel = D('RetailStore');
$item = array(
'bill_order' => $bill_order,
'vid' => $vid, //会员id
'coupon_id' => $coupon_id, //优惠券id
'discount' => $discount, //收银员手动打折折扣值
'small_changes_money' => $small_changes_money, //抹零金额
'allMoney' => $all_money, //前台计算的总价
'integral_cashing' => $integral_cashing, //积分抵现开启状态
'guide_id' => $guide_id, //导购员id
'integral_dis_money' => $integral_dis_money, //积分抵现开启抵现的金额
'integral_dis_num' => $integral_dis_num, //积分抵现开启状态抵现的积分
'cashier_preferential_state' => self::$cashier[$CashierModel::PREFERENTIAL_STATE],//收银员打折权限
'store_preferential_state' => self::$store[$StoreModel::PREFERENTIAL_STATE],//门店打折权限
'guide_open_state' => self::$store[$StoreModel::GUIDE_OPEN_STATE],//导购员分佣开启状态
);
$calculation = A('PayApi/Order')->calculationOrder_v2($item);//重新计算该付的金额
if ($calculation['status'] == 1) {
$bill_order = $calculation['order'];
if (round($bill_order[$BillModel::ALL_MONEY] - $all_money) < 0) {
$result['all_money'] = $bill_order[$BillModel::ALL_MONEY];
$result['status'] = 0;
$result['msg'] = '支付金额超出订单总额1';
$this->ajaxReturn($result);
}
$bill_order[$BillModel::GUIDE_ID] = $guide_id;
$bill_order[$BillModel::PAY_STATE] = 2;
$bill_order[$BillModel::PAY_TYPE] = $pay_type == 1 ? 3 : 4;//1现金 3微信支付 4支付宝支付 5会员卡余额支付 6小程序商城微信支付 7其他支付方式 8组合支付
$update = $BillModel->updateOrder(array($BillModel::ID => $bill_order[$BillModel::ID]), $bill_order);
if (!$update) {
$result['status'] = 0;
$result['msg'] = '订单更新失败,请重试';
$this->ajaxReturn($result);
}
} else {
$this->ajaxReturn($calculation);
}
// pay_order表模型
$RPOModel = D('RetailPayOrder');
// 支付
if ($pay_type == 1) {
$payOrderItem[$RPOModel::PAY_TYPE] = 1;
} else {
$payOrderItem[$RPOModel::PAY_TYPE] = 2;
}
// 查询商户支付模式设置
$RPSModel = D('RetailPaySet');
$pay_set = $RPSModel->getFindMerchantConfig(self::$merchant_id, $pay_type);
if ($pay_set['status'] != 1) {
$res = array('status' => 0, 'msg' => $pay_set['msg']);
$this->ajaxReturn($res);
}
// 商户支付设置
$config = $pay_set['config'];
$RMModel = D('RetailMerchant'); // 商户表模型
$config['body'] = self::$merchant[$RMModel::NAME] . '-' . self::$store[$StoreModel::STORE_NAME];
// 下单(pay_order)
$payOrderItem[$RPOModel::M_PAY_TYPE] = $pay_set['m_pay_type'];
$payOrderItem[$RPOModel::ORDER_TYPE] = 1;
$payOrderItem[$RPOModel::PAY_TYPE] = $pay_type;
$payOrderItem[$RPOModel::TRADE_AMOUNT] = $all_money;
$payOrderItem[$RPOModel::STORE_ID] = self::$store_id;
$payOrderItem[$RPOModel::MERCHANT_ID] = self::$merchant_id;
$payOrderItem[$RPOModel::CASHIER_ID] = self::$cashier_id;
$payOrderItem[$RPOModel::VID] = 0;
$payOrderItem[$RPOModel::ORDER_STATE] = 'WAIT_BUYER_PAY';
$payOrderItem[$RPOModel::ADD_TIME] = time();
$payOrderItem[$RPOModel::BILL_ID] = $bill_order[$BillModel::ID];
$payOrderItem[$RPOModel::NOTIFY_URL] = 'NotifyApi/SelfHelpCashier/newPayNotifyUrl';
$add_order = $RPOModel->addPayOrder($payOrderItem);
// 判断下单
if (!$add_order) {
$res = array(
'status' => 0,
'msg' => '下单失败'
);
$this->ajaxReturn($res);
}
$store_name = self::$store[$StoreModel::STORE_NAME];
// 新大陆或微信或支付宝下单
if ($add_order[$RPOModel::M_PAY_TYPE] == 3) { // 新大陆
$res = A('Pay/PayContinent')->sweepCodePay($add_order);
if ($res['status'] == 0) {
$this->ajaxReturn($res);
}
} else if ($add_order[$RPOModel::M_PAY_TYPE] == 4) { // 云闪付
$payObj = new CloudPayController();
$res = $payObj->cloudPaybarCodeAll($add_order,$config, $pay_type,$store_name);
if ($res['status'] == 0) {
$this->ajaxReturn($res);
}
} else if ($pay_type == 1) { // 微信
$wx_result = A("Api/PaymentCodes")->createWxPayOrder($add_order, $config, $store_name, 1);
if ($wx_result['status'] == 0) {
$this->ajaxReturn($wx_result);
}
$res['qr_code'] = $wx_result['data']['code_url'];
} else if ($pay_type == 2) { // 支付宝
$al_result = A("Api/PaymentCodes")->createAliPayOrder($add_order, $config, $store_name, 1);
if ($al_result['status'] == 0) {
$this->ajaxReturn($al_result);
}
$res['qr_code'] = $al_result['qr_code'];
} else {
$res = array(
'status' => 0,
'msg' => '支付类型有误'
);
$this->ajaxReturn($res);
}
$res['status'] = 1;
$res['out_trade_no'] = $add_order[$RPOModel::OUT_TRADE_NO];
$res['msg'] = '下单成功';
$this->ajaxReturn($res);
}
/**
* 自助收银机查询扫码支付订单状态
* @param string $out_trade_no pay_order订单号
* @return array $res
*/
public function searchOrderPayState()
{
// 接受数据
$out_trade_no = I('post.out_trade_no');
// 判断订单号
if (!$out_trade_no) {
$res = array(
'status' => 0,
'msg' => '请求错误'
);
$this->ajaxReturn($res);
}
// 查询订单
$RPOModel = D('RetailPayOrder');
$pay_order = $RPOModel->getFind(array($RPOModel::OUT_TRADE_NO => strval($out_trade_no)));
// 判断订单
if (empty($pay_order)) {
$res = array(
'status' => 0,
'msg' => '订单异常'
);
$this->ajaxReturn($res);
}
// 查询bill_order
$RBOModel = D('RetailBillOrder');
$map = array(
'b.' . $RBOModel::ID => $pay_order[$RPOModel::BILL_ID],
'b.' . $RBOModel::MERCHANT_ID => self::$merchant_id,
'b.' . $RBOModel::STORE_ID => self::$store_id,
);
$bill_order = $RBOModel->getOrderLinkFind($map);
if (empty($bill_order)) {
$res = array(
'status' => 0,
'msg' => '订单查询失败'
);
$this->ajaxReturn($res);
}
// 判断支付
if ($pay_order[$RPOModel::ORDER_STATE] == 'REVOKED' && $bill_order[$RBOModel::PAY_STATE] != 1) {
$res = array(
'status' => 0,
'msg' => '订单已撤销成功'
);
} else if ($pay_order[$RPOModel::ORDER_STATE] == 'SUCCESS' && $bill_order[$RBOModel::PAY_STATE] == 1) {
$res = array(
'status' => 1,
'msg' => '支付成功'
);
} else {
$res = array(
'status' => 2,
'msg' => '等待支付'
);
}
$this->ajaxReturn($res);
}
/**
* 自助收银机订单超时 关闭订单
* @param string $out_trade_no pay_order订单号
* @return array $res
*/
public function closePayOrder()
{
// 接受数据
$out_trade_no = I('post.out_trade_no');
// 判断订单号
if (!$out_trade_no) {
$res = array(
'status' => 0,
'msg' => '请求错误'
);
$this->ajaxReturn($res);
}
// 查询订单
$RPOModel = D('RetailPayOrder');
$pMap = array(
$RPOModel::OUT_TRADE_NO => strval($out_trade_no)
);
$pay_order = $RPOModel->getFind($pMap);
// 判断订单
if (empty($pay_order)) {
$res = array(
'status' => 0,
'msg' => '订单异常'
);
$this->ajaxReturn($res);
}
// 判断订单是否支付成功
if ($pay_order[$RPOModel::ORDER_STATE] == 'SUCCESS') {
$res = array(
'status' => 2,
'msg' => '订单已支付'
);
$this->ajaxReturn($res);
} else if ($pay_order[$RPOModel::ORDER_STATE] != 'WAIT_BUYER_PAY') {
$res = array(
'status' => 0,
'msg' => '订单已被撤销'
);
$this->ajaxReturn($res);
} else {
$RPSModel = D('RetailPaySet'); // 支付设置模型
$RPOModel = D('RetailPayOrder'); // pay_order模型
// 查询支付设置
$pay_config = $RPSModel->getFindMerchantConfig($pay_order[$RPOModel::MERCHANT_ID], 1);
if ($pay_config['status'] == 0) {
return $pay_config;
}
$config = $pay_config['config'];
// 判断支付方式
if ($pay_order[$RPOModel::M_PAY_TYPE] != 3) { // 普通模式 服务商模式 撤销订单 新大陆无法撤销
// 微信订单 撤销订单
if ($pay_order[$RPOModel::PAY_TYPE] == 1) { // 微信撤销订单
// 查询微信订单状态
$close_result = $this->closeWxPayOrder($pay_order, $config);
// 用户已支付
if ($close_result['status'] == 2) {
$extend_content = $this->searchWxOrder($pay_order, $config);
// 修改pay_order表订单
$up = array(
$RPOModel::TRADE_NO => $extend_content['transaction_id'],
$RPOModel::ORDER_STATE => 'SUCCESS',
$RPOModel::TRADE_DATE => time(),
$RPOModel::EXTEND_CONTENT => $extend_content
);
$save = $RPOModel->updateOrder($pMap, $up); //更新订单信息
if (!$save) {
$res = array('status' => 0, 'msg' => '用户已完成支付,订单出现异常,请联系商家');
$this->ajaxReturn($res);
}
// 修改bill订单
$bill_result = A('PayApi/Order')->paySuccess($pay_order[$RPOModel::BILL_ID]);
if ($bill_result['status'] == 0) {
$this->ajaxReturn($bill_result);
} else {
$res = array('status' => 2, 'msg' => '订单已支付');
$this->ajaxReturn($res);
}
}
} else if ($pay_order[$RPOModel::PAY_TYPE] == 2) { // 支付宝撤销订单
A('Pay/NewAliPay')->revocation_v2($pay_order, $config);
}
}
}
// 修改pay_order订单状态
$RPOModel->updateOrder($pMap, array($RPOModel::ORDER_STATE => 'REVOKED'));
$res = array(
'status' => 1,
'msg' => '撤销成功'
);
$this->ajaxReturn($res);
}
/**
* 微信撤销订单
* @param array $order
* @return array $res
*/
protected function closeWxPayOrder($order, $config)
{
$RPSModel = D('RetailPaySet'); // 支付设置模型
$RPOModel = D('RetailPayOrder'); // pay_order模型
$out_trade_no = $order[$RPOModel::OUT_TRADE_NO];
if ($order[$RPOModel::M_PAY_TYPE] == 1) {
$post['appid'] = $config[$RPSModel::WX_APPID];
$post['mch_id'] = $config[$RPSModel::WX_MCH_ID];
$apiclient_cert = $config[$RPSModel::WX_AC_CERT];
$apiclient_key = $config[$RPSModel::WX_AC_KEY];
$key = $config[$RPSModel::WX_SECRET_KEY];
} else if ($order[$RPOModel::M_PAY_TYPE] == 2) {
$pay_set = M("systemconfig")->find(); // 查询合作伙伴配置
$post['appid'] = $pay_set['wx_appid'];
$post['mch_id'] = $pay_set['mch_id'];
$post['sub_mch_id'] = $config[$RPSModel::WX_SUB_MCH_ID];
$post['sub_appid'] = $config[$RPSModel::WX_APPID];
$apiclient_cert = $pay_set['wx_apiclient_cert'];
$apiclient_key = $pay_set['wx_apiclient_key'];
$key = $pay_set['wx_key'];
}
$item['apiclient_cert'] = $apiclient_cert;
$item['apiclient_key'] = $apiclient_key;
$item['key'] = $key;
$WxMicroPay = new \Util\Wx\WxMicroPay($item);
$post['out_trade_no'] = $out_trade_no;
$post['nonce_str'] = $WxMicroPay->createNoncestr(32);
$post['sign'] = $WxMicroPay->getSign($post);
$xml = $WxMicroPay->arrayToXml($post);
$url = 'https://api.mch.weixin.qq.com/pay/closeorder';
$response = $WxMicroPay->postXmlCurl($xml, $url, 30);
$response = json_decode(json_encode(simplexml_load_string($response, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
if ($response['return_code'] == 'SUCCESS' && $response['result_code'] == 'SUCCESS') {
$res = array('status' => 1, 'msg' => '撤销成功');
} else if ($response['result_code'] == 'FAIL' && $response['err_code'] == 'ORDERPAID') {
switch ($response['err_code']) {
case 'ORDERPAID':
$res = array(
'status' => 2,
'msg' => '用户已支付'
);
break;
case 'SYSTEMERROR':
$res = array(
'status' => 0,
'msg' => '系统异常'
);
break;
case 'ORDERCLOSED':
$res = array(
'status' => 1,
'msg' => '订单已关闭'
);
break;
default:
$res = array(
'status' => 0,
'msg' => '撤销失败'
);
}
}
return $res;
}
/**
* 微信查询用户订单
* @param array $order pay_order订单
* @return array $res
*/
protected function searchWxOrder($order, $config)
{
$RPOModel = D('RetailPayOrder'); // pay_order表模型
$RPSModel = D('RetailPaySet'); // 商户支付设置模型
$out_trade_no = $order[$RPOModel::OUT_TRADE_NO];
if ($order[$RPOModel::M_PAY_TYPE] == 1) {
$post['appid'] = $config[$RPSModel::WX_APPID];
$post['mch_id'] = $config[$RPSModel::WX_MCH_ID];
$key = $config[$RPSModel::WX_SECRET_KEY];
} else if ($order[$RPOModel::M_PAY_TYPE] == 2) {
$pay_set = M("systemconfig")->find(); // 查询合作伙伴配置
$post['appid'] = $pay_set['wx_appid'];
$post['mch_id'] = $pay_set['mch_id'];
$post['sub_mch_id'] = $config[$RPSModel::WX_SUB_MCH_ID];
$post['sub_appid'] = $config[$RPSModel::WX_APPID];
$key = $pay_set['wx_key'];
}
$item['key'] = $key;
$WxMicroPay = new \Util\Wx\WxMicroPay($item);
$post['out_trade_no'] = $out_trade_no;
$post['nonce_str'] = $WxMicroPay->createNoncestr(32);
$post['sign'] = $WxMicroPay->getSign($post);
$xml = $WxMicroPay->arrayToXml($post);
$url = 'https://api.mch.weixin.qq.com/pay/orderquery';
$response = $WxMicroPay->postXmlCurl($xml, $url, 30);
$response = json_decode(json_encode(simplexml_load_string($response, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
return $response;
}
}