<?php
/**
* 2015-06-29 修复签名问题
**/
require_once "WxPay.Config.php";
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();
}
}
/**
*
* 回调基础类
* @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 SetBody($value)
{
$this->values['body'] = $value;
}
/**
* 获取商品或支付单简要描述的值
* @return 值
**/
public function GetBody()
{
return $this->values['body'];
}
/**
* 判断商品或支付单简要描述是否存在
* @return true 或 false
**/
public function IsBodySet()
{
return array_key_exists('body', $this->values);
}
/**
* 设置商品名称明细列表
* @param string $value
**/
public function SetDetail($value)
{
$this->values['detail'] = $value;
}
/**
* 获取商品名称明细列表的值
* @return 值
**/
public function GetDetail()
{
return $this->values['detail'];
}
/**
* 判断商品名称明细列表是否存�
没有合适的资源?快使用搜索试试~ 我知道了~
光影娱乐带后台微信小程序源码.rar
共165个文件
png:45个
wxss:23个
wxml:22个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 133 浏览量
2022-07-13
22:17:31
上传
评论
收藏 1.36MB RAR 举报
温馨提示
光影娱乐带后台微信小程序源码.rar
资源推荐
资源详情
资源评论
收起资源包目录
光影娱乐带后台微信小程序源码.rar (165个子文件)
1.gif 218KB
1(1).gif 218KB
post-3.jpg 163KB
train-3.jpg 88KB
post-3@text.jpg 83KB
train-2.jpg 64KB
3.jpg 44KB
3(1).jpg 44KB
post-1@text.jpg 42KB
post-5.jpg 42KB
post-2.jpg 38KB
2.jpg 37KB
2(1).jpg 37KB
post-1.jpg 35KB
post-4.jpg 33KB
train-4.jpg 32KB
post-2@text.jpg 29KB
train-1.jpg 23KB
data.js 8KB
setting.js 8KB
post-comment.js 7KB
util.js 4KB
post-detail.js 4KB
DBPost.js 4KB
movie.js 3KB
more-movie.js 2KB
movie-detail.js 2KB
download.js 1KB
wx-key.js 1KB
wx-pay.js 1KB
app.js 1KB
check.js 834B
device.js 795B
decrypted.js 780B
post.js 731B
scroll-view.js 632B
tpl-message.js 624B
login.js 557B
welcome.js 549B
app.json 2KB
welcome.json 83B
post.json 82B
movie.json 82B
setting.json 82B
more-movie.json 72B
post-detail.json 2B
post-comment.json 2B
movie-detail.json 2B
scroll-view.json 2B
wx-key.json 2B
decrypted.json 2B
wx-pay.json 2B
check.json 2B
tpl-message.json 2B
login.json 2B
download.json 2B
device.json 2B
LICENSE 11KB
LICENSE 11KB
WxPay.Data.php 64KB
WxPay.Api.php 20KB
WxPay.Config.php 2KB
WxPay.Notify.php 2KB
pkcs7Encoder.php 2KB
wxBizDataCrypt.php 2KB
wxPay.php 2KB
wxTPLMessage.php 1KB
http.php 1KB
wxLoginClass.php 1KB
wxCheckUserInfo.php 562B
wxDecryptUserInfo.php 544B
config.php 497B
errorCode.php 491B
wxLogin.php 262B
WxPay.Exception.php 178B
avatar-1.png 8KB
avatar-4.png 8KB
avatar-2.png 8KB
avatar-3.png 7KB
avatar-5.png 7KB
wx_app_music_start.png 3KB
wx_app_music_stop.png 3KB
wx_app_speak.png 2KB
wx_app_keyboard.png 2KB
wx_app_add.png 2KB
wx_app_setting@HL.png 2KB
wx_app_setting.png 2KB
wx_app_news@HL.png 1KB
wx_app_news.png 1KB
wx_app_camera.png 1KB
wx_app_exl.png 1KB
wx_app_movie@HL.png 1KB
wx_app_movie.png 1KB
wx_app_shake.png 1KB
wx_app_compass.png 965B
wx_app_location.png 914B
wx_app_upload_image.png 899B
wx_app_xx.png 811B
wx_app_like.png 771B
wx_app_collect.png 737B
共 165 条
- 1
- 2
资源评论
HappyGirl快乐女孩
- 粉丝: 1w+
- 资源: 4159
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功