Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
L
lxx_pms
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
游宗学
lxx_pms
Commits
c1c4cf46
提交
c1c4cf46
authored
5月 07, 2020
作者:
游宗学
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
no message
上级
4c110b33
显示空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
0 行增加
和
721 行删除
+0
-721
MyapplyforHelper.class-1.php
...pplication/Common/Helper/Api/MyapplyforHelper.class-1.php
+0
-367
WeChatPayHelper.class-1.php
...Application/Common/Helper/Pay/WeChatPayHelper.class-1.php
+0
-241
.WorkLogic.class.php.swp
...ication/Common/Logic/HouseKeeper/.WorkLogic.class.php.swp
+0
-0
MyapplyforModel.class-1.php
PHP/Application/Common/Model/Api/MyapplyforModel.class-1.php
+0
-17
MyappointmentModel.class-1.php
...plication/Common/Model/Api/MyappointmentModel.class-1.php
+0
-81
activityPay-1.html
PHP/Application/Open/View/default/Apiview/activityPay-1.html
+0
-15
没有找到文件。
PHP/Application/Common/Helper/Api/MyapplyforHelper.class-1.php
deleted
100755 → 0
浏览文件 @
4c110b33
<?php
/**
* Created by PhpStorm.
* User: king
* Date: 16/11/3
* Time: 下午3:28
*/
namespace
Common\Helper\Api
;
use
Common\Helper\BaseHelper
;
class
MyApplyForHelper
extends
BaseHelper
{
/**
* @name 添加一条数据的方法
* @version 2017年6月9日
* @author zsc
* @param $data 数组参数
* @return status
*/
public
function
addOne
(
$data
)
{
$item
=
D
(
'Api\MyApplyFor'
);
$rec
=
$item
->
data
(
$data
)
->
add
();
if
(
$rec
===
false
){
return
array
(
'status'
=>
0
,
'message'
=>
'失败'
,
'data'
=>
[]);
}
return
array
(
'status'
=>
1
,
'message'
=>
'成功'
,
'data'
=>
$rec
);
}
/**
* @name 查询一条数据
* @version 2017年6月9日
* @author zsc
* @param $where 任何条件 $field 过滤字段
* @return array
*/
public
function
getOne
(
$where
=
[],
$field
=
'*'
)
{
$item
=
D
(
'Api\MyApplyFor'
);
$rec
=
$item
->
field
(
$field
)
->
where
(
$where
)
->
find
();
if
(
$rec
===
false
)
{
return
array
(
'status'
=>
0
,
'message'
=>
'失败'
,
'data'
=>
[]);
}
return
array
(
'status'
=>
1
,
'message'
=>
'成功'
,
'data'
=>
$rec
);
}
/**
* @name 查询多条数据
* @version 2017年6月9日
* @author zsc
* @param $where 任何条件 $field 过滤字段 $page 当前页 $num 每页显示的数量 $order 排序规则 $group 分组规则
* @return array
*/
public
function
getList
(
$where
=
[],
$field
=
'*'
,
$page
=
1
,
$num
=
100000
,
$order
=
'create_time desc'
,
$group
=
null
)
{
$item
=
D
(
'Api\MyApplyFor'
);
$rec
=
$item
->
field
(
$field
)
->
where
(
$where
)
->
page
(
$page
,
$num
)
->
order
(
$order
)
->
select
();
if
(
$rec
===
false
){
return
array
(
'status'
=>
0
,
'message'
=>
'失败'
,
'data'
=>
[]);
}
return
array
(
'status'
=>
1
,
'message'
=>
'成功'
,
'data'
=>
$rec
);
}
/**
* @name 修改数据的方法
* @version 2017年6月9日
* @author zsc
* @param $data 数组形式的数据 $where 条件
* @return status
*/
public
function
updateOne
(
$data
,
$where
)
{
$item
=
D
(
'Api\MyApplyFor'
);
$rec
=
$item
->
where
(
$where
)
->
save
(
$data
);
if
(
$rec
===
false
)
{
return
array
(
'status'
=>
0
,
'message'
=>
'失败'
,
'data'
=>
[]);
}
return
array
(
'status'
=>
1
,
'message'
=>
'成功'
,
'data'
=>
[]);
}
/**
* @name 删除数据的方法
* @version 2017年6月9日
* @author zsc
* @param $where 条件
* @return status
*/
public
function
deleteDate
(
$where
=
[]){
$item
=
D
(
'Api\MyApplyFor'
);
$rec
=
$item
->
where
(
$where
)
->
delete
();
if
(
$rec
===
false
){
return
array
(
'status'
=>
0
,
'message'
=>
'失败'
,
'data'
=>
[]);
}
return
array
(
'status'
=>
1
,
'message'
=>
'成功'
,
'data'
=>
$rec
);
}
public
function
add
(
$data
)
{
return
D
(
'Api\MyApplyFor'
)
->
add
(
$data
);
}
public
function
getCount
(
$map
)
{
$map
[
'status'
]
=
1
;
return
D
(
'Api\MyApplyFor'
)
->
where
(
$map
)
->
count
();
}
/**
* @name 统计报名总人数带家属等
* @version 2017年3月22日
* @author zsc
* @return int
*/
public
function
getSum
(
$map
)
{
$map
[
'status'
]
=
1
;
return
D
(
'Api\MyApplyFor'
)
->
where
(
$map
)
->
sum
(
'people_number'
);
}
/**
* @name 查询租客是否已经报名
* @version 2017年2月10日
* @author ft
* @param $tenantId
* @param $articleId
* @return int
*/
public
function
searchWhetherEnroll
(
$tenantId
,
$articleId
)
{
$tableName
=
D
(
'Api\Article'
)
->
getTableName
();
return
D
(
'Api\MyApplyFor'
)
->
where
([
'tenant_id'
=>
$tenantId
,
'table_id'
=>
$articleId
,
'table_name'
=>
$tableName
])
->
find
();
}
/**
* @name 获取用户的报名
* @param $where
* @return mixed
*/
public
function
getEnroll
(
$where
)
{
return
D
(
'Api\MyApplyFor'
)
->
where
(
$where
)
->
select
();
}
/**
* @name 根据活动ID查看活动报名情况
* @version 2017-02-10 11:14:25
* @author zsc
*
*/
public
function
getApplyForList
(
$article_id
)
{
if
(
!
$article_id
)
{
return
[
'status'
=>
0
,
'message'
=>
'活动ID不能为空'
,
'data'
=>
[]];
}
$where
=
[
'table_name'
=>
'article'
,
'table_id'
=>
$article_id
,
'status'
=>
1
];
//报名数据
$enrollList
=
D
(
'Api\MyApplyFor'
)
->
where
(
$where
)
->
select
();
if
(
empty
(
$enrollList
))
{
return
[
'status'
=>
0
,
'message'
=>
'该活动没有报名!'
,
'data'
=>
[]];
}
$enrollList
=
custom_array_column
(
$enrollList
,
'tenant_id'
);
$tenantIds
=
array_keys
(
$enrollList
);
$fields
=
'tenant_id, nickname as name, gender, apartment_id'
;
$usersInfo
=
$this
->
helper
(
'Api\UserInfo'
)
->
getUsersInfo
(
$tenantIds
,
$fields
);
// if ($usersInfo) {
// $apartmentIds = array_rid_repeat(array_column($usersInfo, 'apartment_id'));
// $apartments = $this->helper('Apartment')->getApartmentById($apartmentIds, 'apartment_id, apartment_name');
// $apartments = custom_array_column($apartments, 'apartment_id');
// }
foreach
(
$usersInfo
as
&
$user
)
{
if
(
$enrollList
[
$user
[
'tenant_id'
]])
{
$user
[
'phone'
]
=
$enrollList
[
$user
[
'tenant_id'
]][
'phone'
];
$user
[
'apply_time'
]
=
date
(
'Y-m-d'
,
$enrollList
[
$user
[
'tenant_id'
]][
'create_time'
]);
}
//获取用户门店【合同里面的最新的一个】
$contract
=
$this
->
logic
(
'Contract\Contract'
)
->
getContractList
(
$user
[
'tenant_id'
],
$is_over
=
1
)[
'data'
];
$user
[
'apartment'
]
=
$contract
[
'0'
][
'apartment_name'
];
$user
[
'people_num'
]
=
$enrollList
[
$user
[
'tenant_id'
]][
'people_number'
];
}
if
(
empty
(
$usersInfo
))
{
return
[
'status'
=>
0
,
'message'
=>
'该活动没有报名数据!'
,
'data'
=>
[]];
}
return
[
'status'
=>
1
,
'message'
=>
'获取成功'
,
'data'
=>
$usersInfo
];
}
/**
* @name 查询当前用户报名的活动
* @param array $articleId
* @param int $tenantId
* @return array
*/
public
function
searchMyEnrollArticle
(
$articleId
,
$tenantId
)
{
$tenantEnrolls
=
D
(
'Api\MyApplyFor'
)
->
where
([
'tenant_id'
=>
$tenantId
,
'status'
=>
1
,
'article_id'
=>
[
'in'
,
$articleId
]])
->
select
();
return
custom_array_column
(
$tenantEnrolls
,
'table_id'
);
}
/**
* @name 活动报名
* @version 2017年3月7日
* @author ft
* @param array $user
* @return array
*/
public
function
articleEnroll
(
$user
)
{
$articleId
=
I
(
'post.article_id'
,
0
,
'intval'
);
$price
=
I
(
'post.price'
,
0
,
'floatval'
);
$phone
=
I
(
'post.phone'
,
''
,
'string'
);
$peopleNumber
=
I
(
'post.people_number'
,
0
,
'intval'
);
if
(
empty
(
$user
[
'tenant_id'
]))
{
return
[
'status'
=>
0
,
'message'
=>
'没有用户ID!'
];
}
if
(
$articleId
==
0
)
{
return
[
'status'
=>
0
,
'message'
=>
'没有活动ID!'
];
}
if
(
$peopleNumber
==
0
)
{
return
[
'status'
=>
0
,
'message'
=>
'请选择报名人数!'
];
}
if
(
$price
<
0
)
{
return
[
'status'
=>
0
,
'message'
=>
'没有报名价格!'
];
}
if
(
$phone
==
''
||
!
is_phone
(
$phone
))
{
return
[
'status'
=>
0
,
'message'
=>
'请输入正确的电话号码!'
];
}
$article
=
$this
->
helper
(
'Api\Article'
)
->
getArticleById
(
$articleId
);
if
(
empty
(
$article
))
{
return
[
'status'
=>
0
,
'message'
=>
'报名的活动不存在!'
];
}
if
(
$article
[
'price'
]
<
0
||
$peopleNumber
<
0
)
{
return
[
'status'
=>
0
,
'message'
=>
'报名价格或者报名人数错误!'
];
}
$enrollResult
=
$this
->
searchWhetherEnroll
(
$user
[
'tenant_id'
],
$articleId
);
// if ($enrollResult) {
// return ['status' => 0, 'message' => '不能重复报名同一个活动!'];
// }
//预防支付前系统管理员将活动价格更改 和 抓包篡改数据的情况
$systemPrice
=
$article
[
'price'
]
*
$peopleNumber
;
if
((
string
)
$price
!=
(
string
)
$systemPrice
)
{
return
[
'status'
=>
0
,
'message'
=>
'活动报名价格有变动,您应支付'
.
$systemPrice
.
'元'
,
'data'
=>
"
$systemPrice
"
];
}
$myApplyModel
=
D
(
'Api\MyApplyFor'
);
$myApplyModel
->
startTrans
();
if
(
$article
[
'price'
]
>
0
)
{
$orderData
=
[
'tenant_id'
=>
$user
[
'tenant_id'
],
'order_name'
=>
$article
[
'title'
],
'table_name'
=>
D
(
'Api\MyApplyFor'
)
->
getTableName
(),
'price'
=>
$price
,
'type'
=>
'ARTICLE'
];
$orderModel
=
D
(
'Api\Orders'
);
$payWay
=
[
'pay_channel'
=>
$orderModel
::
CHANNEL_WX
,
'pay_way'
=>
$orderModel
::
WECHAT_APP_PAY
,
'from_way'
=>
$orderModel
::
$fromWay
[
'app'
]
];
//生成订单
$ordersResult
=
$this
->
helper
(
'Api\Orders'
)
->
ordersGenerate
(
$orderData
,
$payWay
);
if
(
$ordersResult
[
'status'
]
!=
1
)
{
$myApplyModel
->
rollback
();
return
$ordersResult
;
}
}
$orderId
=
isset
(
$ordersResult
)
?
array_shift
(
$ordersResult
[
'data'
])
:
0
;
if
(
empty
(
$enrollResult
))
{
//如果没有报过名
$myApplyData
=
[
'tenant_id'
=>
$user
[
'tenant_id'
],
'order_id'
=>
$orderId
,
'table_name'
=>
D
(
'Api\Article'
)
->
getTableName
(),
'table_id'
=>
$articleId
,
'people_number'
=>
$peopleNumber
,
'phone'
=>
$phone
,
'status'
=>
isset
(
$ordersResult
)
?
0
:
1
//这里是为了兼容免费报名,免费报名不生成订单
];
$result
=
D
(
'Api\MyApplyFor'
)
->
add
(
$myApplyData
);
if
(
$result
)
{
if
(
isset
(
$ordersResult
))
{
//生成订单再去修改,否则不修改
$orderUpd
=
D
(
'Api\Orders'
)
->
where
([
'orders_id'
=>
$myApplyData
[
'order_id'
]])
->
save
([
'table_id'
=>
$result
]);
if
(
!
$orderUpd
)
{
$myApplyModel
->
rollback
();
return
[
'status'
=>
0
,
'message'
=>
'订单关联失败!'
];
}
}
//报名后加入群逻辑
$group
=
$this
->
helper
(
'Im\ImGroup'
)
->
searchGroupExists
([
'im_group_id'
=>
$article
[
'im_group_id'
]]);
if
(
$article
[
'im_group_id'
]
>
0
&&
$group
)
{
$groupRes
=
$this
->
helper
(
'Im\ImGroupUserRelationship'
)
->
articleEnrollJoinGroup
(
$article
[
'im_group_id'
],
$user
[
'tenant_id'
],
$group
[
'im_group_name'
]);
if
(
!
$groupRes
)
{
$myApplyModel
->
rollback
();
return
[
'status'
=>
0
,
'message'
=>
'加入群组失败!'
];
}
}
$myApplyModel
->
commit
();
return
[
'status'
=>
1
,
'data'
=>
isset
(
$ordersResult
)
?
$ordersResult
[
'data'
]
:
(
object
)[]];
}
return
[
'status'
=>
0
,
'message'
=>
'报名失败!'
];
}
else
if
(
$article
[
'price'
]
>
0
)
{
$this
->
helper
(
'Api\Orders'
)
->
cancelOrderPay
(
$enrollResult
[
'order_id'
]);
//更新报名信息
$updateData
=
[
'order_id'
=>
$orderId
,
'people_number'
=>
$peopleNumber
,
'phone'
=>
$phone
];
$result
=
$this
->
updateEnrollInfo
(
$enrollResult
[
'my_apply_for_id'
],
$updateData
);
if
(
!
$result
)
{
return
[
'status'
=>
0
,
'message'
=>
'购买失败!'
];
}
$orderUpd
=
D
(
'Api\Orders'
)
->
where
([
'orders_id'
=>
$orderId
])
->
save
([
'table_id'
=>
$enrollResult
[
'my_apply_for_id'
]]);
if
(
!
$orderUpd
)
{
$myApplyModel
->
rollback
();
return
[
'status'
=>
0
,
'message'
=>
'订单关联失败!'
];
}
}
$myApplyModel
->
commit
();
return
[
'status'
=>
1
,
'data'
=>
isset
(
$ordersResult
)
?
$ordersResult
[
'data'
]
:
(
object
)[]];
}
/**
* @name 更新报名报中的订单ID
* @version 2017年5月10日
* @author ft
* @param int $enrollId
* @param array $updateData
* @param int $updateData[order_id] 订单ID
* @param int $updateData[people_number] 报名人数
* @param string $updateData[phone] 联系电话
* @return boolean
*/
public
function
updateEnrollInfo
(
$enrollId
,
$updateData
)
{
return
D
(
'Api\MyApplyFor'
)
->
where
([
'my_apply_for_id'
=>
$enrollId
])
->
save
(
$updateData
);
}
/**
* @name 活动报名-如果已有报名信息就更新或者删除报名
* @version 2017年6月23日
* @author zsc
* @param array $data
* @return boolean
*/
public
function
addEnroll
(
$data
)
{
// $where['tenant_id'] = $data['tenant_id'];
// $where['table_id'] = $data['table_id'];
// $where['table_name'] = $data['table_name'];
// $where['people_number'] = $data['people_number'];
// $where['phone'] = $data['phone'];
// $where['status'] = $data['status'];
$where
=
$data
;
$is_have
=
$this
->
getOne
(
$where
);
if
(
empty
(
$is_have
[
'data'
])){
$res
=
$this
->
addOne
(
$data
);
}
else
{
//return ['status' => 0, 'message' => '请不要重复报名','data'=>[]];
//先删除以前的报名后添加
$this
->
deleteDate
(
$where
);
$res
=
$this
->
addOne
(
$data
);
}
if
(
$res
[
'status'
]
==
0
){
return
$res
;
}
return
[
'status'
=>
1
,
'message'
=>
'报名记录添加成功'
,
'data'
=>
$res
[
'data'
]];
}
}
\ No newline at end of file
PHP/Application/Common/Helper/Pay/WeChatPayHelper.class-1.php
deleted
100755 → 0
浏览文件 @
4c110b33
<?php
namespace
Common\Helper\Pay
;
use
Common\Helper\BaseHelper
;
/**
* @name
* @author lcc
*
*/
class
WeChatPayHelper
extends
BaseHelper
{
/**
* @name 生成预支付订单
* @version 2017年4月18日
* @author lcc
* @param $data
* @return status
*/
public
function
unifiedorder
(
$pay_bill_id
){
if
(
!
is_numeric
(
$pay_bill_id
)
||
empty
(
$pay_bill_id
)){
return
array
(
'status'
=>
0
,
'message'
=>
'账单ID错误'
,
'data'
=>
$pay_bill_id
);
}
//根据账单ID查询订单信息
$pay_bill_model
=
D
(
'Pay\PayBill'
);
$where
[
'pay_bill_id'
]
=
$pay_bill_id
;
$where
[
'pay_status'
]
=
$pay_bill_model
::
PAY_NOT
;
$where
[
'pay_channel'
]
=
$pay_bill_model
::
CHANNEL_WX
;
$field
=
"pay_bill_id,product_name,document_number,pay_money"
;
$result_bill
=
$this
->
helper
(
'Pay\PayBill'
)
->
getOne
(
$where
,
$field
);
if
(
$result_bill
[
'status'
]
==
0
||
$result_bill
[
'data'
][
'pay_bill_id'
]
==
null
){
return
array
(
'status'
=>
0
,
'message'
=>
'账单不存在'
,
'data'
=>
$pay_bill_id
);
}
//组装数据准备请求微信接口生成预支付订单
$body
=
C
(
'WECHATPAY_CONFIG'
)[
'APPNAME'
]
.
"-"
.
$result_bill
[
'data'
][
'product_name'
];
$postArr
=
array
(
'appid'
=>
C
(
'WECHATPAY_CONFIG'
)[
'APPID'
],
'mch_id'
=>
C
(
'WECHATPAY_CONFIG'
)[
'MCHID'
],
'nonce_str'
=>
guid
(
32
),
'body'
=>
$body
,
'out_trade_no'
=>
$result_bill
[
'data'
][
'document_number'
],
'total_fee'
=>
$result_bill
[
'data'
][
'pay_money'
],
'spbill_create_ip'
=>
$_SERVER
[
'REMOTE_ADDR'
],
'notify_url'
=>
C
(
'WECHATPAY_CONFIG'
)[
'NOTIFYURL'
],
'trade_type'
=>
C
(
'WECHATPAY_CONFIG'
)[
'TRADETYPE'
]);
//签名
$sign
=
$this
->
makeSign
(
$postArr
);
$postArr
[
'sign'
]
=
$sign
;
//数组转为XML格式
$post_xml
=
$this
->
arrayToXml
(
$postArr
);
//发起预支付订单请求
$result
=
$this
->
postXmlCurl
(
$post_xml
,
"https://api.mch.weixin.qq.com/pay/unifiedorder"
);
if
(
$result
==
false
||
empty
(
$result
)){
return
array
(
'status'
=>
0
,
'message'
=>
'发起预支付请求失败'
,
'data'
=>
$result
);
}
//XML返回结果转为数组
$result_arr
=
$this
->
xmlToArray
(
$result
);
if
(
$result_arr
==
false
||
$result_arr
[
'return_code'
]
!=
'SUCCESS'
||
$result_arr
[
'result_code'
]
!=
'SUCCESS'
){
return
array
(
'status'
=>
0
,
'message'
=>
'预支付请求失败'
,
'data'
=>
$result_arr
);
}
//组装APP支付需要的参数
$data_app
=
array
(
'appid'
=>
C
(
'WECHATPAY_CONFIG'
)[
'APPID'
],
'partnerid'
=>
C
(
'WECHATPAY_CONFIG'
)[
'MCHID'
],
'noncestr'
=>
guid
(
32
),
'prepayid'
=>
$result_arr
[
'prepay_id'
],
'package'
=>
'Sign=WXPay'
,
'timestamp'
=>
(
string
)
NOW_TIME
);
//签名
$sign
=
$this
->
makeSign
(
$data_app
);
$data_app
[
'sign'
]
=
$sign
;
return
array
(
'status'
=>
1
,
'message'
=>
'成功'
,
'data'
=>
$data_app
);
}
/**
* @name 查询订单
* @version 2017年4月18日
* @author lcc
* @param $data
* @return status
*/
public
function
checkOrderHelper
(
$document_number
){
if
(
empty
(
$document_number
))
{
return
array
(
'status'
=>
0
,
'message'
=>
'订单号错误'
,
'data'
=>
[]);
}
$postArr
=
array
(
'appid'
=>
C
(
'WECHATPAY_CONFIG'
)[
'APPID'
],
'mch_id'
=>
C
(
'WECHATPAY_CONFIG'
)[
'MCHID'
],
'nonce_str'
=>
guid
(
32
),
'out_trade_no'
=>
$document_number
);
//签名
$sign
=
$this
->
makeSign
(
$postArr
);
$postArr
[
'sign'
]
=
$sign
;
//数组转为XML格式
$post_xml
=
$this
->
arrayToXml
(
$postArr
);
//发起预支付订单请求
$result
=
$this
->
postXmlCurl
(
$post_xml
,
"https://api.mch.weixin.qq.com/pay/orderquery"
);
if
(
$result
==
false
||
empty
(
$result
)){
return
array
(
'status'
=>
0
,
'message'
=>
'发起查询订单请求失败'
,
'data'
=>
$result
);
}
//XML返回结果转为数组
$result_arr
=
$this
->
xmlToArray
(
$result
);
if
(
$result_arr
==
false
||
$result_arr
[
'return_code'
]
!=
'SUCCESS'
||
$result_arr
[
'result_code'
]
!=
'SUCCESS'
){
return
array
(
'status'
=>
0
,
'message'
=>
'查询请求失败'
,
'data'
=>
$result_arr
);
}
return
array
(
'status'
=>
1
,
'message'
=>
'查询成功'
,
'data'
=>
$result_arr
);
}
/**
* @name 取消交易--APP支付
* @author lcc
*
*/
public
function
cancelThirdPayHelper
(
$document_number
){
if
(
empty
(
$document_number
))
{
return
array
(
'status'
=>
0
,
'message'
=>
'订单号错误'
,
'data'
=>
[]);
}
$postArr
=
array
(
'appid'
=>
C
(
'WECHATPAY_CONFIG'
)[
'APPID'
],
'mch_id'
=>
C
(
'WECHATPAY_CONFIG'
)[
'MCHID'
],
'nonce_str'
=>
guid
(
32
),
'out_trade_no'
=>
$document_number
);
//签名
$sign
=
$this
->
makeSign
(
$postArr
);
$postArr
[
'sign'
]
=
$sign
;
//数组转为XML格式
$post_xml
=
$this
->
arrayToXml
(
$postArr
);
//发起预支付订单请求
$result
=
$this
->
postXmlCurl
(
$post_xml
,
"https://api.mch.weixin.qq.com/pay/closeorder"
);
if
(
$result
==
false
||
empty
(
$result
)){
return
array
(
'status'
=>
0
,
'message'
=>
'发起查询订单请求失败'
,
'data'
=>
$result
);
}
//XML返回结果转为数组
$result_arr
=
$this
->
xmlToArray
(
$result
);
if
(
$result_arr
==
false
||
$result_arr
[
'return_code'
]
!=
'SUCCESS'
){
return
array
(
'status'
=>
0
,
'message'
=>
'查询请求失败'
,
'data'
=>
$result_arr
);
}
if
(
$result_arr
[
'err_code'
]
!=
''
&&
$result_arr
[
'err_code'
]
!=
'ORDERCLOSED'
){
return
array
(
'status'
=>
0
,
'message'
=>
'关闭订单失败,'
.
$result_arr
[
'err_code_des'
],
'data'
=>
$result_arr
);
}
return
array
(
'status'
=>
1
,
'message'
=>
'成功'
,
'data'
=>
$result_arr
);
}
/**
* 生成签名
* @return 签名,本函数不覆盖sign成员变量,如要设置签名需要调用SetSign方法赋值
*/
public
function
makeSign
(
$arr
)
{
//签名步骤一:按字典序排序参数
ksort
(
$arr
);
$string
=
$this
->
toUrlParams
(
$arr
);
//签名步骤二:在string后加入KEY
$string
=
$string
.
"&key="
.
C
(
'WECHATPAY_CONFIG'
)[
'KEY'
];
//签名步骤三:MD5加密
$string
=
md5
(
$string
);
//签名步骤四:所有字符转为大写
$result
=
strtoupper
(
$string
);
return
$result
;
}
/**
* 格式化参数格式化成url参数
*/
public
function
toUrlParams
(
$arr
)
{
$buff
=
""
;
foreach
(
$arr
as
$k
=>
$v
)
{
if
(
$k
!=
"sign"
&&
$v
!=
""
&&
!
is_array
(
$v
)){
$buff
.=
$k
.
"="
.
$v
.
"&"
;
}
}
$buff
=
trim
(
$buff
,
"&"
);
return
$buff
;
}
/**
* 发起post请求,请求参数为XML
*/
public
function
postXmlCurl
(
$xml
,
$url
,
$second
=
30
)
{
//初始化curl
$ch
=
curl_init
();
//设置超时
curl_setopt
(
$ch
,
CURLOPT_TIMEOUT
,
$second
);
//这里设置代理,如果有的话
//curl_setopt($ch,CURLOPT_PROXY, '8.8.8.8');
//curl_setopt($ch,CURLOPT_PROXYPORT, 8080);
curl_setopt
(
$ch
,
CURLOPT_URL
,
$url
);
curl_setopt
(
$ch
,
CURLOPT_SSL_VERIFYPEER
,
FALSE
);
curl_setopt
(
$ch
,
CURLOPT_SSL_VERIFYHOST
,
FALSE
);
//设置header
curl_setopt
(
$ch
,
CURLOPT_HEADER
,
FALSE
);
//要求结果为字符串且输出到屏幕上
curl_setopt
(
$ch
,
CURLOPT_RETURNTRANSFER
,
TRUE
);
//post提交方式
curl_setopt
(
$ch
,
CURLOPT_POST
,
TRUE
);
curl_setopt
(
$ch
,
CURLOPT_POSTFIELDS
,
$xml
);
//运行curl
$data
=
curl_exec
(
$ch
);
//返回结果
if
(
$data
)
{
curl_close
(
$ch
);
return
$data
;
}
else
{
$error
=
curl_errno
(
$ch
);
echo
"curl出错,错误码:
$error
"
.
"<br>"
;
echo
"<a href='http://curl.haxx.se/libcurl/c/libcurl-errors.html'>错误原因查询</a></br>"
;
curl_close
(
$ch
);
return
false
;
}
}
/**
* @name 数组格式转换为XML格式
* @param $arr
* @param int $dom
* @param int $item
* @return mixed
*/
function
arrayToXml
(
$arr
)
{
$xml
=
"<xml>"
;
foreach
(
$arr
as
$key
=>
$val
)
{
if
(
is_numeric
(
$val
))
{
$xml
.=
"<"
.
$key
.
">"
.
$val
.
"</"
.
$key
.
">"
;
}
else
$xml
.=
"<"
.
$key
.
"><![CDATA["
.
$val
.
"]]></"
.
$key
.
">"
;
}
$xml
.=
"</xml>"
;
return
$xml
;
}
/**
* 作用:将xml转为array
*/
public
function
xmlToArray
(
$xml
)
{
//将XML转为array
$array_data
=
json_decode
(
json_encode
(
simplexml_load_string
(
$xml
,
'SimpleXMLElement'
,
LIBXML_NOCDATA
)),
true
);
return
$array_data
;
}
}
PHP/Application/Common/Logic/HouseKeeper/.WorkLogic.class.php.swp
deleted
100644 → 0
浏览文件 @
4c110b33
File deleted
PHP/Application/Common/Model/Api/MyapplyforModel.class-1.php
deleted
100755 → 0
浏览文件 @
4c110b33
<?php
/**
* Created by PhpStorm.
* User: king
* Date: 16/11/3
* Time: 下午3:26
*/
namespace
Common\Model\Api
;
use
Common\Model\BaseModel
;
class
MyApplyForModel
extends
BaseModel
{
protected
$connection
=
'DB_APP'
;
protected
$tableName
=
"my_apply_for"
;
}
\ No newline at end of file
PHP/Application/Common/Model/Api/MyappointmentModel.class-1.php
deleted
100755 → 0
浏览文件 @
4c110b33
<?php
namespace
Common\Model\Api
;
use
Common\Model\BaseModel
;
class
MyAppointmentModel
extends
BaseModel
{
protected
$connection
=
'DB_APP'
;
protected
$tableName
=
"my_appointment"
;
//订单过期时间2017-05-15 zsc 新增
const
EXPIRATION_TIME
=
10800
;
//订单三小时过期
const
STATUS_MAKE_NOW
=
0
;
const
STATUS_UNDERWAY
=
1
;
const
STATUS_PERFORM
=
2
;
const
STATUS_ABNORMAL_END
=
3
;
const
STATUS_CANCEL
=
4
;
/**
* @var 进行状态
*/
public
static
$_STATUS
=
[
self
::
STATUS_MAKE_NOW
=>
'待保洁'
,
//self::STATUS_UNDERWAY => '进行中',
self
::
STATUS_PERFORM
=>
'已完成'
,
self
::
STATUS_ABNORMAL_END
=>
'异常结束'
,
self
::
STATUS_CANCEL
=>
'已取消'
,
];
const
TENANT_COUNT
=
99
;
//租客每月可预约保洁数量 阿东说默认改成99 2018年01月10日15:37:25
const
APARTMENT_COUNT
=
8
;
//部门每日预约保洁数量
const
TYPE_CLEANING
=
1
;
//保洁预约
const
TYPE_REPAIR
=
2
;
//维修预约
const
REPAIR_TYPE_PLUMBING
=
1
;
const
REPAIR_TYPE_ELECTRIC
=
2
;
const
REPAIR_TYPE_LOCK
=
3
;
const
REPAIR_TYPE_FURNITURE
=
4
;
const
REPAIR_TYPE_CIRCUIT
=
5
;
const
REPAIR_TYPE_OTHER
=
6
;
/**
* @var 维修预约类型
*/
public
static
$_REPAIR_TYPE
=
[
self
::
REPAIR_TYPE_PLUMBING
=>
'水暖'
,
self
::
REPAIR_TYPE_ELECTRIC
=>
'电器'
,
self
::
REPAIR_TYPE_LOCK
=>
'门锁'
,
self
::
REPAIR_TYPE_FURNITURE
=>
'家具'
,
self
::
REPAIR_TYPE_CIRCUIT
=>
'电路'
,
self
::
REPAIR_TYPE_OTHER
=>
'其他'
,
];
const
APPOINTMENT_TIME_TYPE_ALL
=
0
;
const
APPOINTMENT_TIME_TYPE_AM
=
1
;
const
APPOINTMENT_TIME_TYPE_PM
=
2
;
/**
* @var 预约时段
*/
public
static
$_APPOINTMENT_TIME_TYPE
=
[
//self::APPOINTMENT_TIME_TYPE_ALL => '未区分时段',
self
::
APPOINTMENT_TIME_TYPE_AM
=>
'9:00 - 12:00'
,
self
::
APPOINTMENT_TIME_TYPE_PM
=>
'13:00 - 18:00'
,
];
/**
* @name 预约维修状态
* @var array
*/
public
static
$_APPOINTMENT_REPAIR_STATUS
=
[
self
::
STATUS_MAKE_NOW
=>
'待维修'
,
self
::
STATUS_PERFORM
=>
'已完成'
,
self
::
STATUS_ABNORMAL_END
=>
'异常结束'
,
self
::
STATUS_CANCEL
=>
'已取消'
,
];
/**
* @name 预约保洁维修状态
* @var array
*/
public
static
$_APPOINTMENT_CLEANING_STATUS
=
[
self
::
STATUS_MAKE_NOW
=>
'待保洁'
,
self
::
STATUS_PERFORM
=>
'已完成'
,
self
::
STATUS_ABNORMAL_END
=>
'异常结束'
,
self
::
STATUS_CANCEL
=>
'已取消'
,
];
}
\ No newline at end of file
PHP/Application/Open/View/default/Apiview/activityPay-1.html
deleted
100755 → 0
浏览文件 @
4c110b33
<html>
<head>
<title></title>
<meta
charset=
"UTF-8"
>
<link
href=
"__CDN_WEIXIN__/client/css/mui.css"
rel=
"stylesheet"
/>
<link
href=
"__CDN_WEIXIN__/client/css/weui.css"
rel=
"stylesheet"
/>
<meta
content=
'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no'
name=
'viewport'
>
</head>
<body>
<script
src=
"__CDN_WEIXIN__client/js/mui.min.js"
></script>
<script
type=
"text/javascript"
src=
"__CDN_WEIXIN__client/js/public/config.js"
></script>
<script
type=
"text/javascript"
src=
"__CDN_WEIXIN__client/js/showHTML.js"
></script>
</body>
</html>
\ No newline at end of file
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论