Implement PHP WeChat red envelope API interface
First of all, let me take a look at this form:
Related learning recommendations: php programming(Video)
Based on the WeChat advanced red envelope interface, the PHP version of the API interface is developed, and now the main code analysis is carried out.
The red envelope interface calls the request code. All request parameters are required and correspond to the document:
class Wxapi { private $app_id = 'wxXXXXXXXXXXXX'; //公众账号appid,首先申请与之配套的公众账号 private $app_secret = 'XXXXXXXXXXXXXXXXXXXXXXXX';//公众号secret,用户获取用户授权token private $app_mchid = 'XXXXXXXX';//商户号id function __construct(){ //do sth here.... } /** * 微信支付 * @param string $openid 用户openid */ public function pay($re_openid) { include_once('WxHongBaoHelper.php'); $commonUtil = new CommonUtil(); $wxHongBaoHelper = new WxHongBaoHelper(); $wxHongBaoHelper->setParameter("nonce_str", $this->great_rand());//随机字符串,丌长于 32 位 $wxHongBaoHelper->setParameter("mch_billno", $this->app_mchid.date('YmdHis').rand(1000, 9999));//订单号 $wxHongBaoHelper->setParameter("mch_id", $this->app_mchid);//商户号 $wxHongBaoHelper->setParameter("wxappid", $this->app_id); $wxHongBaoHelper->setParameter("nick_name", '红包');//提供方名称 $wxHongBaoHelper->setParameter("send_name", '红包');//红包发送者名称 $wxHongBaoHelper->setParameter("re_openid", $re_openid);//相对于医脉互通的openid $wxHongBaoHelper->setParameter("total_amount", 100);//付款金额,单位分 $wxHongBaoHelper->setParameter("min_value", 100);//最小红包金额,单位分 $wxHongBaoHelper->setParameter("max_value", 100);//最大红包金额,单位分 $wxHongBaoHelper->setParameter("total_num", 1);//红包収放总人数 $wxHongBaoHelper->setParameter("wishing", '感谢您参与红包派发活动,祝您新年快乐!');//红包祝福诧 $wxHongBaoHelper->setParameter("client_ip", '127.0.0.1');//调用接口的机器 Ip 地址 $wxHongBaoHelper->setParameter("act_name", '红包活动');//活劢名称 $wxHongBaoHelper->setParameter("remark", '快来抢!');//备注信息 $postXml = $wxHongBaoHelper->create_hongbao_xml(); $url = 'https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack'; $responseXml = $wxHongBaoHelper->curl_post_ssl($url, $postXml); //用作结果调试输出 //echo htmlentities($responseXml,ENT_COMPAT,'UTF-8'); $responseObj = simplexml_load_string($responseXml, 'SimpleXMLElement', LIBXML_NOCDATA); return $responseObj->return_code; }
Method to obtain a random string:
/** * 生成随机数 */ public function great_rand(){ $str = '1234567890abcdefghijklmnopqrstuvwxyz'; for($i=0;$i<30;$i++){ $j=rand(0,35); $t1 .= $str[$j]; } return $t1; }
Signature algorithm:
/** 例如: appid: wxd111665abv58f4f mch_id: 10000100 device_info: 1000 Body: test nonce_str: ibuaiVcKdpRxkhJA 第一步:对参数按照 key=value 的格式,并按照参数名 ASCII 字典序排序如下: stringA="appid=wxd930ea5d5a258f4f&body=test&device_info=1000&mch_i d=10000100&nonce_str=ibuaiVcKdpRxkhJA"; 第二步:拼接支付密钥: stringSignTemp="stringA&key=192006250b4c09247ec02edce69f6a2d" sign=MD5(stringSignTemp).toUpperCase()="9A0A8659F005D6984697E2CA0A 9CF3B7" */ protected function get_sign(){ define('PARTNERKEY',"QSRXXXXXXXXXXXXXXXXXXXXX"); try { if (null == PARTNERKEY || "" == PARTNERKEY ) { throw new SDKRuntimeException("密钥不能为空!" . "<br>"); } if($this->check_sign_parameters() == false) { //检查生成签名参数 throw new SDKRuntimeException("生成签名参数缺失!" . "<br>"); } $commonUtil = new CommonUtil(); ksort($this->parameters); $unSignParaString = $commonUtil->formatQueryParaMap($this->parameters, false); $md5SignUtil = new MD5SignUtil(); return $md5SignUtil->sign($unSignParaString,$commonUtil->trimString(PARTNERKEY)); }catch (SDKRuntimeException $e) { die($e->errorMessage()); } }
CURL request and send certificate:
function curl_post_ssl($url, $vars, $second=30,$aHeader=array()) { $ch = curl_init(); //超时时间 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); //cert 与 key 分别属于两个.pem文件 //请确保您的libcurl版本是否支持双向认证,版本高于7.20.1 curl_setopt($ch,CURLOPT_SSLCERT,dirname(__FILE__).DIRECTORY_SEPARATOR.'zhengshu'.DIRECTORY_SEPARATOR.'apiclient_cert.pem'); curl_setopt($ch,CURLOPT_SSLKEY,dirname(__FILE__).DIRECTORY_SEPARATOR.'zhengshu'.DIRECTORY_SEPARATOR.'apiclient_key.pem'); curl_setopt($ch,CURLOPT_CAINFO,dirname(__FILE__).DIRECTORY_SEPARATOR.'zhengshu'.DIRECTORY_SEPARATOR.'rootca.pem'); if( count($aHeader) >= 1 ){ curl_setopt($ch, CURLOPT_HTTPHEADER, $aHeader); } curl_setopt($ch,CURLOPT_POST, 1); curl_setopt($ch,CURLOPT_POSTFIELDS,$vars); $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; } }
Entry file:
@require "pay.php"; //获取用户信息 $get = $_GET['param']; $code = $_GET['code']; //判断code是否存在 if($get=='access_token' && !empty($code)){ $param['param'] = 'access_token'; $param['code'] = $code; $packet = new Packet(); //获取用户openid信息 $userinfo = $packet->_route('userinfo',$param); if(empty($userinfo['openid'])){ exit("NOAUTH"); } //调取支付方法 $packet->_route('wxpacket',array('openid'=>$userinfo['openid'])); }else{ $packet->_route('userinfo'); }
Related learning recommendations: Programming video
The above is the detailed content of Implement PHP WeChat red envelope API interface. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



What is the maximum amount of WeChat red envelopes that can be sent? There is an upper limit on the amount of red envelopes sent in WeChat, and some users are not clear about the maximum amount of red envelopes that can be sent on WeChat. The maximum amount on non-special dates is 200. Next is an introduction to the maximum amount of red envelopes that the editor brings to users. Interested users can come and take a look! WeChat usage tutorial How to set WeChat status background image Answer: 200 yuan Details: 1. The upper limit of WeChat red envelope amount: 200. Each person can only send a maximum of 200 yuan in WeChat red envelopes each time. 2. Special red envelope amount: On May 20 of each year, users can send red envelopes with an upper limit of 520 yuan.

With the popularity of email in our daily lives, email sending has become an essential feature in many applications. As a popular web development language, PHP also provides a corresponding email sending API interface. This article will introduce the email sending API interface in PHP to beginners and developers, including how to configure the mail server, how to use PHP's built-in email functions, and how to use a third-party email sending library. 1. Configure the mail server. Before using PHP to send mail, you need to first configure an SMTP server.

The current WeChat red envelope does not support manual return. Tutorial Applicable Model: iPhone13 System: iOS15.5 Version: WeChat 8.0.19 Analysis 1 The current WeChat red envelope does not support manual return. For WeChat red envelopes that have not been claimed, the WeChat system will automatically return it to the originating account after 24 hours, so when If we want to return the red envelope after receiving it, as long as we don't accept it, it will be automatically returned after 24 hours. Supplement: How to return a WeChat transfer 1 Click on the transfer that needs to be returned on the WeChat chat interface. 2In the transfer details interface, click the refund option. 3. In the new pop-up window that appears, click Return again. Summary/Notes: The current WeChat red envelope does not support manual return. When we receive the red envelope, as long as we do not accept it, it will be returned after 24 hours.

Free api interface website: 1. UomgAPI: a platform that provides stable and fast free API services, with over 100 API interfaces; 2. free-api: provides multiple free API interfaces; 3. JSON API: provides free data API interface; 4. AutoNavi Open Platform: Provides map-related API interfaces; 5. Face recognition Face++: Provides face recognition-related API interfaces; 6. Speed data: Provides over a hundred free API interfaces, suitable for various needs In the case of data sources; 7. Aggregate data, etc.

An API interface is a specification for interaction between software components and is used to implement communication and data exchange between different applications or systems. The API interface acts as a "translator", converting the developer's instructions into computer language so that the applications can work together. Its advantages include convenient data sharing, simplified development, improved performance, enhanced security, improved productivity and interoperability.

1. Find the WeChat applet: 2. Click to search [Tencent Report Acceptance Center]. 3. Click on the option of Internet fraud. 4. Enter relevant information and screenshots. WeChat red envelope instructions: 1. If the WeChat red envelope is not collected within 24 hours, it will be returned directly. 2. WeChat red envelopes are collected by others and cannot be returned by you;

API interface types are rich and diverse, including RESTful API, SOAP API, GraphQL API, etc. RESTful API communicates through the HTTP protocol, with a simple and efficient design, which is the current mainstream Web API design style. SOAP API is based on XML, focuses on cross-language and platform interoperability, and is mostly used in large enterprises and government agencies. GraphQL API is a new query language and runtime environment that supports flexible data query and response.

WeChat is a mobile application that integrates social networking, payment, shopping and other functions, and is deeply loved by users. Among them, WeChat red envelopes, as part of the payment function, have won the favor of the majority of users for their convenience and fun. However, sometimes we may encounter situations where the wrong red envelope is sent. Although it is sometimes troublesome to return WeChat red envelopes, when using WeChat red envelopes, please be sure to check the information carefully to ensure that each sending is accurate. How to return WeChat red envelope? How to handle the return of WeChat red envelopes The return method of WeChat red envelopes mainly depends on whether the red envelope has been received. If the red envelope has not been received, there are the following handling methods: In case 1, if the other party has not received the red envelope, you can directly communicate with the other party, inform them that the wrong red envelope was sent, and ask the other party not to receive it. more than 24 hours
