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

相关推荐

  • 关于html如何写php语句。

    HTML 是一种标记语言,用于创建网页的结构,而 PHP 是一种服务端的脚本语言,经常被用来制作动态网页和应用程序,在 HTML 中嵌入 PHP 语句可以实现动态内容的生成。 (图片来源网络,侵删) 要在 HTML 文件中写 PHP…

    2024年6月21日
    00
  • PHP涉及的英语单词!

    PHP:PHP is HyperText Proprocessorhosts:hosts文件DNS:Domain Name Server域名服务器load:装载Module:模块LoadModule:装载模块File:文件Match:匹配FilesMatch:文件匹配AddType:添加类型application:应…

    2018年4月28日
    0635
  • PHP资源--RESOURCE

    说明:就是引用PHP外部的内容,这个时候的类型的就是资源。资源是通过专门的函数来建立和使用的。

    2017年11月28日
    0247
  • 我来教你php多虚拟主机配置的步骤是什么。

    在PHP开发中,多虚拟主机配置是一个常见的需求,通过配置多个虚拟主机,可以在同一台服务器上托管多个网站,每个网站都有自己的域名、目录和配置文件,下面将详细介绍PHP多虚拟主机配置的步骤。 1. 安装Apache和PHP…

    2024年7月12日
    00
  • 谈谈PHP中的 ->、=> 和 :: 符号

    本篇文章给大家介绍一下php新手经常碰到的问题,->、=> 和 :: 这三个家伙是什么分别都是做什么的啊!看着就很晕。 没关系,下面我们做一下详细的解释,如果你有C++,Perl基础,你会发现这些家伙和他们里面的一…

    2022年6月11日
    0182
  • 在PHP中实现微信商城订单管理

    随着电子商务的发展,越来越多的商家选择在微信平台上开设自己的商城。然而,如何高效地管理订单成为商家面临的一个难题。 PHP作为目前最流行的开发语言,在实现微信商城订单管理方面也有着很好的表现。接下来,本…

    2023年5月18日
    03
  • 重蔚自留地PHP学习第46天——通过PDO连接数据库

    上篇文章学习了数组的遍历https://www.cwhello.com/10789.html 下面做些总结。 复合数据的保存:数组和对象 保存文件:对符复合数据进行序列化保存 读取文件:反序列化得到数据类型 对象反序列化必须要先加载对应的…

    2023年5月22日 我php路线
    019
  • 谈谈PHP中的多进程消费队列

    引言 最近开发一个小功能,用到了队列mcq,启动一个进程消费队列数据,后边发现一个进程处理不过来了,又加了一个进程,过了段时间又处理不过来了...... 这种方式每次都要修改crontab,如果进程挂掉了,不会及时的…

    2022年6月13日 PHP自学教程
    0120

联系我们

QQ:951076433

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