首页
友人帐
留言板
关于
Search
1
IDE Eval Resetter:JetBrains 全家桶无限试用插件
377 阅读
2
影视资源采集站收录大全
302 阅读
3
linux安装或升级protoc
223 阅读
4
VFM 3.7.5 源码 - 一个极简的 PHP 私人云盘!
161 阅读
5
批量采集美女写真等图片做图片站
149 阅读
谈天说地
程序源码
技术教程
成品源码
登录
Search
标签搜索
PHP
linux
源码
go
windows
centos
原创
mysql
微信
激活
采集
宝塔
绿色版
API
解析
SDK
图片
破解
域名
html
云青
累计撰写
150
篇文章
累计收到
75
条评论
首页
栏目
谈天说地
程序源码
技术教程
成品源码
页面
友人帐
留言板
关于
搜索到
12
篇与
的结果
2021-11-18
飞尔国际源码
非资金盘系统,项目可长期运营预览程序说明源码采用php+golang+uniapp编写,可八端打包使用(安卓 iOS 小程序等)静态奖励存fil赚fil,2个fil起投,静态每天0.5%到3%收益,三倍出局动态奖励1.直推10%2.节点服务费奖励V1 业绩累积10fil享受名下会员每日静态收益1%节点服务费V2 业绩累积30fil 享受名下会员每日静态收益2%节点服务费V3业绩累积100fil享受名下会员每日静态收益3%节点服务费V4业绩累积200fil享受名下会员每日静态收益4%节点服务费V5业绩累计500fil享受名下会员每日静态收益5%节点服务费V6业绩累计1000fil享受名下会员每日静态收益7%节点服务费V7业绩累计2000fil享受名下会员每日静态收益10%节点服务费v8业绩累计数3000fil享受名下会员每日静态收益14%节点服务费v9业绩累积6000fil享受名下会员每日静态收益18%节点服务费v10业绩累积10000fil享受名下会员每日静态收益20%节点服务费 直推一人拿一代,直推两人拿两代,以此类推。3.平级奖当名下会员与你平级时,可获取直接推荐者每日动静态收益的10%
2021年11月18日
17 阅读
0 评论
0 点赞
2019-11-04
微营销系统
微营销平台主要用于产品的宣传推广,以订单处理为核心,帮助企业快速构建专属的全渠道营销订单平台。企业通过平台可以全面展示商品,快速引流客户,提升内外部协同效率,数据驱动获取更多利润。您可以在后台自由编辑产品页面,产品内容,业务员,各种订单数据的查看。更好的助力微信产品推广。主要功能1.所有页面都支持自定义编辑,可自定义具体产品商品内容。2.所有订单都支持导出,方便你的发货,快捷上传物流单号。3.各种统计信息一目了然,使你更清楚自己的业务范围。4.支持添加组长与员工,每个组长和员工都有独立后台与链接。5.支持链接,活动,产品,组长员工的无限次添加。6.支持短信发送、物流信息查询,售后订单处理,后台操作简单。7.支持微信支付,支付宝支付,货到付款等多种付款方式。下面为系统案例部分图片展示具体功能请联系博主本人 发测试站体验目前售价 8500 代码开源 包一个月更新 后续更新2000/年更新日志{timeline}{timeline-item color="#19be6b"}2021-8-13增加IfWin支付{/timeline-item}{timeline-item color="#19be6b"}2021-6-23修改金额显示错误修改后台清空缓存失效问题增加后台当前版本号显示增加后台用户入口增加后台手机端入口增加中战支付{/timeline-item}{timeline-item color="#19be6b"}2021-6-22修改短网址的样式增加随机立减金额增加底部订单查询增加所有手机端购买数统计增加后台产品链接{/timeline-item}{timeline-item color="#19be6b"}2021-6-21增加源铭支付优化商品页ui显示{/timeline-item}{timeline-item color="#19be6b"}2021-6-20增加订单导出时间字段优化订单汇总ui显示增加数据统计{/timeline-item}{timeline-item color="#19be6b"}2021-6-18增加产品页客服外链功能{/timeline-item}{timeline-item color="#19be6b"}2021-6-17修复后台售后处理modal弹窗问题更新框架缓存文件以及模板引擎增加异步时更新时间调整广告位{/timeline-item}{timeline-item color="#19be6b"}2021-6-16更新扩展包物流导入组长登入ui显示问题{/timeline-item}{timeline-item color="#19be6b"}2021-6-15更新泛域名解析增加订单导出增加布丁云支付等{/timeline-item}{timeline-item color="#19be6b"}2021-6-8更新短信监控补发等细节性问题{/timeline-item}{timeline-item color="#19be6b"}2021-6-3更新框架核心文件以及依赖包,现支持php8.0 运行速度提高40%{/timeline-item}{timeline-item color="#19be6b"}2021-5-21修复短链等问题增加星云支付更新在线更新接口{/timeline-item}{timeline-item color="#19be6b"}2021-5-20修复后台修改密码问题增加腾讯云存储功能增加用户自定义域{/timeline-item}{timeline-item color="#19be6b"}2021-5-19修复后台短网址修改错误添加授权版本{/timeline-item}{timeline-item color="#19be6b"}2021-4-28增加后台在线更新功能{/timeline-item}{timeline-item color="#19be6b"}2021-4-3从php7.x升级到php8.0{/timeline-item}{timeline-item color="#19be6b"}2021-3-10增加微信公众号支付{/timeline-item}{timeline-item color="#19be6b"}2020-12-10从旧版本完整升级至新版本,新版采用AY框架{/timeline-item}{timeline-item color="#19be6b"}2019-10-1禁止用户重复下单{/timeline-item}{timeline-item color="#19be6b"}2019-9-14增加商品页优惠卷功能{/timeline-item}{timeline-item color="#19be6b"}2019-9-1增加商品页广告功能{/timeline-item}{timeline-item color="#19be6b"}2019-8-10发布微营销系统{/timeline-item}{/timeline}图片预览
2019年11月04日
21 阅读
1 评论
0 点赞
2019-11-04
分享自用支付宝支付类
分享自用的支付宝支付类目前只封装了 订单查询以及app支付更多的支付 后期会集成异步主要商户订单号查询 并确定金额是否与数据库中一致以及判断该商户订单号是否处理过(谨记)个人觉得验签并不重要 有订单查询以及数据库订单验证就行了过多的就不介绍了 源码有注释 <?php /** * @author anderyly * @email admin@aaayun.cc * @link https://blog.aaayun.cc/ * @copyright Copyright (c) 2019 */ class AliPay { // 应用ID public $appId; // 私钥 public $privateKey; // 公钥 public $publicKey; // 异步地址 public $notify_url; // 同步地址 public $return_url; //返回数据格式 public $format = "json"; //版本 public $version = "1.0"; // 编码 public $charset = "UTF-8"; //签名类型 public $signType = "RSA2"; // 配置 public $config; // 网关 public $gatewayUrl = "https://openapi.alipay.com/gateway.do"; public function __construct($appid, $privateKey, $publicKey, $notify_url, $return_url) { $this->appId = $appid; $this->privateKey = $privateKey; $this->publicKey = $publicKey; $this->notify_url = $notify_url; $this->return_url = $return_url; $this->config = [ 'alipay_sdk' => 'alipay-sdk-php-20180705', 'app_id' => $this->appId, 'notify_url' => $this->notify_url, 'sign_type' => $this->signType, 'charset' => $this->charset, 'timestamp' => date('Y-m-d H:i:s', time()), 'version' => $this->version ]; } /** * app支付 * @param $out_trade_no 商户订单号 * @param $total_amount 金额 * @param $subject 标题 * @return arrray */ public function app($out_trade_no, $total_amount, $subject) { $method = 'alipay.trade.app.pay'; $config = $this->config; $config['method'] = $method; $biz = [ 'total_amount' => $total_amount, 'product_code' => 'QUICK_MSECURITY_PAY', 'subject' => $subject, 'out_trade_no' => $out_trade_no ]; $arr = [ 'subject' => $biz['subject'], 'out_trade_no' => $out_trade_no, 'total_amount' => $biz['total_amount'], 'appid' => $this->appId, 'notify_url' => $this->notify_url, 'sign_type' => $this->signType ]; $biz_content = json_encode($biz, JSON_UNESCAPED_UNICODE); $config['biz_content'] = $biz_content; ksort($config); $config['sign'] = $this->sign($config); $params_url = ''; foreach ($config as $k => $v) { if (!empty($v)) { $params_url .= $k . '=' . urlencode($v) . '&'; } } $params_url = rtrim($params_url, '&'); $arr['sign'] = $params_url; return $arr; } /** * 订单查询 * @param $out_trade_no * @param $total_amount * @return bool|arrray */ public function orderQuery($out_trade_no, $total_amount = '') { $method = 'alipay.trade.query'; $config = $this->config; $config['method'] = $method; unset($config['notify_url']); $biz = [ 'out_trade_no' => $out_trade_no ]; $biz_content = json_encode($biz, JSON_UNESCAPED_UNICODE); $config['biz_content'] = $biz_content; ksort($config); $config['sign'] = $this->sign($config); $res = $this->curl($config); $res = json_decode($res, true); $res = $res['alipay_trade_query_response']; if ($res['code'] == 10000 and $res['msg'] == 'Success' and $res['trade_status'] == 'TRADE_SUCCESS') { if (empty($total_amount)) { return $res; } else { if ($res['total_amount'] == $total_amount) { return $res['trade_no']; } else { return false; } } } else { return false; } } /** * curl请求 * @param $data * @return bool|int|mixed|string */ private function curl($data) { @header("Content-type: text/html;charset=gb2312"); $ch = curl_init(); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_SSLVERSION, 1); curl_setopt($ch, CURLOPT_URL, $this->gatewayUrl); if (is_array($data)) { curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); } elseif (is_string($data)) { curl_setopt($ch, CURLOPT_POSTFIELDS, $data); } curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, true); $content = curl_exec($ch); curl_close($ch); return $content; } /** * 签名 * @param $data * @return bool|string */ private function sign($params) { $stringToBeSigned = ""; $i = 0; foreach ($params as $k => $v) { if (false === $this->checkEmpty($v) && "@" != substr($v, 0, 1)) { if ($i == 0) { $stringToBeSigned .= "$k" . "=" . "$v"; } else { $stringToBeSigned .= "&" . "$k" . "=" . "$v"; } $i++; } } unset ($k, $v); // 私钥处理 $res = "-----BEGIN RSA PRIVATE KEY-----" . PHP_EOL . wordwrap($this->privateKey, 64, PHP_EOL, true) . PHP_EOL . "-----END RSA PRIVATE KEY-----"; ($res) or die('您使用的私钥格式错误,请检查RSA私钥配置'); openssl_sign($stringToBeSigned, $sign, $res, OPENSSL_ALGO_SHA256); $key = base64_encode($sign); return $key; } private function checkEmpty($value) { if (!isset($value)) return true; if ($value === null) return true; if (trim($value) === "") return true; return false; } }
2019年11月04日
7 阅读
0 评论
0 点赞
2019-11-02
[更新]php微信支付类(含h5支付、APP二次签名、jsapi支付)
博主之封装过一个微信支付类 很长时间没有更新了 现在分享一下自用的微信支付类该类含有微信app支付 h5支付 公众号支付(jsapi) 订单查询native扫码支付后面会添加异步主要商户订单号查询 并确定金额是否与数据库中一致以及判断该商户订单号是否处理过(谨记)个人觉得验签并不重要 有订单查询以及数据库订单验证就行了过多的就不介绍了 源码有注释<?php /** * @author anderyly * @email anderyly@sina.com * @link https://blog.aaayun.cc/ * @copyright Copyright (c) 2018 */ class WxPay { // 微信分配的公众账号ID public $appId; // 微信支付分配的商户号 public $mch_id; // 微信支付分配的商户密钥 public $key; // 回调地址 public $notify_url; // 随机字符串 public $nonce_str; // 站点名称 public $webName; // 站点url地址 public $webUrl; // h5支付成功后跳转的地址 public $redirect_url; /** * [__construct 初始化配置] */ public function __construct($data) { $this->appId = $data['appId']; $this->mch_id = $data['mch_id']; $this->key = $data['key']; $this->notify_url = $data['notify_url']; if (isset($data['webName'])) $this->webName = $data['webName']; if (isset($data['webUrl'])) $this->webUrl = $data['webUrl']; if (isset($data['redirect_url'])) $this->redirect_url = $data['redirect_url']; $this->nonce_str = $this->rand_code(); } /** * [h5 html5支付] * @param out_trade_no [订单号] * @param $body [商品描述] * @param $ip [ip地址] * @param $total_fee [订单总金额] * @return array|bool */ public function h5($out_trade_no, $body, $ip, $total_fee) { $url = 'https://api.mch.weixin.qq.com/pay/unifiedorder'; $data = [ 'appid' => $this->appId, 'mch_id' => $this->mch_id, 'body' => $body, 'spbill_create_ip' => $ip, 'total_fee' => $total_fee * 100, 'out_trade_no' => $out_trade_no, 'nonce_str' => $this->nonce_str, 'notify_url' => $this->notify_url, 'trade_type' => 'MWEB', 'scene_info' => "{'h5_info':{'type': 'WAP','wap_url': $this->webUrl,'wap_name': $this->webName}}" ]; $data['sign'] = $this->sign($data); //获取签名 $data = $this->curlWx($url, $this->ToXml($data)); if ($data) { $res = $this->FromXml($data); if (isset($res['return_code']) and $res['return_code'] != 'SUCCESS' and isset($res['return_msg']) and $res['return_msg'] == 'OK' and isset($res['result_code']) and $res['result_code'] == 'SUCCESS') { exit("签名失败!"); } else { $url = $res['mweb_url'] . '&redirect_url=' . urlencode($this->redirect_url); exit('<script src="https://open.mobile.qq.com/sdk/qqapi.js?_bid=152"></script><script type="text/javascript">mqq.ui.openUrl({ target: 2,url: "' . $url . '"});</script>'); } } } /** * [app 移动端二次签名] * @param out_trade_no [订单号] * @param $body [商品描述] * @param $ip [ip地址] * @param $total_fee [订单总金额] * @return array|bool */ public function app($out_trade_no, $body, $ip, $total_fee) { $url = 'https://api.mch.weixin.qq.com/pay/unifiedorder'; $data = [ 'appid' => $this->appId, 'mch_id' => $this->mch_id, 'body' => $body, 'spbill_create_ip' => $ip, 'total_fee' => $total_fee * 100, 'out_trade_no' => $out_trade_no, 'nonce_str' => $this->nonce_str, 'notify_url' => $this->notify_url, 'trade_type' => 'APP', ]; $data['sign'] = $this->Sign($data); $data = $this->curlWx($url, $this->ToXml($data)); if ($data) { $res = $this->FromXml($data); if ($res['return_code'] != 'SUCCESS') { return false; } else { $arr = [ 'prepayid' => $res['prepay_id'], 'appid' => $this->appId, 'partnerid' => $this->mch_id, 'package' => 'Sign=WXPay', 'noncestr' => $this->nonce_str, 'timestamp' => time(), ]; $sign = $this->sign($arr, 1); $arr['out_trade_no'] = $out_trade_no; $arr['return_code'] = $res['return_code']; $arr['sign'] = $sign; return $arr; } } else { return false; } } /** * [h5 html5支付] * @param $out_trade_no [订单号] * @param $body [商品描述] * @param $ip [ip地址] * @param $total_fee [订单总金额] * @param $openid [授权用户的openid] * @return array|bool */ public function jsapi($out_trade_no, $body, $ip, $total_fee, $openid) { $url = 'https://api2.mch.weixin.qq.com/pay/unifiedorder'; $data = [ 'appid' => $this->appId, 'mch_id' => $this->mch_id, 'body' => $body, 'spbill_create_ip' => $ip, 'total_fee' => $total_fee * 100, 'out_trade_no' => $out_trade_no, 'nonce_str' => $this->nonce_str, 'notify_url' => $this->notify_url, 'trade_type' => 'JSAPI', 'openid' => $openid ]; $data['sign'] = $this->Sign($data, 1); $data = $this->curlWx($url, $this->ToXml($data)); if ($data) { $res = $this->FromXml($data); if ($res['return_code'] != 'SUCCESS') { return false; } else { $arr = [ 'appId' => $res['appid'], 'package' => 'prepay_id=' . $res['prepay_id'], 'nonceStr' => $this->nonce_str, 'timeStamp' => time(), 'signType' => 'MD5' ]; $sign = $this->sign($arr); $as['nonceStr'] = $arr['nonceStr']; $as['package'] = $arr['package']; $as['sign'] = $sign; $as['timestamp'] = $arr['timeStamp']; $as['appid'] = $arr['appId']; return $as; } } else { return false; } } /** * [curlWx 发送curl请求] * @param $url [url地址] * @param $xml [xml] * @return mixed */ protected function curlWx($url, $xml) { //header("Content-type:text/xml"); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); if (stripos($url, "https://") !== FALSE) { curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); } else { curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, TRUE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); } curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1); curl_setopt($ch, CURLOPT_HEADER, FALSE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_TIMEOUT, 30); curl_setopt($ch, CURLOPT_POST, TRUE); curl_setopt($ch, CURLOPT_POSTFIELDS, $xml); $data = curl_exec($ch); curl_close($ch); return $data; } /** * [sign 签名] * @param null $app [不为null开启二次签名] * @return string */ protected function sign($params, $app = NULL) { ksort($params); foreach ($params as $key => $item) { if (!empty($item)) $newArr[] = $key . '=' . $item; } $stringA = implode("&", $newArr); $stringSignTemp = $stringA . "&key=" . $this->key; $sign = MD5($stringSignTemp); if (is_null($app)) $sign = strtoupper($sign); return $sign; } /** * [FromXml xml转数组] * @param $xml * @return bool|mixed */ public function FromXml($xml) { if (!$xml) return false; libxml_disable_entity_loader(true); $data = @json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true); return $data; } /** * [ToXml 参数组装成xml] * @param array $data * @return bool|string */ public function ToXml($data = []) { if (!is_array($data) || count($data) <= 0) return false; $xml = "<xml>"; foreach ($data as $key => $val) { if (is_numeric($val)) { $xml .= "<" . $key . ">" . $val . "</" . $key . ">"; } else { $xml .= "<" . $key . "><![CDATA[" . $val . "]]></" . $key . ">"; } } $xml .= "</xml>"; return $xml; } /** * [rand_code 生成随机字符串] * @return bool|string */ protected function rand_code() { $str = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';//62个字符 $str = str_shuffle($str); $str = substr($str, 0, 32); return $str; } /** * [orderQuery 查询订单] * @param $order [商户订单号] * @param $money [订单金额] * @return bool [false | 成功返回流水号] */ public function orderQuery($order, $money) { $url = 'https://api.mch.weixin.qq.com/pay/orderquery'; $data = array( 'appid' => $this->appId, 'mch_id' => $this->mch_id, 'nonce_str' => $this->nonce_str, 'out_trade_no' => $order ); $data['sign'] = $this->sign($data); $data = $this->curlWx($url, $this->ToXml($data)); if ($data) { $res = $this->FromXml($data); if ($res['return_code'] == 'FAIL') { return false; } else { // if (isset($res['return_code']) and $res['return_code'] == 'SUCCESS' and isset($res['return_msg']) and $res['return_msg'] == 'OK' and isset($res['result_code']) and $res['result_code'] == 'SUCCESS' and isset($res['trade_state']) and $res['trade_state'] == 'SUCCESS') { // if ($res['total_fee'] == ($money * 100)) { return $res['transaction_id']; } else { return false; } // } else { return false; } // } // } else { return false; } } }该类含有微信app支付 h5支付 公众号支付(jsapi) 订单查询native扫码支付后面会添加异步主要商户订单号查询 并确定金额是否与数据库中一致以及判断该商户订单号是否处理过(谨记)个人觉得验签并不重要 有订单查询以及数据库订单验证就行了过多的就不介绍了 源码有注释
2019年11月02日
13 阅读
0 评论
0 点赞
2019-09-09
最新域名防红整站源码带后台配置
图片预览点我下载 密码:zwpXD7xX
2019年09月09日
16 阅读
0 评论
0 点赞
1
2
3