PHP开发的微信现金红包功能示例

本文实例讲述了PHP开发的微信现金红包功能。分享给大家供大家参考,具体如下:

微信商家后台-现金红包开发

?php
class wxPay {
//配置参数信息
const SHANGHUHAO = "1430998xxx";//商户号
const PARTNERKEY = "leFyTOXWzUEXxfp47WOu5d9xxxxxx"; //api,商户后台
//核心支付函数,参数:请求地址和参数
function pay($url,$obj) {
$obj['nonce_str'] = $this->create_noncestr(); //创建随机字符串
$stringA = $this->create_qianming($obj,false); //创建签名
$stringSignTemp = $stringA."&key=leFyTOXWzUEXxfp47WOu5xxxxxx"; //签名后加api
$sign = strtoupper(md5($stringSignTemp)); //签名加密并大写
$obj['sign'] = $sign; //将签名传入数组
$postXml = $this->arrayToXml($obj); //将参数转为xml格式
var_dump($postXml);
$responseXml = $this->curl_post_ssl($url,$postXml); //提交请求
var_dump($responseXml);
return $responseXml;
}
//生成签名,参数:生成签名的参数和是否编码
function create_qianming($arr,$urlencode) {
$buff = "";
ksort($arr); //对传进来的数组参数里面的内容按照字母顺序排序,a在前面,z在最后(字典序)
foreach ($arr as $k=>$v) {
if(null!=$v && "null" != $v && "sign" != $k) { //签名不要转码
if ($urlencode) {
$v = urlencode($v);
}
$buff.=$k."=".$v."&";
}
}
if (strlen($buff)>0) {
$reqPar = substr($buff,0,strlen($buff)-1); //去掉末尾符号“&”
}
return $reqPar;
}
//生成随机字符串,默认32位
function create_noncestr($length=32) {
//创建随机字符
$chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
$str = "";
for($i=0;$i<$length;$i++) {
$str.=substr($chars, mt_rand(0,strlen($chars)-1),1);
}
return $str;
}
//数组转xml
function arrayToXml($arr) {
$xml = "";
foreach ($arr as $key=>$val) {
if (is_numeric($val)) {
$xml.="<".$key.">".$val."</".$key.">";
} else {
$xml.="<".$key.">

证书文件

请在微信商户后台-API安全下载,PHP请使用php的证书文件
微信红包调用测试文件:

<?php
require 'wxpay.class.php';

//数组参数
$money = 100; //最低1元,单位分
$sender = "晨缘房产";
$obj2 = array();
$obj2['wxappid'] = ""; //appid
$obj2['mch_id'] = "";  //商户id
$obj2['mch_billno'] = "商户id".date('YmdHis').rand(1000,9999);  //组合成28位,根据官方开发文档,可以自行设置
$obj2['client_ip'] = $_SERVER['REMOTE_ADDR'];
$obj2['re_openid'] = "oUxO6v26wdyMHThD9kfDW6NB_xbE";  //接收红包openid
$obj2['total_amount'] = $money;
$obj2['min_value'] = $money;
$obj2['max_value'] = $money;
$obj2['total_num'] = 1;
$obj2['nick_name'] = $sender;
$obj2['send_name'] = $sender;
$obj2['wishing'] = "恭喜发财";
$obj2['act_name'] = $sender."红包";
$obj2['remark'] = $sender."红包";
$url = "https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack";
$wxpay = new wxPay();
$res = $wxpay->pay($url, $obj2);
var_dump($res);

本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/4011.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
重蔚的头像重蔚管理团队
上一篇 2017年12月7日 15:00
下一篇 2017年12月8日 21:04

相关推荐

  • 经验分享宝塔面板 php。

    宝塔面板是一款方便的服务器管理工具,支持多种语言,包括PHP。它可以帮助用户轻松管理服务器、网站和数据库,提高运维效率。 宝塔面板轻松部署PHP项目完善解决困扰多年的问题 在互联网时代,越来越多的人开始接触…

    2024年7月6日
    00
  • PHP入门指南:PHP和Kafka。

    PHP入门指南:PHP和Kafka随着互联网应用的迅猛发展,实时数据处理已经成为了各大公司必不可少的技术。Kafka是一种高性能、分布式的消息系统,被广泛地应用于实时数据流处理领域。而PHP,作为一个流行的服务器端脚本…

    2023年5月28日
    01
  • 在PHP中使用机器学习的最佳实践。

    随着互联网和人工智能的发展,机器学习的需求不断增加,而PHP语言作为网络应用开发的主要语言之一,在机器学习的应用中也起到了不可替代的作用。但是PHP作为一种脚本语言,其性能相对较差,而机器学习操作需要大量…

    2023年5月30日
    00
  • PHP应用利用Memcache缓存技术提高数据访问速度的方法。

    随着互联网规模的不断扩大,数据的访问和处理速度成为了一个亟待解决的问题。对于PHP应用来说,如何提高数据的访问速度成为了一个重要的课题。而在这个问题上,利用Memcache缓存技术是PHP应用开发者常用的方法之一…

    2023年5月21日
    01
  • PHP中的容器编排。

    随着云计算的普及,容器技术也得到广泛的应用,容器编排成为了越来越多企业的必备技术。PHP作为世界流行的服务器端脚本语言,也积极适应这一技术趋势,不断推出新的容器编排工具。一、什么是容器编排容器编排(Cont…

    2023年5月28日
    00
  • PHP与数据库事务管理的集成。

    随着互联网的发展和应用场景的广泛应用,数据库的安全性和稳定性也越来越受到重视。而事务管理作为数据库的重要组成部分之一,对于保证数据库操作的一致性和可靠性具有重要意义。在数据库事务管理中,PHP语言作为一…

    2023年5月21日
    00
  • 聊聊php 切割字符串。

    在PHP中,字符串切割是一个常见的操作,它可以帮助我们将一个长字符串分割成多个子字符串,PHP提供了多种方法来实现字符串切割,其中最常用的是`explode()`和`str_split()`函数,下面我们详细介绍这两种方法的用法…

    2024年6月20日
    00
  • 详解PHP中的数组分页实现(非数据库)

    在日常开发的业务环境中,我们一般都会使用 MySQL 语句来实现分页的功能。但是,往往也有些数据并不多,或者只是获取 PHP 中定义的一些数组数据时需要分页的功能。这时,我们其实不需要每次都去查询数据库,可以在…

    2023年3月29日
    01

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息