PHP实现微信提现功能

来源:中文源码网    浏览: 次    日期:2019年11月5日

【下载文档:  PHP实现微信提现功能.txt 】

(友情提示:右键点上行txt文档名->目标另存为)

PHP实现微信提现功能本文实例为大家分享了PHP实现微信提现功能的具体代码,供大家参考,具体内容如下

一、实现功能

这几天在小程序里要实现用户从系统中提现到零钱的功能,查了一下文档可以使用 企业付款到用户零钱 来实现;

官方文档

注意事项:商户打款时是从商户可用余额中减钱,所以确保商户可用余额充足,同时注意官方文档中的付款规则;

二、PHP实现

//封装提现方法

function tixian($money){

$appid = "################";//商户账号appid

$secret = "##########";//api密码

$mch_id = "#######";//商户号

$mch_no = "#######";

$openid="123456789";//授权用户openid

$arr = array();

$arr['mch_appid'] = $appid;

$arr['mchid'] = $mch_id;

$arr['nonce_str'] = ugv::randomid(20);//随机字符串,不长于32位

$arr['partner_trade_no'] = '1298016501' . date("Ymd") . rand(10000, 90000) . rand(10000, 90000);//商户订单号

$arr['openid'] = $openid;

$arr['check_name'] = 'NO_CHECK';//是否验证用户真实姓名,这里不验证

$arr['amount'] = $money;//付款金额,单位为分

$desc = "###提现";

$arr['desc'] = $desc;//描述信息

$arr['spbill_create_ip'] = '192.168.0.1';//获取服务器的ip

//封装的关于签名的算法

$notify = new Notify_pub();

$notify->weixin_app_config = array();

$notify->weixin_app_config['KEY'] = $mch_no; $arr['sign'] = $notify->getSign($arr);//签名 $var = $notify->arrayToXml($arr);

$xml = $this->curl_post_ssl('http://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers', $var, 30, array(), 1);

$rdata = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA);

$return_code = (string)$rdata->return_code;

$result_code = (string)$rdata->result_code;

$return_code = trim(strtoupper($return_code));

$result_code = trim(strtoupper($result_code)); if ($return_code == 'SUCCESS' && $result_code == 'SUCCESS') {

$isrr = array(

'con'=>'ok',

'error' => 0,

);

} else {

$returnmsg = (string)$rdata->return_msg;

$isrr = array(

'error' => 1,

'errmsg' => $returnmsg,

); }

return json_encode($isrr);

} //上个方法中用到的curl_post_ssl()

function curl_post_ssl($url, $vars, $second = 30, $aHeader = array())

{

$isdir = "/cert/";//证书位置 $ch = curl_init();//初始化curl curl_setopt($ch, CURLOPT_TIMEOUT, $second);//设置执行最长秒数

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上

curl_setopt($ch, CURLOPT_URL, $url);//抓取指定网页

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);// 终止从服务端进行验证

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);//

curl_setopt($ch, CURLOPT_SSLCERTTYPE, 'PEM');//证书类型

curl_setopt($ch, CURLOPT_SSLCERT, $isdir . 'apiclient_cert.pem');//证书位置

curl_setopt($ch, CURLOPT_SSLKEYTYPE, 'PEM');//CURLOPT_SSLKEY中规定的私钥的加密类型

curl_setopt($ch, CURLOPT_SSLKEY, $isdir . 'apiclient_key.pem');//证书位置

curl_setopt($ch, CURLOPT_CAINFO, 'PEM');

curl_setopt($ch, CURLOPT_CAINFO, $isdir . 'rootca.pem');

if (count($aHeader) >= 1) {

curl_setopt($ch, CURLOPT_HTTPHEADER, $aHeader);//设置头部

}

curl_setopt($ch, CURLOPT_POST, 1);//post提交方式

curl_setopt($ch, CURLOPT_POSTFIELDS, $vars);//全部数据使用HTTP协议中的"POST"操作来发送 $data = curl_exec($ch);//执行回话

if ($data) {

curl_close($ch);

return $data;

} else {

$error = curl_errno($ch);

echo "call faild, errorCode:$error\n";

curl_close($ch);

return false;

}

}

三、补充

关于具体签名算法,可参考微信官方文档;

简单示范签名算法:

//将要发送的数据整理为$dataksort($data);//排序

//使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串

$str='';

foreach($data as $k=>$v) {

$str.=$k.'='.$v.'&';

}

//拼接API密钥

$str.='key='.$secrect;

$data['sign']=md5($str);//加密将数组转换成xml格式(简单方法):

//遍历数组方法

function arraytoxml($data){

$str='';

foreach($data as $k=>$v) {

$str.=''.$v.''.$k.'>';

}

$str.='';

return $str;

}将xml格式转换为数组:

function xmltoarray($xml) {

//禁止引用外部xml实体

libxml_disable_entity_loader(true);

$xmlstring = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA);

$val = json_decode(json_encode($xmlstring),true);

return $val;

}以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持中文源码网。

亲,试试微信扫码分享本页! *^_^*

