


Implémentation du code PHP de paiement d'entreprise de développement WeChat
Le but de la rédaction de cet article est principalement dû au fait que le SDK fourni par la plateforme publique WeChat ne fournit pas d'implémentation SDK de cette fonction
En fait, l'implémentation finale repose toujours sur le développement de la plateforme publique WeChat. documents et SDK.
Scénarios d'application pour les paiements d'entreprise : les comptes officiels paient les utilisateurs qu'ils ont suivis, comme le traitement des remboursements, les règlements financiers, etc.
Permettez-moi d'abord de parler de l'idée de mise en œuvre :
Installez-le automatiquement dans le SDK Étendez le composant WxMchPay basé sur la bibliothèque de classes pour réaliser l'expansion des fonctions de paiement de l'entreprise.
Sans plus tarder, passons au code. Voici les composants qui héritent du SDK pour implémenter le paiement d'entreprise :
Référence du paramètre $parameters : Documentation de l'API de paiement d'entreprise
<?php // 引入SDK import('Common.Util.WxPay'); /** * 微信企业付款操作类 * Author : Max.wen * DateTime: <15/9/16 11:00> */ class WxMchPay extends Wxpay_client_pub { /** * API 参数 * @var array * 'mch_appid' # 公众号APPID * 'mchid' # 商户号 * 'device_info' # 设备号 * 'nonce_str' # 随机字符串 * 'partner_trade_no' # 商户订单号 * 'openid' # 收款用户openid * 'check_name' # 校验用户姓名选项 针对实名认证的用户 * 're_user_name' # 收款用户姓名 * 'amount' # 付款金额 * 'desc' # 企业付款描述信息 * 'spbill_create_ip' # Ip地址 * 'sign' # 签名 */ public $parameters = []; public function __construct() { $this->url = 'https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers'; $this->curl_timeout = WxPayConf_pub::CURL_TIMEOUT; } /** * 生成请求xml数据 * @return string */ public function createXml() { $this->parameters['mch_appid'] = WxPayConf_pub::APPID; $this->parameters['mchid'] = WxPayConf_pub::MCHID; $this->parameters['nonce_str'] = $this->createNoncestr(); $this->parameters['sign'] = $this->getSign($this->parameters); return $this->arrayToXml($this->parameters); } /** * 作用:使用证书,以post方式提交xml到对应的接口url */ function postXmlSSLCurl($xml,$url,$second=30) { $ch = curl_init(); //超时时间 curl_setopt($ch,CURLOPT_TIMEOUT,$second); //这里设置代理,如果有的话 //curl_setopt($ch,CURLOPT_PROXY, '8.8.8.8'); //curl_setopt($ch,CURLOPT_PROXYPORT, 8080); curl_setopt($ch,CURLOPT_URL, $url); curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE); curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE); //设置header curl_setopt($ch,CURLOPT_HEADER,FALSE); //要求结果为字符串且输出到屏幕上 curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE); //设置证书 curl_setopt($ch,CURLOPT_CAINFO, WxPayConf_pub::SSLROOTCA_PATH); //使用证书:cert 与 key 分别属于两个.pem文件 //默认格式为PEM,可以注释 curl_setopt($ch,CURLOPT_SSLCERTTYPE,'PEM'); curl_setopt($ch,CURLOPT_SSLCERT, WxPayConf_pub::SSLCERT_PATH); //默认格式为PEM,可以注释 curl_setopt($ch,CURLOPT_SSLKEYTYPE,'PEM'); curl_setopt($ch,CURLOPT_SSLKEY, WxPayConf_pub::SSLKEY_PATH); //post提交方式 curl_setopt($ch,CURLOPT_POST, true); curl_setopt($ch,CURLOPT_POSTFIELDS,$xml); $data = curl_exec($ch); //返回结果 if($data){ curl_close($ch); return $data; } else { $error = curl_errno($ch); echo "curl出错,错误码:$error"."<br>"; echo "<a href='http://curl.haxx.se/libcurl/c/libcurl-errors.html'>错误原因查询</a></br>"; curl_close($ch); return false; } } }
Implémentation de la fonction de la couche contrôleur :
<?php /** * Author : Max.wen * DateTime: <15/9/20 16:47> */ namespace Home\Controller; class TestController extends CommonController { /** * 企业付款测试 */ public function rebate() { import('Common.Util.WxMchPay'); $mchPay = new \WxMchPay(); // 用户openid $mchPay->setParameter('openid', 'oy2lbszXkgvlEKThrzqEziKEBzqU'); // 商户订单号 $mchPay->setParameter('partner_trade_no', 'test-'.time()); // 校验用户姓名选项 $mchPay->setParameter('check_name', 'NO_CHECK'); // 企业付款金额 单位为分 $mchPay->setParameter('amount', 100); // 企业付款描述信息 $mchPay->setParameter('desc', '开发测试'); // 调用接口的机器IP地址 自定义 $mchPay->setParameter('spbill_create_ip', '127.0.0.1'); # getClientIp() // 收款用户姓名 // $mchPay->setParameter('re_user_name', 'Max wen'); // 设备信息 // $mchPay->setParameter('device_info', 'dev_server'); $response = $mchPay->postXmlSSL(); if( !empty($response) ) { $data = simplexml_load_string($response, null, LIBXML_NOCDATA); echo json_encode($data); }else{ echo json_encode( array('return_code' => 'FAIL', 'return_msg' => 'transfers_接口出错', 'return_ext' => array()) ); } } }
Après avoir terminé les deux parties de code ci-dessus, vous pouvez essentiellement appeler l'API de paiement d'entreprise avec succès.
Exemple de structure de données du résultat renvoyé :
{ "return_code": "SUCCESS", "return_msg": { }, "mch_appid": "wx519cae424099ed6b", "mchid": "1228636402", "device_info": { }, "nonce_str": "qjupk84q4iqxkb578hb5h2qiatgcwxwg", "result_code": "SUCCESS", "partner_trade_no": "test-1442801966", "payment_no": "1000018301201509210739170397", "payment_time": "2015-09-21 10:19:26" }
Problèmes possibles :
1. Erreur de certificat CA
Dans WxMchPay, vous pouvez voir, J'ai remplacé la méthode postXmlSSLCurl() de Wxpay_client_pub dans le SDK
Parce que cette méthode dans le SDK par défaut n'est pas livrée avec un certificat CA lors d'une requête CURL POST.
En comparaison, il y a beaucoup
curl_setopt($ch,CURLOPT_CAINFO, WxPayConf_pub::SSLROOTCA_PATH);
La fonction est de joindre le certificat CA lors de la demande.
2. Les opérations de transfert vers le même utilisateur sont trop fréquentes, veuillez réessayer plus tard
Cette erreur appartient aux limitations de WeChat. serveur, restrictions spécifiques Il n'y a aucune explication sur la fréquence, mais après des tests réels, elle est d'environ 1 minute.
Vous devez donc faire plus attention lors du développement.
Pour plus d'articles liés à la mise en œuvre du code PHP de paiement des entreprises de développement WeChat, veuillez faire attention au site Web PHP chinois !

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

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 !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

PHP est un langage de script open source largement utilisé dans le développement Web et la programmation côté serveur, notamment dans le développement de WeChat. Aujourd'hui, de plus en plus d'entreprises et de développeurs commencent à utiliser PHP pour le développement de WeChat, car il est devenu un langage de développement vraiment facile à apprendre et à utiliser. Dans le développement de WeChat, le cryptage et le décryptage des messages sont une question très importante car ils impliquent la sécurité des données. Pour les messages sans méthodes de cryptage et de décryptage, les pirates peuvent facilement obtenir les données, ce qui constitue une menace pour les utilisateurs.

Avec la popularité de WeChat, de plus en plus d’entreprises commencent à l’utiliser comme outil marketing. La fonction de messagerie de groupe WeChat est l'un des moyens importants permettant aux entreprises de mener du marketing WeChat. Cependant, si vous comptez uniquement sur l’envoi manuel, il s’agit d’une tâche extrêmement longue et laborieuse pour les spécialistes du marketing. Il est donc particulièrement important de développer un outil de messagerie de masse WeChat. Cet article présentera comment utiliser PHP pour développer des outils d'envoi de masse WeChat. 1. Travail de préparation Pour développer les outils d'envoi de masse WeChat, nous devons maîtriser les points techniques suivants : Connaissance de base du développement de la plateforme publique PHP WeChat Outils de développement : Sub

Dans le développement des comptes publics WeChat, la gestion des balises utilisateur est une fonction très importante, qui permet aux développeurs de mieux comprendre et gérer leurs utilisateurs. Cet article explique comment utiliser PHP pour implémenter la fonction de gestion des balises utilisateur WeChat. 1. Obtenez l'openid de l'utilisateur WeChat Avant d'utiliser la fonction de gestion des balises utilisateur WeChat, nous devons d'abord obtenir l'openid de l'utilisateur. Dans le développement des comptes publics WeChat, il est courant d'obtenir l'openid via l'autorisation de l'utilisateur. Une fois l'autorisation de l'utilisateur terminée, nous pouvons obtenir l'utilisateur via le code suivant

Alors que WeChat devient un outil de communication de plus en plus important dans la vie des gens, sa fonction de messagerie agile est rapidement privilégiée par un grand nombre d'entreprises et de particuliers. Pour les entreprises, développer WeChat en une plate-forme marketing est devenu une tendance, et l'importance du développement de WeChat est progressivement devenue plus importante. Parmi eux, la fonction d'envoi de groupe est encore plus largement utilisée. Alors, en tant que programmeur PHP, comment implémenter des enregistrements d'envoi de messages de groupe ? Ce qui suit vous donnera une brève introduction. 1. Comprendre les connaissances en développement liées aux comptes publics WeChat. Avant de comprendre comment mettre en œuvre des enregistrements d'envoi de messages de groupe, je

WeChat est actuellement l'une des plateformes sociales comptant la plus grande base d'utilisateurs au monde. Avec la popularité de l'Internet mobile, de plus en plus d'entreprises commencent à prendre conscience de l'importance du marketing WeChat. Lors du marketing WeChat, le service client est un élément crucial. Afin de mieux gérer la fenêtre de discussion du service client, nous pouvons utiliser le langage PHP pour le développement de WeChat. 1. Introduction au développement PHP WeChat PHP est un langage de script open source côté serveur largement utilisé dans le domaine du développement Web. En combinaison avec l'interface de développement fournie par la plateforme publique WeChat, nous pouvons utiliser le langage PHP pour mener WeChat

Dans le développement des comptes publics WeChat, la fonction de vote est souvent utilisée. La fonction de vote est un excellent moyen pour les utilisateurs de participer rapidement aux interactions, et c'est également un outil important pour organiser des événements et recueillir des opinions. Cet article vous présentera comment utiliser PHP pour implémenter la fonction de vote WeChat. Obtenez l'autorisation du compte officiel WeChat. Tout d'abord, vous devez obtenir l'autorisation du compte officiel WeChat. Sur la plateforme publique WeChat, vous devez configurer l'adresse API du compte public WeChat, le compte officiel et le token correspondant au compte public. Dans le processus de développement en langage PHP, nous devons utiliser le PH officiellement fourni par WeChat

Avec la popularité de l'Internet mobile, de plus en plus de personnes utilisent WeChat comme logiciel social, et la plateforme ouverte WeChat a également apporté de nombreuses opportunités aux développeurs. Ces dernières années, avec le développement de la technologie de l’intelligence artificielle, la technologie de reconnaissance vocale est progressivement devenue l’une des technologies les plus populaires dans le développement de terminaux mobiles. Dans le développement de WeChat, la manière de mettre en œuvre la reconnaissance vocale est devenue une préoccupation pour de nombreux développeurs. Cet article expliquera comment utiliser PHP pour développer des applications WeChat afin d'implémenter des fonctions de reconnaissance vocale. 1. Principes de la reconnaissance vocale Avant de présenter comment mettre en œuvre la reconnaissance vocale, comprenons d'abord le langage

Avec le développement d’Internet et des appareils mobiles intelligents, WeChat est devenu un élément indispensable dans les domaines social et marketing. Dans cette ère de plus en plus numérique, la manière d'utiliser PHP pour le développement de WeChat est devenue la préoccupation de nombreux développeurs. Cet article présente principalement les points de connaissances pertinents sur la façon d'utiliser PHP pour le développement WeChat, ainsi que certains conseils et précautions. 1. Préparation de l'environnement de développement Avant de développer WeChat, vous devez d'abord préparer l'environnement de développement correspondant. Plus précisément, vous devez installer l'environnement d'exploitation PHP et la plateforme publique WeChat
