<?php
/**
*
* www.wzmiao.com
*
*/
if(!defined('IN_DISCUZ')) {
exit('Access Denied');
}
/**
* 2015-06-29 修复签名问题
**/
// include_once DISCUZ_ROOT."./source/plugin/zhanmishu_wepay/lib/WxPay.Config.php";
include_once DISCUZ_ROOT."./source/plugin/zhanmishu_wepay/lib/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("data_error");
}
$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=".WxPayConf_pub::WEPAYCONFIG('wepay_KEY');
//签名步骤三:MD5加密
$string = md5($string);
//签名步骤四:所有字符转为大写
$result = strtoupper($string);
return $result;
}
/**
* 生成签名
* @return 签名,本函数不覆盖sign成员变量,如要设置签名需要调用SetSign方法赋值
*/
public function AppMakeSign()
{
//签名步骤一:按字典序排序参数
ksort($this->values);
$string = $this->ToUrlParams();
//签名步骤二:在string后加入KEY
//$string = $string . "&key=".WxPayConf_pub::WEPAYCONFIG('app_wepay_KEY');
$string = $string . "&key=".WxPayConf_pub::WEPAYCONFIG('app_wepay_KEY');
//签名步骤三:MD5加密
$string = md5($string);
//签名步骤四:所有字符转为大写
$result = strtoupper($string);
return $result;
}
/**
* 获取设置的值
*/
public function GetValues()
{
return $this->values;
}
}
/**
*
* 接口调用结果类
* @author widyhu
*
*/
class WxPayResults extends WxPayDataBase
{
/**
* 获取设置的值
*/
public function GetValues()
{
return $this->values;
}
/**
*
* 检测签名
*/
public function CheckSign()
{
//fix异常
if(!$this->IsSignSet()){
throw new WxPayException("签名错误!");
}
if ($this->GetTrade_type() == "APP" ) {
$sign = $this->AppMakeSign();
}else{
$sign = $this->MakeSign();
}
if($this->GetSign() == $sign){
return true;
}
throw new WxPayException("签名错误!");
}
public function GetTrade_type()
{
return $this->values['trade_type'];
}
/**
*
* 使用数组初始化
* @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
{
/**
*
* 设置返回参数
* @param string $key
* @param string $value
*/
public function SetData($key, $value)
{
$this->values[$key] = $value;
}
public static function getNonceStr($length = 32)
{
$chars = "abcdefghijklmnopqrstuvwxyz0123456789";
$str ="";
for ( $i = 0; $i < $length; $i++ ) {
$str .= substr($chars, mt_rand(0, strlen($chars)-1), 1);
}
return $str;
}
/**
* 设置微信分配的公众账号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);
}
/**
* 设置微信
没有合适的资源?快使用搜索试试~ 我知道了~
DZ插件 全能支付宝微信支付 微信支付宝v2.0.5.rar
共143个文件
php:57个
js:21个
css:17个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 146 浏览量
2021-11-15
17:43:37
上传
评论
收藏 1.39MB RAR 举报
温馨提示
本插件使用限制 本插件是为其他插件提供支付功能,单独使用无效,本插件不仅能为站秘书开发的插件提供支付功能, 其他插件一样可以调用本插件接口完成支付功能(必须开发者按照我们提供接口进行对接后才可支持)。 目前国内的情况,基本上必须企业才能使用本插件。 如用微信支付,必须有微信企业认证服务号,开通微信支付即可使用。 如果用支付宝接口,必须开通支付宝即时到账接口。 你网站需要支持url重写,也就是支持伪静态才行哦~~没有装伪静态组件请联系客服确认。
资源推荐
资源详情
资源评论
收起资源包目录
DZ插件 全能支付宝微信支付 微信支付宝v2.0.5.rar (143个子文件)
weui.css 188KB
bootstrap.min.css 120KB
sm.css 107KB
sm.min.css 85KB
animate.css 71KB
saved_resource.css 66KB
ionicons.css 56KB
weui.min.css 35KB
zms.css 32KB
style.css 22KB
main2.css 18KB
sm-extend.css 17KB
swiper-3.3.1.min.css 17KB
sm-extend.min.css 13KB
main.css 11KB
common.css 4KB
iconfont.css 2KB
ionicons.eot 118KB
iconfont.eot 23KB
ratchicons.eot 11KB
wxpay_logo.gif 2KB
pay.htm 7KB
jsapi.htm 6KB
pay.htm 5KB
index.htm 2KB
native.htm 1KB
native_dynamic_qrcode.htm 863B
notify.htm 781B
native.htm 779B
order_query.htm 550B
alipayapi.htm 188B
alipayapi.htm 178B
checkpay.htm 0B
checkpay.htm 0B
notify_url.htm 0B
a0.jpg 3KB
little_qrcode.jpg 2KB
sm-city-picker.js 360KB
sm-tyq.js 279KB
sm - 副本.js 279KB
sm - 鍓湰.js 279KB
sm-utf8.js 279KB
sm-utf-8.js 279KB
sm.js 279KB
sm-gbk.js 275KB
sm-extend.js 141KB
sm.min.js 107KB
moment.js 102KB
sm-city-picker.min.js 82KB
swiper-3.3.1.jquery.min.js 67KB
sm-extend.min.js 60KB
zepto.js 55KB
qrcode.js 22KB
json2.js 18KB
json_parse_state.js 13KB
suiinit.js 11KB
index.js 2KB
config.js 421B
cacert.pem 251KB
apiclient_key.pem 2KB
apiclient_key.pem 2KB
apiclient_cert.pem 2KB
apiclient_cert.pem 2KB
WxPay.Data.php 69KB
AopClient.php 29KB
WxPayPubHelper.php 24KB
WxPay.Api.php 22KB
WxPay.JsApiPay.php 9KB
alipay_core.function.php 6KB
notify_url.php 6KB
rewrite.inc.php 6KB
alipay_notify.class.php 5KB
AlipayMobilePublicMultiMediaClient.php 5KB
jsapi.php 5KB
native_call.php 5KB
alipay_submit.class.php 4KB
native.php 4KB
WxPay.MicroPay.php 4KB
js_api_call.php 4KB
WxPay.Config.php 4KB
install.php 3KB
api_function.php 3KB
native_dynamic_qrcode.php 3KB
refund.php 3KB
refund_query.php 3KB
refundquery.php 3KB
alipay.config.php 3KB
alinotify_url.php 3KB
order_query.php 3KB
alipayapi.php 3KB
WxPay.Notify.php 3KB
native_notify.php 2KB
orderquery.php 2KB
pay.php 2KB
log.php 2KB
AlipayTradeWapPayRequest.php 2KB
zhanmishu_wepay.php 2KB
table_zhanmishu_pay.php 2KB
AlipayMobilePublicMultiMediaExecute.php 2KB
notify.php 2KB
共 143 条
- 1
- 2
资源评论
执刀人的工具库
- 粉丝: 1406
- 资源: 1519
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Java 多线程课程的代码及少量注释.zip
- 数据库课程设计-基于的个性化购物平台的建表语句.sql
- 数据库课程设计-基于的图书智能一体化管理系统的建表语句.sql
- Java 代码覆盖率库.zip
- Java 代码和算法的存储库 也为该存储库加注星标 .zip
- 免安装Windows10/Windows11系统截图工具,无需安装第三方截图工具 双击直接使用截图即可 是一款免费可靠的截图小工具哦~
- Libero Soc v11.9的安装以及证书的获取(2021新版).zip
- BouncyCastle.Cryptography.dll
- 5.1 孤立奇点(JD).ppt
- 基于51单片机的智能交通灯控制系统的设计与实现源码+报告(高分项目)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功