微信紅包介面API實現(php版)

來源:互聯網
上載者:User
更多請支援:http://www.webyang.net/Html/web/article_245.html

一、紅包文檔說明

目前紅包總共分現金紅包和裂變紅包兩種。
1、現金紅包:https://pay.weixin.qq.com/wiki/doc/api/cash_coupon.php?chapter=13_5
2、裂變紅包:https://pay.weixin.qq.com/wiki/doc/api/cash_coupon.php?chapter=16_5
更多請查看:https://pay.weixin.qq.com/wiki/doc/api/cash_coupon.php
二、php介面實現
本文講解現金紅包的調用,其他的大體一樣,就不去嘗試了。
參數說明:

代碼實現:
片段一、
 
  1. /**
  2. * 支付
  3. * @param string $openid 使用者openid
  4. */
  5. publicfunction pay($re_openid)
  6. {
  7. include_once('WxPacketClass.php');
  8. $wxHongBaoHelper =newWxPacketClass($this->app_sign);
  9. $wxHongBaoHelper->setParameter("nonce_str", $this->great_rand());//隨機字串,丌長於 32 位
  10. $wxHongBaoHelper->setParameter("mch_billno", $this->app_mchid.date('YmdHis').rand(1000,9999));//訂單號(28位)
  11. $wxHongBaoHelper->setParameter("mch_id", $this->app_mchid);//商戶號
  12. $wxHongBaoHelper->setParameter("wxappid", $this->app_id);
  13. $wxHongBaoHelper->setParameter("send_name",'揚和宏科技');//紅包寄件者名稱
  14. $wxHongBaoHelper->setParameter("re_openid", $re_openid);//openid
  15. $wxHongBaoHelper->setParameter("total_amount",100);//付款金額,單位分
  16. $wxHongBaoHelper->setParameter("total_num",1);//紅包収放總人數
  17. $wxHongBaoHelper->setParameter("wishing",'給您拜個晚年,祝您晚年幸福!');//紅包祝福詫
  18. $wxHongBaoHelper->setParameter("client_ip",'127.0.0.1');//調用介面的機器 Ip 地址
  19. $wxHongBaoHelper->setParameter("act_name",'拜年紅包活動');//活勱名稱
  20. $wxHongBaoHelper->setParameter("remark",'大家快來搶!');//備忘資訊
  21. $postXml = $wxHongBaoHelper->create_hongbao_xml();
  22. $url ='https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack';
  23. $responseXml = $wxHongBaoHelper->curl_post_ssl($url, $postXml);
  24. $responseObj = simplexml_load_string($responseXml,'SimpleXMLElement', LIBXML_NOCDATA);
  25. return $responseObj->return_code;
  26. }
片段二、
 
  1. //產生紅包介面XML資訊
  2. /*
  3. ![CDATA[E1EE61A9]]
  4. ![CDATA[00100]]
  5. ![CDATA[888]]
  6. ![CDATA[wxcbda96de0b165486]]
  7. ![CDATA[send_name]]
  8. ![CDATA[onqOjjXXXXXXXXX]]
  9. ![CDATA[100]]
  10. ![CDATA[1]]
  11. ![CDATA[恭喜發財]]
  12. ![CDATA[127.0.0.1]]
  13. ![CDATA[新年紅包]]
  14. ![CDATA[act_id]]
  15. ![CDATA[新年紅包]]
  16. */
  17. function create_hongbao_xml($retcode =0, $reterrmsg ="ok"){
  18. try{
  19. $this->setParameter('sign', $this->get_sign());
  20. $commonUtil =newCommonUtil();
  21. return $commonUtil->arrayToXml($this->parameters);
  22. }catch(SDKException $e){
  23. die($e->errorMessage());
  24. }
  25. }
片段三、
 
  1. function curl_post_ssl($url, $vars, $second=30,$aHeader=array()){
  2. $ch = curl_init();
  3. //逾時時間
  4. curl_setopt($ch,CURLOPT_TIMEOUT,$second);
  5. curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
  6. //這裡設定代理,如果有的話
  7. curl_setopt($ch,CURLOPT_URL,$url);
  8. curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
  9. curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);
  10. //cert 與 key 分別屬於兩個.pem檔案
  11. curl_setopt($ch,CURLOPT_SSLCERT,dirname(__FILE__).DIRECTORY_SEPARATOR.'cert'.DIRECTORY_SEPARATOR.'apiclient_cert.pem');
  12. curl_setopt($ch,CURLOPT_SSLKEY,dirname(__FILE__).DIRECTORY_SEPARATOR.'cert'.DIRECTORY_SEPARATOR.'apiclient_key.pem');
  13. curl_setopt($ch,CURLOPT_CAINFO,dirname(__FILE__).DIRECTORY_SEPARATOR.'cert'.DIRECTORY_SEPARATOR.'rootca.pem');
  14. if( count($aHeader)>=1) curl_setopt($ch, CURLOPT_HTTPHEADER, $aHeader);
  15. curl_setopt($ch,CURLOPT_POST,1);
  16. curl_setopt($ch,CURLOPT_POSTFIELDS,$vars);
  17. $data = curl_exec($ch);
  18. if($data){
  19. curl_close($ch);
  20. return $data;
  21. }else{
  22. $error = curl_errno($ch);
  23. curl_close($ch);
  24. returnfalse;
  25. }
  26. }
代碼結構:
|~action/
| `-PacketClass.php
|~lib/
| |~cert/
| | |-apiclient_cert.pem
| | |-apiclient_key.pem
| | `-rootca.pem
| |-SdkExtraClass.php
| |-WxApi.php
| `-WxPacketClass.php
`-index.php
每個檔案都有詳細的說明。
三、效果展示

有需要源碼的可以聯絡我~

以上就介紹了紅包介面API實現(php版),包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.