L'enveloppe rouge WeChat Cash est l'un des outils marketing fournis par la plateforme marchande de paiement WeChat. Elle est profondément appréciée par les commerçants et les utilisateurs depuis son lancement. Les commerçants peuvent émettre des enveloppes rouges en espèces aux utilisateurs de WeChat Pay via cette plateforme. Une fois que l'utilisateur a reçu l'enveloppe rouge, les fonds arrivent sur son compte de changement de paiement WeChat, ce qui suscite une réponse enthousiaste aux activités marketing du commerçant dans ses opérations quotidiennes.
1. Vous n'avez pas besoin de payer le répertoire d'autorisation pour envoyer des enveloppes rouges, mais vous devez appeler l'adresse IP de l'API de l'enveloppe rouge dans le backend du commerçant, qui est l'IP de votre serveur qui initie la demande d'enveloppe rouge. . Le chemin d'opération est : [Connexion à la plateforme marchande——> Centre de produits——> Enveloppe rouge Cash——>Paramètres du produit] (Remarque : le bouton d'opération « Paramètres du produit » n'apparaîtra qu'après avoir activé l'argent liquide. fonction enveloppe rouge).
2. Un certificat Api est requis pour envoyer des enveloppes rouges.
3. Avant d'émettre des enveloppes rouges en espèces, veuillez vous assurer que vous disposez de fonds suffisants. L'argent que les autres vous paient via WeChat Pay pour acheter des choses sur votre plateforme n'est pas le même que l'argent que vous devez dépenser pour envoyer des enveloppes rouges. L'argent ici doit être rechargé séparément. Le chemin d'opération est le suivant : [Connectez-vous au commerçant. Plate-forme——>Centre de compte——> ; Gestion des fonds——>Recharge].
4. Vous pouvez emprunter des droits lors de l'envoi d'enveloppes rouges. Par exemple, le compte public A est un compte de service d'authentification de paiement WeChat et votre événement est détenu dans le compte public B (le compte d'abonnement ou le compte de service est acceptable). peut utiliser A WeChat Pay envoie des enveloppes rouges, mais l'envoi d'enveloppes rouges nécessite de connaître l'openid de l'utilisateur. Lors de l'obtention de cet openid, vous devez également emprunter le compte public A pour l'obtenir. être l'openid correspondant à A de l'utilisateur.
Préparation pré-opérationnelle, c'est-à-dire certaines configurations de la plateforme marchande de paiement WeChat, veuillez vous référer au document : https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon .php?chapter= 13_3&index=2
En fait, l'envoi d'enveloppes rouges via les comptes publics WeChat est similaire aux paiements d'entreprise via les comptes publics WeChat, je vais donc trier les paiements d'entreprise en passant. allez directement au code :
/** * 公众号发红包 * @param string $openid 用户openID * @param string $money 金额 * @param string $trade_no 订单编号 * @param string $act_name 活动名称 * @return multitype 支付结果 */ public function sendredpack($openid,$money,$trade_no,$act_name){ $config = $this->config; $data = array( 'nonce_str' => self::getNonceStr(), 'mch_billno' => $trade_no, 'mch_id' => $config['mch_id'], 'wxappid' => $config['wxappid'], 'send_name' => '江南极客', 're_openid' => $openid, 'total_amount' => $money * 100, //付款金额单位为分 'total_num' => 1, 'wishing' => '祝您天天开心!', 'client_ip' => self::getip(), 'act_name' => $act_name, 'remark' => 'From 江南极客' ); $data['sign'] = self::makeSign($data); //构造XML数据 $xmldata = self::array2xml($data); $url = 'https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack'; //发送post请求 $res = self::curl_post_ssl($url, $xmldata); if(!$res){ return array('status'=>0, 'msg'=>"Can't connect the server" ); } // 这句file_put_contents是用来查看服务器返回的结果 测试完可以删除了 //file_put_contents('./log.txt',$res,FILE_APPEND); $content = self::xml2array($res); if(strval($content['return_code']) == 'FAIL'){ return array('status'=>0, 'msg'=>strval($content['return_msg'])); } if(strval($content['result_code']) == 'FAIL'){ return array('status'=>0, 'msg'=>strval($content['err_code']).':'.strval($content['err_code_des'])); } return $content; } /** * 公众号企业支付 * @param string $openid 用户openID * @param string $money 金额 * @param string $trade_no 订单编号 * @param string $desc 付款操作说明信息(比如:提现) * @return string 支付结果 */ public function mchpay($openid,$money,$trade_no,$desc){ $config = $this->config; $data = array( 'mch_appid' => $config['wxappid'], 'mchid' => $config['mch_id'], 'nonce_str' => self::getNonceStr(), 'partner_trade_no' => $trade_no, 'openid' => $openid, 'check_name'=> 'NO_CHECK', //OPTION_CHECK不强制校验真实姓名, FORCE_CHECK:强制 NO_CHECK: 'amount' => $money * 100, //付款金额单位为分 'desc' => $desc, 'spbill_create_ip' => self::getip() ); //生成签名 $data['sign'] = self::makeSign($data); //return $config; //构造XML数据 $xmldata = self::array2xml($data); $url = 'https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers'; //发送post请求 $res = self::curl_post_ssl($url, $xmldata); if(!$res){ return array('status'=>0, 'msg'=>"Can't connect the server" ); } // 这句file_put_contents是用来查看服务器返回的结果 测试完可以删除了 //file_put_contents('./log1.txt',$res,FILE_APPEND); //付款结果分析 $content = self::xml2array($res); if(strval($content['return_code']) == 'FAIL'){ return array('status'=>0, 'msg'=>strval($content['return_msg'])); } if(strval($content['result_code']) == 'FAIL'){ return array('status'=>0, 'msg'=>strval($content['err_code']).':'.strval($content['err_code_des'])); } return $content; }
Il s'agit d'une classe encapsulée, et appeler la méthode est super simple :
include 'wxmerpay.class.php'; //引入类文件 $config = array( 'wxappid' => 'wx123456789', 'mch_id' => '1123456781', 'pay_apikey' => '1234567898765432123456789', 'api_cert' => $cert_path . '/apiclient_cert.pem', 'api_key' => $cert_path . '/apiclient_key.pem', 'rootca' => $cert_path . '/rootca.pem' ); $redpack = new WxRedpack($config); //初始化 $redpack->sendredpack($openid,$money,$trade_no,$act_name); //发红包
Est-ce si simple ? droite! C'est aussi simple que cela, mais il utilise de nombreuses fonctions et méthodes auto-encapsulées. Téléchargement du code source : http://download.csdn.net/download/sinat_35861727/9956485
Si vous le trouvez vraiment utile, veuillez lui donner un aimez et laissez un like Bonne critique, merci ! Si vous avez des questions, vous pouvez me le dire dans la zone commentaire !
Recommandations associées :
Développement de la fonction de remboursement pour le paiement WeChat
Exemples de développement PHP du paiement WeChat et du paiement Alipay
Partage de recherches sur l'interface de paiement WeChat
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!