Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
纵之格
ShopXO
提交
e7e0352a
ShopXO
项目概览
纵之格
/
ShopXO
通知
394
Star
16
Fork
11
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
ShopXO
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
e7e0352a
编写于
8月 17, 2020
作者:
D
devil
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
支付优化
上级
1bb2ad1c
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
0 addition
and
767 deletion
+0
-767
extend/payment/Ipay88.php
extend/payment/Ipay88.php
+0
-245
extend/payment/MafubaoAlipay.php
extend/payment/MafubaoAlipay.php
+0
-261
extend/payment/MafubaoWeixin.php
extend/payment/MafubaoWeixin.php
+0
-261
未找到文件。
extend/payment/Ipay88.php
已删除
100644 → 0
浏览文件 @
1bb2ad1c
<?php
// +----------------------------------------------------------------------
// | ShopXO 国内领先企业级B2C免费开源电商系统
// +----------------------------------------------------------------------
// | Copyright (c) 2011~2019 http://shopxo.net All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: Devil
// +----------------------------------------------------------------------
namespace
payment
;
/**
* iPay88
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2020-06-26
* @desc description
*/
class
Ipay88
{
// 插件配置参数
private
$config
;
/**
* 构造方法
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-09-17
* @desc description
* @param [array] $params [输入参数(支付配置参数)]
*/
public
function
__construct
(
$params
=
[])
{
$this
->
config
=
$params
;
}
/**
* 配置信息
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2020-06-26
* @desc description
*/
public
function
Config
()
{
// 基础信息
$base
=
[
'name'
=>
'iPay88'
,
// 插件名称
'version'
=>
'1.0.0'
,
// 插件版本
'apply_version'
=>
'不限'
,
// 适用系统版本描述
'apply_terminal'
=>
[
'pc'
,
'h5'
],
// 适用终端 默认全部
'desc'
=>
'适用PC+H5,马来西亚用户量最大的在线支付服务商,可以处理多达26种货币,包括MYR,AUD,EUR,SGD,USD,THB,RMB。<a href="https://www.ipay88.com/" target="_blank">立即申请</a>'
,
// 插件描述(支持html)
'author'
=>
'Devil'
,
// 开发者
'author_url'
=>
'http://shopxo.net/'
,
// 开发者主页
];
// 配置信息
$element
=
[
[
'element'
=>
'input'
,
'type'
=>
'text'
,
'default'
=>
''
,
'name'
=>
'account'
,
'placeholder'
=>
'账户'
,
'title'
=>
'账户'
,
'is_required'
=>
0
,
'message'
=>
'请填写账户account'
,
],
[
'element'
=>
'input'
,
'type'
=>
'text'
,
'default'
=>
''
,
'name'
=>
'key'
,
'placeholder'
=>
'密钥key'
,
'title'
=>
'密钥key'
,
'is_required'
=>
0
,
'message'
=>
'请填写密钥key'
,
],
];
return
[
'base'
=>
$base
,
'element'
=>
$element
,
];
}
/**
* 支付入口
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2020-06-26
* @desc description
* @param [array] $params [输入参数]
*/
public
function
Pay
(
$params
=
[])
{
// 参数
if
(
empty
(
$params
))
{
return
DataReturn
(
'参数不能为空'
,
-
1
);
}
// 配置信息
if
(
empty
(
$this
->
config
))
{
return
DataReturn
(
'支付缺少配置'
,
-
1
);
}
// 支付参数
$data_username
=
$params
[
'user'
][
'user_name_view'
];
$data_useremail
=
$params
[
'user'
][
'email'
];
$data_usercontact
=
$params
[
'user'
][
'mobile'
];
$data_vid
=
trim
(
$this
->
config
[
'account'
]);
$data_orderid
=
$params
[
'order_no'
];
$data_vamount
=
$params
[
'total_price'
];
$data_vmoneytype
=
'MYR'
;
$data_vpaykey
=
trim
(
$this
->
config
[
'key'
]);
$data_response_url
=
$params
[
'call_back_url'
];
$data_backend_url
=
$params
[
'notify_url'
];
$data_remark
=
$params
[
'order_id'
];
$ipay_signature
=
''
;
$hash_amount
=
str_replace
([
','
,
'.'
],
''
,
$data_vamount
);
$str
=
sha1
(
$data_vpaykey
.
$data_vid
.
$data_orderid
.
$hash_amount
.
$data_vmoneytype
);
for
(
$i
=
0
;
$i
<
strlen
(
$str
);
$i
=
$i
+
2
)
{
$ipay_signature
.
=
chr
(
hexdec
(
substr
(
$str
,
$i
,
2
)));
}
$ipay_signature
=
base64_encode
(
$ipay_signature
);
$html
=
"<form id='ipay88submit' name='ipay88submit' style='text-align:center;' method=post action='https://www.mobile88.com/epayment/entry.asp'>"
;
$html
.
=
"<input type='hidden' name='MerchantCode' value='"
.
$data_vid
.
"'>"
;
$html
.
=
"<input type='hidden' name='PaymentId' value=''>"
;
$html
.
=
"<input type='hidden' name='RefNo' value='"
.
$data_orderid
.
"'>"
;
$html
.
=
"<input type='hidden' name='Amount' value='"
.
$data_vamount
.
"'>"
;
$html
.
=
"<input type='hidden' name='Currency' value='"
.
$data_vmoneytype
.
"'>"
;
$html
.
=
"<input type='hidden' name='ProdDesc' value='"
.
$data_orderid
.
"'>"
;
$html
.
=
"<input type='hidden' name='UserName' value='"
.
$data_username
.
"'>"
;
$html
.
=
"<input type='hidden' name='UserEmail' value='"
.
$data_useremail
.
"'>"
;
$html
.
=
"<input type='hidden' name='UserContact' value='"
.
$data_usercontact
.
"'>"
;
$html
.
=
"<input type='hidden' name='Remark' value='"
.
$data_remark
.
"'>"
;
$html
.
=
"<input type='hidden' name='Lang' value='UTF-8'>"
;
$html
.
=
"<input type='hidden' name='ResponseURL' value='"
.
$data_response_url
.
"'>"
;
$html
.
=
"<input type='hidden' name='BackendURL' value='"
.
$data_backend_url
.
"'>"
;
$html
.
=
"<input type='hidden' name='Signature' value='"
.
$ipay_signature
.
"'>"
;
$html
.
=
"<input type='submit' value='Pay Now via IPAY88'></form>"
;
//submit按钮控件请不要含有name属性
$html
.
=
"<script>document.forms['ipay88submit'].submit();</script>"
;
die
(
$html
);
}
/**
* 支付回调处理
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2020-06-26
* @desc description
* @param [array] $params [输入参数]
*/
public
function
Respond
(
$params
=
[])
{
if
(
empty
(
$this
->
config
))
{
return
DataReturn
(
'配置有误'
,
-
1
);
}
if
(
empty
(
$params
[
'RefNo'
]))
{
return
DataReturn
(
'支付失败'
,
-
1
);
}
if
(
empty
(
$params
[
'Signature'
]))
{
return
DataReturn
(
'签名为空'
,
-
1
);
}
// 支付参数
$mer_code
=
$params
[
'MerchantCode'
];
$payment_id
=
$params
[
'PaymentId'
];
$ref_no
=
$params
[
'RefNo'
];
$amount
=
$params
[
'Amount'
];
$currency
=
$params
[
'Currency'
];
$remark
=
$params
[
'Remark'
];
$trans_id
=
$params
[
'TransId'
];
$auth_code
=
$params
[
'AuthCode'
];
$istatus
=
$params
[
'Status'
];
$err_desc
=
$params
[
'ErrDesc'
];
$sign
=
$params
[
'Signature'
];
// 签名
$ipay_signature
=
''
;
$hash_amount
=
str_replace
([
','
,
'.'
],
''
,
$amount
);
$str
=
sha1
(
$this
->
config
[
'key'
]
.
$mer_code
.
$payment_id
.
$ref_no
.
$hash_amount
.
$currency
.
$istatus
);
for
(
$i
=
0
;
$i
<
strlen
(
$str
);
$i
=
$i
+
2
)
{
$ipay_signature
.
=
chr
(
hexdec
(
substr
(
$str
,
$i
,
2
)));
}
$ipay_signature
=
base64_encode
(
$ipay_signature
);
if
(
$sign
==
$ipay_signature
&&
$istatus
==
'1'
)
{
return
DataReturn
(
'支付成功'
,
0
,
$this
->
ReturnData
(
$params
));
}
return
DataReturn
(
'签名错误'
,
-
1
);
}
/**
* 返回数据统一格式
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2020-06-26
* @desc description
* @param [array] $data [返回数据]
*/
private
function
ReturnData
(
$data
)
{
// 返回数据固定基础参数
$data
[
'trade_no'
]
=
isset
(
$data
[
'MerchantCode'
])
?
$data
[
'RefNo'
]
:
''
;
// 支付平台 - 订单号
$data
[
'buyer_user'
]
=
isset
(
$data
[
'TransId'
])
?
$data
[
'TransId'
]
:
''
;
// 支付平台 - 用户
$data
[
'out_trade_no'
]
=
isset
(
$data
[
'RefNo'
])
?
$data
[
'RefNo'
]
:
''
;
// 本系统发起支付的 - 订单号
$data
[
'subject'
]
=
isset
(
$data
[
'Remark'
])
?
$data
[
'Remark'
]
:
''
;
// 本系统发起支付的 - 商品名称
$data
[
'pay_price'
]
=
isset
(
$data
[
'Amount'
])
?
$data
[
'Amount'
]
:
0
;
// 本系统发起支付的 - 总价
return
$data
;
}
/**
* 自定义成功返回内容
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2020-07-01
* @desc description
*/
public
function
SuccessReturn
()
{
return
'RECEIVEOK'
;
}
}
?>
\ No newline at end of file
extend/payment/MafubaoAlipay.php
已删除
100644 → 0
浏览文件 @
1bb2ad1c
<?php
// +----------------------------------------------------------------------
// | ShopXO 国内领先企业级B2C免费开源电商系统
// +----------------------------------------------------------------------
// | Copyright (c) 2011~2019 http://shopxo.net All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: Devil
// +----------------------------------------------------------------------
namespace
payment
;
/**
* 码付宝-支付宝
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-09-19
* @desc description
*/
class
MafubaoAlipay
{
// 插件配置参数
private
$config
;
/**
* 构造方法
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-09-17
* @desc description
* @param [array] $params [输入参数(支付配置参数)]
*/
public
function
__construct
(
$params
=
[])
{
$this
->
config
=
$params
;
}
/**
* 配置信息
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-09-19
* @desc description
*/
public
function
Config
()
{
// 基础信息
$base
=
[
'name'
=>
'码付宝-支付宝'
,
// 插件名称
'version'
=>
'1.0.0'
,
// 插件版本
'apply_version'
=>
'不限'
,
// 适用系统版本描述
'apply_terminal'
=>
[
'pc'
,
'h5'
],
// 适用终端 默认全部 ['pc', 'h5', 'ios', 'android', 'alipay', 'weixin', 'baidu']
'desc'
=>
'适用PC+H5,即时到帐支付方式,个人免签实现支付后立即通知。 <a href="http://pay.shopxo.net/" target="_blank">立即申请</a>'
,
// 插件描述(支持html)
'author'
=>
'Devil'
,
// 开发者
'author_url'
=>
'http://shopxo.net/'
,
// 开发者主页
];
// 配置信息
$element
=
[
[
'element'
=>
'input'
,
'type'
=>
'text'
,
'default'
=>
''
,
'name'
=>
'appid'
,
'placeholder'
=>
'appid'
,
'title'
=>
'appid'
,
'is_required'
=>
0
,
'message'
=>
'请填写appid'
,
],
[
'element'
=>
'input'
,
'type'
=>
'text'
,
'default'
=>
''
,
'name'
=>
'appsecret'
,
'placeholder'
=>
'appsecret'
,
'title'
=>
'appsecret'
,
'is_required'
=>
0
,
'message'
=>
'请填写通信密钥appsecret'
,
],
];
return
[
'base'
=>
$base
,
'element'
=>
$element
,
];
}
/**
* 支付入口
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-09-19
* @desc description
* @param [array] $params [输入参数]
*/
public
function
Pay
(
$params
=
[])
{
// 参数
if
(
empty
(
$params
))
{
return
DataReturn
(
'参数不能为空'
,
-
1
);
}
// 配置信息
if
(
empty
(
$this
->
config
))
{
return
DataReturn
(
'支付缺少配置'
,
-
1
);
}
// 处理支付
$parameter
=
array
(
'appid'
=>
$this
->
config
[
'appid'
],
'channel'
=>
'alipay'
,
'notify_url'
=>
$params
[
'notify_url'
],
'redirect_url'
=>
$params
[
'call_back_url'
],
'trade_type'
=>
'sync'
,
// 业务参数
'goodsname'
=>
$params
[
'name'
],
'out_trade_no'
=>
$params
[
'order_no'
],
'money'
=>
$params
[
'total_price'
],
);
$param
=
$this
->
GetParamSign
(
$parameter
);
$url
=
'http://payapi.shopxo.net/api/pay/mchCreateOrder/?'
.
$param
[
'urls'
]
.
'&sign='
.
md5
(
$param
[
'sign'
]
.
'&key='
.
$this
->
config
[
'appsecret'
]);
return
DataReturn
(
'处理成功'
,
0
,
$url
);
}
/**
* [GetParamSign 签名生成]
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2018-09-28T00:28:07+0800
* @param [array] $params [输入参数]
*/
private
function
GetParamSign
(
$params
=
[])
{
$sign
=
''
;
$urls
=
''
;
ksort
(
$params
);
foreach
(
$params
AS
$key
=>
$val
)
{
// 跳过这些不参数签名
if
(
$key
==
'sign'
||
$val
===
''
||
$val
===
null
)
{
continue
;
}
//后面追加&拼接URL
if
(
$sign
!=
''
)
{
$sign
.
=
"&"
;
$urls
.
=
"&"
;
}
$sign
.
=
"
$key
=
$val
"
;
//拼接为url参数形式
$urls
.
=
"
$key
="
.
urlencode
(
$val
);
//拼接为url参数形式并URL编码参数值
}
$result
=
array
(
'urls'
=>
$urls
,
'sign'
=>
$sign
,
);
return
$result
;
}
/**
* 支付回调处理
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-09-19
* @desc description
* @param [array] $params [输入参数]
*/
public
function
Respond
(
$params
=
[])
{
if
(
empty
(
$this
->
config
))
{
return
DataReturn
(
'配置有误'
,
-
1
);
}
if
(
empty
(
$params
[
'trade_no'
]))
{
return
DataReturn
(
'支付失败'
,
-
1
);
}
if
(
empty
(
$params
[
'sign'
]))
{
return
DataReturn
(
'签名为空'
,
-
1
);
}
// 签名验证
$param
=
$this
->
GetParamSign
(
$params
);
if
(
md5
(
$param
[
'sign'
]
.
'&key='
.
$this
->
config
[
'appsecret'
])
!=
$params
[
'sign'
])
{
return
DataReturn
(
'签名错误'
,
-
1
);
}
// 支付状态
if
(
isset
(
$params
[
'status'
]))
{
switch
(
$params
[
'status'
])
{
// 未支付
case
0
:
$ret
=
DataReturn
(
'未支付'
,
-
100
);
break
;
// 成功
case
1
:
$ret
=
DataReturn
(
'支付成功'
,
0
,
$this
->
ReturnData
(
$params
));
break
;
// 支付超时
case
2
:
case
3
:
case
6
:
$ret
=
DataReturn
(
'支付超时'
,
-
1001
);
break
;
// 支付成功,通知失败
case
4
:
case
5
:
$ret
=
DataReturn
(
'支付成功,通知失败'
,
-
1002
);
break
;
// 默认
default
:
$ret
=
DataReturn
(
'支付异常错误'
,
-
1003
);
}
}
else
{
$ret
=
DataReturn
(
'支付异常错误'
,
-
1004
);
}
return
$ret
;
}
/**
* [ReturnData 返回数据统一格式]
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2018-10-06T16:54:24+0800
* @param [array] $data [返回数据]
*/
private
function
ReturnData
(
$data
)
{
// 返回数据固定基础参数
$data
[
'trade_no'
]
=
isset
(
$data
[
'trade_no'
])
?
$data
[
'trade_no'
]
:
''
;
// 支付平台 - 订单号
$data
[
'buyer_user'
]
=
isset
(
$data
[
'mid'
])
?
$data
[
'mid'
]
:
''
;
// 支付平台 - 用户
$data
[
'out_trade_no'
]
=
$data
[
'out_trade_no'
];
// 本系统发起支付的 - 订单号
$data
[
'subject'
]
=
isset
(
$data
[
'goodsname'
])
?
$data
[
'goodsname'
]
:
''
;
// 本系统发起支付的 - 商品名称
$data
[
'pay_price'
]
=
$data
[
'money_real'
];
// 本系统发起支付的 - 总价
return
$data
;
}
}
?>
\ No newline at end of file
extend/payment/MafubaoWeixin.php
已删除
100644 → 0
浏览文件 @
1bb2ad1c
<?php
// +----------------------------------------------------------------------
// | ShopXO 国内领先企业级B2C免费开源电商系统
// +----------------------------------------------------------------------
// | Copyright (c) 2011~2019 http://shopxo.net All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: Devil
// +----------------------------------------------------------------------
namespace
payment
;
/**
* 码付宝-微信
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-09-19
* @desc description
*/
class
MafubaoWeixin
{
// 插件配置参数
private
$config
;
/**
* 构造方法
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-09-17
* @desc description
* @param [array] $params [输入参数(支付配置参数)]
*/
public
function
__construct
(
$params
=
[])
{
$this
->
config
=
$params
;
}
/**
* 配置信息
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-09-19
* @desc description
*/
public
function
Config
()
{
// 基础信息
$base
=
[
'name'
=>
'码付宝-微信'
,
// 插件名称
'version'
=>
'1.0.0'
,
// 插件版本
'apply_version'
=>
'不限'
,
// 适用系统版本描述
'apply_terminal'
=>
[
'pc'
,
'h5'
],
// 适用终端 默认全部 ['pc', 'h5', 'ios', 'android', 'alipay', 'weixin', 'baidu']
'desc'
=>
'适用PC+H5,即时到帐支付方式,个人免签实现支付后立即通知。 <a href="http://pay.shopxo.net/" target="_blank">立即申请</a>'
,
// 插件描述(支持html)
'author'
=>
'Devil'
,
// 开发者
'author_url'
=>
'http://shopxo.net/'
,
// 开发者主页
];
// 配置信息
$element
=
[
[
'element'
=>
'input'
,
'type'
=>
'text'
,
'default'
=>
''
,
'name'
=>
'appid'
,
'placeholder'
=>
'appid'
,
'title'
=>
'appid'
,
'is_required'
=>
0
,
'message'
=>
'请填写appid'
,
],
[
'element'
=>
'input'
,
'type'
=>
'text'
,
'default'
=>
''
,
'name'
=>
'appsecret'
,
'placeholder'
=>
'appsecret'
,
'title'
=>
'appsecret'
,
'is_required'
=>
0
,
'message'
=>
'请填写通信密钥appsecret'
,
],
];
return
[
'base'
=>
$base
,
'element'
=>
$element
,
];
}
/**
* 支付入口
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-09-19
* @desc description
* @param [array] $params [输入参数]
*/
public
function
Pay
(
$params
=
[])
{
// 参数
if
(
empty
(
$params
))
{
return
DataReturn
(
'参数不能为空'
,
-
1
);
}
// 配置信息
if
(
empty
(
$this
->
config
))
{
return
DataReturn
(
'支付缺少配置'
,
-
1
);
}
// 处理支付
$parameter
=
array
(
'appid'
=>
$this
->
config
[
'appid'
],
'channel'
=>
'wechat'
,
'notify_url'
=>
$params
[
'notify_url'
],
'redirect_url'
=>
$params
[
'call_back_url'
],
'trade_type'
=>
'sync'
,
// 业务参数
'goodsname'
=>
$params
[
'name'
],
'out_trade_no'
=>
$params
[
'order_no'
],
'money'
=>
$params
[
'total_price'
],
);
$param
=
$this
->
GetParamSign
(
$parameter
);
$url
=
'http://payapi.shopxo.net/api/pay/mchCreateOrder/?'
.
$param
[
'urls'
]
.
'&sign='
.
md5
(
$param
[
'sign'
]
.
'&key='
.
$this
->
config
[
'appsecret'
]);
return
DataReturn
(
'处理成功'
,
0
,
$url
);
}
/**
* [GetParamSign 签名生成]
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2018-09-28T00:28:07+0800
* @param [array] $params [输入参数]
*/
private
function
GetParamSign
(
$params
=
[])
{
$sign
=
''
;
$urls
=
''
;
ksort
(
$params
);
foreach
(
$params
AS
$key
=>
$val
)
{
// 跳过这些不参数签名
if
(
$key
==
'sign'
||
$val
===
''
||
$val
===
null
)
{
continue
;
}
//后面追加&拼接URL
if
(
$sign
!=
''
)
{
$sign
.
=
"&"
;
$urls
.
=
"&"
;
}
$sign
.
=
"
$key
=
$val
"
;
//拼接为url参数形式
$urls
.
=
"
$key
="
.
urlencode
(
$val
);
//拼接为url参数形式并URL编码参数值
}
$result
=
array
(
'urls'
=>
$urls
,
'sign'
=>
$sign
,
);
return
$result
;
}
/**
* 支付回调处理
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-09-19
* @desc description
* @param [array] $params [输入参数]
*/
public
function
Respond
(
$params
=
[])
{
if
(
empty
(
$this
->
config
))
{
return
DataReturn
(
'配置有误'
,
-
1
);
}
if
(
empty
(
$params
[
'trade_no'
]))
{
return
DataReturn
(
'支付失败'
,
-
1
);
}
if
(
empty
(
$params
[
'sign'
]))
{
return
DataReturn
(
'签名为空'
,
-
1
);
}
// 签名验证
$param
=
$this
->
GetParamSign
(
$params
);
if
(
md5
(
$param
[
'sign'
]
.
'&key='
.
$this
->
config
[
'appsecret'
])
!=
$params
[
'sign'
])
{
return
DataReturn
(
'签名错误'
,
-
1
);
}
// 支付状态
if
(
isset
(
$params
[
'status'
]))
{
switch
(
$params
[
'status'
])
{
// 未支付
case
0
:
$ret
=
DataReturn
(
'未支付'
,
-
100
);
break
;
// 成功
case
1
:
$ret
=
DataReturn
(
'支付成功'
,
0
,
$this
->
ReturnData
(
$params
));
break
;
// 支付超时
case
2
:
case
3
:
case
6
:
$ret
=
DataReturn
(
'支付超时'
,
-
1001
);
break
;
// 支付成功,通知失败
case
4
:
case
5
:
$ret
=
DataReturn
(
'支付成功,通知失败'
,
-
1002
);
break
;
// 默认
default
:
$ret
=
DataReturn
(
'支付异常错误'
,
-
1003
);
}
}
else
{
$ret
=
DataReturn
(
'支付异常错误'
,
-
1004
);
}
return
$ret
;
}
/**
* [ReturnData 返回数据统一格式]
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2018-10-06T16:54:24+0800
* @param [array] $data [返回数据]
*/
private
function
ReturnData
(
$data
)
{
// 返回数据固定基础参数
$data
[
'trade_no'
]
=
isset
(
$data
[
'trade_no'
])
?
$data
[
'trade_no'
]
:
''
;
// 支付平台 - 订单号
$data
[
'buyer_user'
]
=
isset
(
$data
[
'mid'
])
?
$data
[
'mid'
]
:
''
;
// 支付平台 - 用户
$data
[
'out_trade_no'
]
=
$data
[
'out_trade_no'
];
// 本系统发起支付的 - 订单号
$data
[
'subject'
]
=
isset
(
$data
[
'goodsname'
])
?
$data
[
'goodsname'
]
:
''
;
// 本系统发起支付的 - 商品名称
$data
[
'pay_price'
]
=
$data
[
'money_real'
];
// 本系统发起支付的 - 总价
return
$data
;
}
}
?>
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录