php实现微信清粉功能,PHP实现微信提现功能相关推荐

  1. php 微商城 提现功能,微商城App提现功能升级

    各位商家,大家好: 我们收到不少商家反馈:"普通管理员未经授权操作提现""误操作删除银行卡"等场景,希望"提现有验证码校验,避免误操作或非授权者操作& ...

  2. 85后北大毕业生放弃年薪百万工作,开发制作微信“清粉”软件牟利:涉案800万...

    点击上方蓝色小字,关注"涛哥聊Python" 重磅干货,第一时间送达 来源:公安部网安局 经3个多月的缜密侦查 浙江温州苍南警方在多地开展行动 成功侦破一起开发微信"清粉 ...

  3. 【安全资讯】“微信清粉”被爆非法获取用户信息,用户付费后,个人信息被出售

    作者|蔚可云 来源|今日头条 发布时间|2021-11-07 图片来源:51CTO.com 微信好友加满了,想删掉一些联系人,又怕删错好友.好友把你删了,可他还躺在你的好友列表里. 基于这个需求,催生 ...

  4. 微信公众平台消息接口星标功能

    [微信公众平台星标功能接口被撤销]微信公众平台消息接口中的星标功能,被悄悄的去掉了. 原因应该是有的账号在程序中大量使用星标功能,造成微信服务器存储记录过于宠大. 现在要继续使用星标功能,只能在后台手 ...

  5. 必须进行支持的游戏方可使用此功能_企业微信 3.0上线,开放朋友圈功能,又一风口?...

    大家好我是辰由,微信作为一款国民级APP坐拥十几亿活跃用户,工作生活中必不可少,几乎每天都能够用得到,每一次的更新都能够牵动数十亿人的关注. 2019年12月23日企业微信2019年度发布会在广州举行 ...

  6. 微信公众平台开发(十一) 功能整合

    一.简介 在前面的几篇微信功能开发文档中,各个微信的功能都是独立的,单一微信只能提供一种功能,这样不符合大众开发者和客户的需求.所以在这一篇文章中,我们将对前面开发出来的微信功能进行简单整合,以供读者 ...

  7. web程序前后台功能实现_微信定制开发、小程序定制开发可以实现哪些功能?

    企业微信,是腾讯微信团队为企业打造的专业办公管理工具.与微信一致的沟通体验,丰富免费的OA应用,并与微信消息.小程序.微信支付等互通,助力企业高效办公和管理.全面安全保障,国际权威认证,银行级别加密水 ...

  8. C#开发微信门户及应用(7)-微信多客服功能及开发集成

    原文:C#开发微信门户及应用(7)-微信多客服功能及开发集成 最近一直在弄微信的集成功能开发,发现微信给认证账户开通了一个多客服的功能,对于客户的咨询,可以切换至客服处理的方式,而且可以添加多个客服进 ...

  9. 微信公众号新功能-原创声明、赞赏功能、评论管理、页面模版

    原文:http://www.shichangbu.com/portal.php?mod=view&aid=25931 公众号如何申请这些功能?                          ...

最新文章

  1. 从LeetCode 679. 24 Game--C++ 解法--二十四点 到穷举24点所有可能性-24点大全
  2. Codeforces Round #547 (Div. 3) D
  3. 谈谈2018年区块链大事件
  4. IntelliJ IDEA for Mac在MacOS模式下的导航快捷键(Navigation Shortcut)
  5. java8新特性(1)--- lambda表达式
  6. SpringBoot 动态创建多定时任务
  7. python从零开始到放弃_Python 协程从零开始到放弃
  8. 护理在计算机的应用研究,计算机虚拟和模拟技术在护理实践教学中应用的研究...
  9. InternalError: Blas GEMM launch failed : a.shape=(100, 784), b.shape=(784, 10), m=100, n=10...问题解决办法
  10. 关于18183-王者荣耀专区网站的TDK简要分析(更多内容请访问http://www.eduaskx6.com/)...
  11. JdbcUtils针对事务问题作出的第三次修改
  12. 汉王手写板linux驱动下载,Hanwang汉王
  13. 服务器的tpmc查询网站,xxxx最新服务器选型指标_tpcc(tpmc)标准值_tpc官方整理.pdf
  14. cuda the launch timed out and was terminated windows11解决方案 关闭TDR
  15. 分享:淘宝客完全开源程序。
  16. 我们到底能从《别逗了,费曼先生》中学到什么?
  17. 词性标记:VA,VC,VE,VV等
  18. Linux 命令(142)—— hexdump 命令
  19. Android 音视频开发(二):使用 AudioRecord 采集音频PCM并保存到文件(学习笔记)
  20. 袁腾飞的两宋风云读后感

热门文章

  1. 基于量子粒子群算法实现天线阵列优化
  2. Mediasoup简介及其基本概念
  3. DASH直播平台的搭建
  4. win10+vs2017+caffe(crnn)编译过程记录(验证成功)
  5. C语言中长度为0的数组
  6. Linux TCP队列相关参数的总结
  7. linux下-exec和xargs的区别
  8. IOCP之accept、AcceptEx、WSAAccept的区别
  9. VC++ 使用导入位图创建工具栏
  10. deepin--解决网易云音乐个性推荐无法加载