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 行增加
和
354 行删除
+0
-354
MyapplyforHelper.class-1.php
...pplication/Common/Helper/Api/MyapplyforHelper.class-1.php
+0
-0
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/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
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论