<?php
/**
* 2015-06-29 修复签名问题
**/
require_once "WxPay.Exception.php";
/**
*
* 数据对象基础类,该类中定义数据类最基本的行为,包括:
* 计算/设置/获取签名、输出xml格式的参数、从xml读取数据对象等
* @author widyhu
*
*/
class WxPayDataBase
{
protected $values = array();
/**
* 设置签名,详见签名生成算法
* @param string $value
**/
public function SetSign()
{
$sign = $this->MakeSign();
$this->values['sign'] = $sign;
return $sign;
}
/**
* 获取签名,详见签名生成算法的值
* @return 值
**/
public function GetSign()
{
return $this->values['sign'];
}
/**
* 判断签名,详见签名生成算法是否存在
* @return true 或 false
**/
public function IsSignSet()
{
return array_key_exists('sign', $this->values);
}
/**
* 输出xml字符
* @throws WxPayException
**/
public function ToXml()
{
if(!is_array($this->values)
|| count($this->values) <= 0)
{
throw new WxPayException("数组数据异常!");
}
$xml = "<xml>";
foreach ($this->values as $key=>$val)
{
if (is_numeric($val)){
$xml.="<".$key.">".$val."</".$key.">";
}else{
$xml.="<".$key."><![CDATA[".$val."]]></".$key.">";
}
}
$xml.="</xml>";
return $xml;
}
/**
* 将xml转为array
* @param string $xml
* @throws WxPayException
*/
public function FromXml($xml)
{
if(!$xml){
throw new WxPayException("xml数据异常!");
}
//将XML转为array
//禁止引用外部xml实体
libxml_disable_entity_loader(true);
$this->values = json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
return $this->values;
}
/**
* 格式化参数格式化成url参数
*/
public function ToUrlParams()
{
$buff = "";
foreach ($this->values as $k => $v)
{
if($k != "sign" && $v != "" && !is_array($v)){
$buff .= $k . "=" . $v . "&";
}
}
$buff = trim($buff, "&");
return $buff;
}
/**
* 生成签名
* @return 签名,本函数不覆盖sign成员变量,如要设置签名需要调用SetSign方法赋值
*/
public function MakeSign()
{
//签名步骤一:按字典序排序参数
ksort($this->values);
$string = $this->ToUrlParams();
//签名步骤二:在string后加入KEY
$string = $string . "&key=".WxPayConfig::KEY;
//签名步骤三:MD5加密
$string = md5($string);
//签名步骤四:所有字符转为大写
$result = strtoupper($string);
return $result;
}
/**
* 获取设置的值
*/
public function GetValues()
{
return $this->values;
}
}
/**
*
* 接口调用结果类
* @author widyhu
*
*/
class WxPayResults extends WxPayDataBase
{
/**
*
* 检测签名
*/
public function CheckSign()
{
//fix异常
if(!$this->IsSignSet()){
throw new WxPayException("签名错误!");
}
$sign = $this->MakeSign();
if($this->GetSign() == $sign){
return true;
}
throw new WxPayException("签名错误!");
}
/**
*
* 使用数组初始化
* @param array $array
*/
public function FromArray($array)
{
$this->values = $array;
}
/**
*
* 使用数组初始化对象
* @param array $array
* @param 是否检测签名 $noCheckSign
*/
public static function InitFromArray($array, $noCheckSign = false)
{
$obj = new self();
$obj->FromArray($array);
if($noCheckSign == false){
$obj->CheckSign();
}
return $obj;
}
/**
*
* 设置参数
* @param string $key
* @param string $value
*/
public function SetData($key, $value)
{
$this->values[$key] = $value;
}
/**
* 将xml转为array
* @param string $xml
* @throws WxPayException
*/
public static function Init($xml)
{
$obj = new self();
$obj->FromXml($xml);
//fix bug 2015-06-29
if($obj->values['return_code'] != 'SUCCESS'){
return $obj->GetValues();
}
$obj->CheckSign();
return $obj->GetValues();
}
/**
* 将xml转为array(无签名校验)
* @param string $xml
* @throws WxPayException
*/
public static function Init2($xml)
{
$obj = new self();
$obj->FromXml($xml);
if($obj->values['return_code'] != 'SUCCESS'){
return $obj->GetValues();
}
return $obj->GetValues();
}
}
/**
*
* 回调基础类
* @author widyhu
*
*/
class WxPayNotifyReply extends WxPayDataBase
{
/**
*
* 设置错误码 FAIL 或者 SUCCESS
* @param string
*/
public function SetReturn_code($return_code)
{
$this->values['return_code'] = $return_code;
}
/**
*
* 获取错误码 FAIL 或者 SUCCESS
* @return string $return_code
*/
public function GetReturn_code()
{
return $this->values['return_code'];
}
/**
*
* 设置错误信息
* @param string $return_code
*/
public function SetReturn_msg($return_msg)
{
$this->values['return_msg'] = $return_msg;
}
/**
*
* 获取错误信息
* @return string
*/
public function GetReturn_msg()
{
return $this->values['return_msg'];
}
/**
*
* 设置返回参数
* @param string $key
* @param string $value
*/
public function SetData($key, $value)
{
$this->values[$key] = $value;
}
}
/**
*
* 统一下单输入对象
* @author widyhu
*
*/
class WxPayUnifiedOrder extends WxPayDataBase
{
/**
* 设置微信分配的公众账号ID
* @param string $value
**/
public function SetAppid($value)
{
$this->values['appid'] = $value;
}
/**
* 获取微信分配的公众账号ID的值
* @return 值
**/
public function GetAppid()
{
return $this->values['appid'];
}
/**
* 判断微信分配的公众账号ID是否存在
* @return true 或 false
**/
public function IsAppidSet()
{
return array_key_exists('appid', $this->values);
}
/**
* 设置微信支付分配的商户号
* @param string $value
**/
public function SetMch_id($value)
{
$this->values['mch_id'] = $value;
}
/**
* 获取微信支付分配的商户号的值
* @return 值
**/
public function GetMch_id()
{
return $this->values['mch_id'];
}
/**
* 判断微信支付分配的商户号是否存在
* @return true 或 false
**/
public function IsMch_idSet()
{
return array_key_exists('mch_id', $this->values);
}
/**
* 设置微信支付分配的终端设备号,商户自定义
* @param string $value
**/
public function SetDevice_info($value)
{
$this->values['device_info'] = $value;
}
/**
* 获取微信支付分配的终端设备号,商户自定义的值
* @return 值
**/
public function GetDevice_info()
{
return $this->values['device_info'];
}
/**
* 判断微信支付分配的终端设备号,商户自定义是否存在
* @return true 或 false
**/
public function IsDevice_infoSet()
{
return array_key_exists('device_info', $this->values);
}
/**
* 设置随机字符串,不长于32位。推荐随机数生成算法
* @param string $value
**/
public function SetNonce_str($value)
{
$this->values['nonce_str'] = $value;
}
/**
* 获取随机字符串,不长于32位。推荐随机数生成算法的值
* @return 值
**/
public function GetNonce_str()
{
return $this->values['nonce_str'];
}
/**
* 判断随机字符串,不长于32位。推荐随机数生成算法是否存在
* @return true 或 false
**/
public function IsNonce_strSet()
{
return array_key_exists('nonce_str', $this->values);
}
/**
* 设置商品或支付单简要描述
* @param string $value
**/
public function SetBod
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
最新易支付二次开发赞支付全新界面的一款第三方源码,可以对接支付宝微信这些官方支付,还可以使用码支付等等功能,上传一键安装,带有SDK文档,源码全开源,带有安装教程!欢迎下载体验! 说明: 1、全新界面UI 优化管理后台 2、模板可自行添加后台管理 3、易支付自定义地址可控制性 4、优化商户后台可控制性 5、新增商户后台推广返利系统 6、优化商户转账、排行榜BUG问题 7、推荐对接赞支付、银行直清通道 测试环境:PHP5.4+MysqL
资源推荐
资源详情
资源评论
收起资源包目录
最新赞支付系统全新界面源码+可以对接支付宝微信码支付等等+全开源一键安装 (290个子文件)
web.config 361B
aswl.min.css 331KB
app.min.css 215KB
vendor.css 134KB
fortawesome.css 50KB
layer.css 14KB
main.css 10KB
nucleo.css 9KB
wechat_pay.css 6KB
userPay.css 5KB
layer.css 5KB
dataTables.bootstrap4.min.css 5KB
buttons.bootstrap4.min.css 4KB
select.bootstrap4.min.css 4KB
fa-solid-900.eot 176KB
fa-brands-400.eot 116KB
fa-regular-400.eot 40KB
loading-0.gif 6KB
loading-2.gif 2KB
loading-1.gif 701B
index.html 19KB
404.html 5KB
index.html 5KB
403.html 4KB
readme.html 18B
favicon.ico 2KB
team-2.jpg 260KB
team-3.jpg 169KB
team-1.jpg 163KB
team-4.jpg 122KB
img-1-1000x600.jpg 117KB
profile.jpg 19KB
weixin-qrcode.1xf1oN.jpg 12KB
qqpay.jpg 6KB
weixin.jpg 3KB
alipay.jpg 2KB
app.min.js 334KB
notify.js 292KB
Chart.min.js 155KB
jquery-1.10.2.min.js 91KB
jquery.min.js 85KB
jquery.dataTables.min.js 80KB
bootstrap.bundle.min.js 69KB
aswl.min.js 26KB
buttons.flash.min.js 25KB
buttons.html5.min.js 24KB
layer.js 22KB
dataTables.buttons.min.js 18KB
jquery.scrollbar.min.js 12KB
dataTables.select.min.js 11KB
codepay_util.js 11KB
json3.min.js 8KB
jquery-scrollLock.min.js 4KB
respond.min.js 4KB
js.cookie.js 4KB
Chart.extension.js 3KB
jquery.lavalamp.min.js 3KB
layer.js 3KB
html5shiv.min.js 3KB
buttons.print.min.js 2KB
dataTables.bootstrap4.min.js 2KB
demo.min.js 2KB
buttons.bootstrap4.min.js 966B
mail.log 311B
Miopao 147B
WxPay.Data.php 73KB
AopClient.php 34KB
doc.php 22KB
WxPay.Api.php 22KB
reg.php 20KB
zhuan.php 20KB
userinfo.php 19KB
opyzf_install.php 16KB
alipay.php 16KB
head.php 15KB
function.php 15KB
AlipayTradeService.php 13KB
login.php 12KB
ajax.php 12KB
index.php 12KB
360webscan.php 12KB
ulist.php 11KB
submit.php 11KB
ajax2.php 10KB
smtp.class.php 10KB
webset.php 9KB
op_yzf.php 9KB
codepay_supper_order.php 9KB
index.php 9KB
head.php 9KB
codepay.php 8KB
findpwd.php 8KB
codepay_diy_order.php 8KB
plist.php 8KB
submit2.php 8KB
login.php 8KB
AlipayTradePayContentBuilder.php 8KB
AlipayTradePrecreateContentBuilder.php 7KB
transfer.php 7KB
class.geetestlib.php 7KB
共 290 条
- 1
- 2
- 3
资源评论
破碎的天堂鸟
- 粉丝: 8033
- 资源: 2178
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功