Maison développement back-end tutoriel php Implémenter l'interface API de l'enveloppe rouge PHP WeChat

Implémenter l'interface API de l'enveloppe rouge PHP WeChat

Aug 14, 2020 pm 04:47 PM
api接口 Enveloppe rouge WeChat

Implémenter l'interface API de l'enveloppe rouge PHP WeChat

Tout d'abord, permettez-moi de jeter un œil à ce formulaire :

Recommandations d'apprentissage associées : programmation php (Vidéo)

Sur la base de l'interface avancée de l'enveloppe rouge WeChat, nous avons développé la version PHP de l'interface API et effectuons maintenant l'analyse principale du code.

L'interface enveloppe rouge appelle le code de la requête. Tous les paramètres de la requête sont obligatoires et correspondent au 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;
 }
Copier après la connexion

Méthode d'obtention de chaîne aléatoire :

/**
 * 生成随机数
 */  
public function great_rand(){
 $str = '1234567890abcdefghijklmnopqrstuvwxyz';
 for($i=0;$i<30;$i++){
  $j=rand(0,35);
  $t1 .= $str[$j];
 }
 return $t1; 
}
Copier après la connexion

Algorithme de signature :

/**
例如:
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(&#39;PARTNERKEY&#39;,"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());
 }
 
}
Copier après la connexion

Demande de CURL et envoi de certificat :

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.&#39;zhengshu&#39;.DIRECTORY_SEPARATOR.&#39;apiclient_cert.pem&#39;);
 curl_setopt($ch,CURLOPT_SSLKEY,dirname(__FILE__).DIRECTORY_SEPARATOR.&#39;zhengshu&#39;.DIRECTORY_SEPARATOR.&#39;apiclient_key.pem&#39;);
 curl_setopt($ch,CURLOPT_CAINFO,dirname(__FILE__).DIRECTORY_SEPARATOR.&#39;zhengshu&#39;.DIRECTORY_SEPARATOR.&#39;rootca.pem&#39;);
 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;
 }
}
Copier après la connexion

Fichier d'entrée :

@require "pay.php";
//获取用户信息
$get = $_GET[&#39;param&#39;];
$code = $_GET[&#39;code&#39;];
//判断code是否存在
if($get==&#39;access_token&#39; && !empty($code)){
 $param[&#39;param&#39;] = &#39;access_token&#39;;
 $param[&#39;code&#39;] = $code;
 $packet = new Packet();
 //获取用户openid信息
 $userinfo = $packet->_route(&#39;userinfo&#39;,$param);
 if(empty($userinfo[&#39;openid&#39;])){
  exit("NOAUTH");
 }
 //调取支付方法
 $packet->_route(&#39;wxpacket&#39;,array(&#39;openid&#39;=>$userinfo[&#39;openid&#39;]));
}else{
 $packet->_route(&#39;userinfo&#39;);
}
Copier après la connexion

Recommandations d'apprentissage associées : Vidéo de programmation

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quelle est la quantité maximale d'enveloppes rouges WeChat pouvant être envoyées ? Quelle est la quantité maximale d'enveloppes rouges WeChat pouvant être envoyées ? Feb 23, 2024 pm 04:40 PM

Quelle est la quantité maximale d’enveloppes rouges WeChat pouvant être envoyées ? Il existe une limite supérieure au nombre d'enveloppes rouges envoyées dans WeChat, et certains utilisateurs ne connaissent pas clairement le nombre maximum d'enveloppes rouges pouvant être envoyées sur WeChat. Le montant maximum aux dates non spéciales est de 200. Vient ensuite une introduction au nombre maximum d'enveloppes rouges que l'éditeur apporte aux utilisateurs. Les utilisateurs intéressés peuvent venir y jeter un œil ! Tutoriel d'utilisation de WeChat Comment définir l'image d'arrière-plan du statut WeChat Réponse : 200 yuans Détails : 1. La limite supérieure du montant de l'enveloppe rouge WeChat : 200. Chaque personne ne peut envoyer qu'un maximum de 200 yuans dans des enveloppes rouges WeChat à chaque fois. 2. Montant spécial de l'enveloppe rouge : le 20 mai de chaque année, les utilisateurs peuvent envoyer des enveloppes rouges avec une limite supérieure de 520 yuans.

Guide de l'interface API d'envoi d'e-mails en PHP Guide de l'interface API d'envoi d'e-mails en PHP May 21, 2023 pm 12:12 PM

Avec la popularité du courrier électronique dans notre quotidien, l’envoi d’e-mails est devenu une fonctionnalité essentielle dans de nombreuses applications. En tant que langage de développement Web populaire, PHP fournit également une interface API d'envoi d'e-mails correspondante. Cet article présentera l'interface API d'envoi d'e-mails en PHP aux débutants et aux développeurs, notamment comment configurer le serveur de messagerie, comment utiliser les fonctions de messagerie intégrées de PHP et comment utiliser une bibliothèque d'envoi d'e-mails tierce. 1. Configurez le serveur de messagerie Avant d'utiliser PHP pour envoyer du courrier, vous devez d'abord configurer un serveur SMTP.

Comment retourner une enveloppe rouge WeChat ? Comment rejeter une enveloppe rouge WeChat et la restituer immédiatement à l'autre partie ? Comment retourner une enveloppe rouge WeChat ? Comment rejeter une enveloppe rouge WeChat et la restituer immédiatement à l'autre partie ? Feb 22, 2024 pm 04:43 PM

L'enveloppe rouge WeChat actuelle ne prend pas en charge le retour manuel. Modèle applicable du tutoriel : iPhone13 Système : iOS15.5 version : WeChat 8.0.19 Analyse 1 L'enveloppe rouge WeChat actuelle ne prend pas en charge le retour manuel Pour l'enveloppe rouge WeChat qui n'a pas été réclamée, le système WeChat la renverra automatiquement. le compte d'origine après 24 heures, donc quand Si nous souhaitons retourner l'enveloppe rouge après l'avoir reçue, tant que nous ne l'acceptons pas, elle sera automatiquement restituée après 24 heures. Supplément : Comment retourner un transfert WeChat 1 Cliquez sur le transfert qui doit être restitué sur l'interface de chat WeChat. 2Dans l'interface des détails du transfert, cliquez sur l'option de remboursement. 3. Dans la nouvelle fenêtre contextuelle qui apparaît, cliquez à nouveau sur Retour. Résumé/Remarques : L'enveloppe rouge WeChat actuelle ne prend pas en charge le retour manuel. Lorsque nous recevons l'enveloppe rouge, tant que nous ne l'acceptons pas, elle sera retournée après 24 heures.

Quels sont les sites Web à interface API gratuite ? Quels sont les sites Web à interface API gratuite ? Jan 05, 2024 am 11:33 AM

Site Web d'interface API gratuite : 1. UomgAPI : une plate-forme qui fournit des services API gratuits stables et rapides, avec plus de 100 interfaces API ; 2. free-api : fournit plusieurs interfaces API gratuites ; 3. API JSON : fournit une interface API de données gratuite ; . AutoNavi Open Platform : fournit des interfaces API liées aux cartes ; 5. Reconnaissance faciale Face++ : fournit des interfaces API liées à la reconnaissance faciale ; 6. Speed ​​​​Data : fournit plus d'une centaine d'interfaces API gratuites, adaptées à divers besoins dans le cas des données ; sources ; 7. Données agrégées, etc.

A quoi sert l'interface API ? A quoi sert l'interface API ? Apr 23, 2024 pm 01:51 PM

Une interface API est une spécification d'interaction entre des composants logiciels et est utilisée pour mettre en œuvre la communication et l'échange de données entre différentes applications ou systèmes. L'interface API agit comme un « traducteur », convertissant les instructions du développeur en langage informatique afin que les applications puissent fonctionner ensemble. Ses avantages incluent un partage pratique des données, un développement simplifié, des performances améliorées, une sécurité renforcée, une productivité et une interopérabilité améliorées.

Quels sont les principaux types d'interfaces API ? Quels sont les principaux types d'interfaces API ? Apr 23, 2024 pm 01:57 PM

Il existe différents types d'interfaces API, notamment l'API RESTful, l'API SOAP, l'API GraphQL, etc. L'API RESTful communique via le protocole HTTP, avec une conception simple et efficace, qui est le style de conception actuel de l'API Web. L'API SOAP est basée sur XML, se concentre sur l'interopérabilité entre les langues et les plates-formes et est principalement utilisée dans les grandes entreprises et les agences gouvernementales. L'API GraphQL est un nouveau langage de requête et environnement d'exécution qui prend en charge les requêtes et réponses de données flexibles.

Étapes détaillées pour renvoyer les enveloppes rouges WeChat Étapes détaillées pour renvoyer les enveloppes rouges WeChat Mar 25, 2024 am 11:21 AM

1. Recherchez l'applet WeChat : 2. Cliquez pour rechercher [Tencent Report Acceptance Center]. 3. Cliquez sur l'option de fraude sur Internet. 4. Saisissez les informations pertinentes et les captures d'écran. Instructions pour l'enveloppe rouge WeChat : 1. Si l'enveloppe rouge WeChat n'est pas récupérée dans les 24 heures, elle sera renvoyée directement. 2. Les enveloppes rouges WeChat sont collectées par d'autres et ne peuvent pas être retournées par vous ;

Développer la documentation de l'API : un guide étape par étape des interfaces API PHP Développer la documentation de l'API : un guide étape par étape des interfaces API PHP Jan 22, 2024 am 11:20 AM

Avec la popularité croissante des applications Web, les API (Application Programming Interfaces) deviennent de plus en plus importantes et jouent un rôle de plus en plus important dans le développement Web. WebAPI est une technologie qui permet aux utilisateurs d'accéder à des applications via Internet. Il s'agit d'un outil de base pour combiner différentes applications. PHP est un langage de programmation largement utilisé, notamment dans le domaine du développement web. Les développeurs peuvent permettre à d'autres applications d'utiliser leurs fonctionnalités d'application en développant des interfaces API PHP. Pour y parvenir

See all articles