ホームページ バックエンド開発 PHPチュートリアル PHP WeChat 赤い封筒 API インターフェイスを実装する

PHP WeChat 赤い封筒 API インターフェイスを実装する

Aug 14, 2020 pm 04:47 PM
APIインターフェース WeChatの赤い封筒

PHP WeChat 赤い封筒 API インターフェイスを実装する

まず、このフォームを見てみましょう:

関連する学習の推奨事項: php プログラミング(ビデオ)

# WeChat の高度な赤い封筒インターフェイスに基づいて、API インターフェイスの PHP バージョンが開発され、現在、メイン コード分析が実行されています。

赤いエンベロープ インターフェイスはリクエスト コードを呼び出します。すべてのリクエスト パラメータは必須であり、ドキュメントに対応しています:

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;
 }
ログイン後にコピー

ランダムな文字列を取得するメソッド:

/**
 * 生成随机数
 */  
public function great_rand(){
 $str = '1234567890abcdefghijklmnopqrstuvwxyz';
 for($i=0;$i<30;$i++){
  $j=rand(0,35);
  $t1 .= $str[$j];
 }
 return $t1; 
}
ログイン後にコピー

署名アルゴリズム:

/**
例如:
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());
 }
 
}
ログイン後にコピー

CURL リクエストと証明書の送信:

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;
 }
}
ログイン後にコピー

エントリ ファイル:

@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;);
}
ログイン後にコピー

関連する学習に関する推奨事項:

プログラミング ビデオ

以上がPHP WeChat 赤い封筒 API インターフェイスを実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

送信できる WeChat 赤い封筒の最大量はいくらですか? 送信できる WeChat 赤い封筒の最大量はいくらですか? Feb 23, 2024 pm 04:40 PM

送信できる WeChat 赤い封筒の最大量はいくらですか? WeChatで送信できる赤い封筒の量には上限があり、一部のユーザーはWeChatで送信できる赤い封筒の最大量について明確にしていません。特別日以外の最大金額は 200 です。次に、編集者がユーザーに提供する赤い封筒の最大数について紹介しますので、興味のあるユーザーは見に来てください。 WeChat 使い方チュートリアル WeChat ステータス背景画像の設定方法 答え: 200 元 詳細: 1. WeChat 紅包金額の上限: 200。 WeChat 紅包で送金できるのは 1 人あたり最大 200 元までです。 2.特別紅包金額:毎年5月20日、ユーザーは520元を上限として紅包を送ることができます。

PHP の電子メール送信 API インターフェイス ガイド PHP の電子メール送信 API インターフェイス ガイド May 21, 2023 pm 12:12 PM

私たちの日常生活における電子メールの普及により、電子メール送信は多くのアプリケーションで不可欠な機能になりました。人気のある Web 開発言語として、PHP は、対応する電子メール送信 API インターフェイスも提供します。この記事では、メールサーバーの設定方法、PHP の組み込みメール関数の使用方法、サードパーティのメール送信ライブラリの使用方法など、PHP のメール送信 API インターフェイスを初心者や開発者に紹介します。 1. メール サーバーを構成する PHP を使用してメールを送信する前に、まず SMTP サーバーを構成する必要があります。

WeChat の赤い封筒を返送する方法 WeChat の赤い封筒を拒否し、すぐに相手に返送する方法は何ですか? WeChat の赤い封筒を返送する方法 WeChat の赤い封筒を拒否し、すぐに相手に返送する方法は何ですか? Feb 22, 2024 pm 04:43 PM

現在の WeChat 赤い封筒は手動返信をサポートしていません。チュートリアル 適用モデル: iPhone13 システム: iOS15.5 バージョン: WeChat 8.0.19 分析 1 現在の WeChat 赤い封筒は手動返却をサポートしていません. まだ請求されていない WeChat 赤い封筒については、WeChat システムは自動的に元のアカウントに返却します赤い封筒を受け取った後に返却したい場合は、当社が受け取りを拒否しない限り、24時間後に自動的に返却されます。補足: WeChat 転送の返送方法 1 WeChat チャット インターフェイスで、返送する必要がある転送をクリックします。 2転送の詳細インターフェイスで、返金オプションをクリックします。 3. 表示される新しいポップアップ ウィンドウで、もう一度 [戻る] をクリックします。要約/注意事項: 現在の WeChat の赤い封筒は手動での返送をサポートしていません。赤い封筒を受け取った場合、受け取らない限り、24 時間後に返送されます。

無料の API インターフェイス Web サイトとは何ですか? 無料の API インターフェイス Web サイトとは何ですか? Jan 05, 2024 am 11:33 AM

無料 API インターフェイス Web サイト: 1. UomgAPI: 100 を超える API インターフェイスを備えた、安定した高速な無料 API サービスを提供するプラットフォーム。 2. free-api: 複数の無料 API インターフェイスを提供します。 3. JSON API: 無料のデータ API インターフェイスを提供します。 AutoNavi Open Platform: 地図関連の API インターフェイスを提供します。 5. 顔認識 Face++: 顔認識関連の API インターフェイスを提供します。 6. スピード データ: さまざまなニーズに適した無料の API インターフェイスを提供します。 7. データの集計など。

API インターフェースは何のためにあるのでしょうか? API インターフェースは何のためにあるのでしょうか? Apr 23, 2024 pm 01:51 PM

API インターフェイスは、ソフトウェア コンポーネント間の対話のための仕様であり、異なるアプリケーションまたはシステム間の通信とデータ交換を実装するために使用されます。 API インターフェイスは「翻訳者」として機能し、開発者の指示をコンピュータ言語に変換して、アプリケーションが連携できるようにします。その利点には、便利なデータ共有、簡素化された開発、向上したパフォーマンス、強化されたセキュリティ、向上した生産性および相互運用性が含まれます。

API インターフェースの主な種類は何ですか? API インターフェースの主な種類は何ですか? Apr 23, 2024 pm 01:57 PM

API インターフェースの種類は豊富で多様で、RESTful API、SOAP API、GraphQL API などが含まれます。 RESTful API は、現在の主流の Web API 設計スタイルであるシンプルで効率的な設計で、HTTP プロトコルを通じて通信します。 SOAP API は XML に基づいており、言語間およびプラットフォーム間の相互運用性に重点を置いており、主に大企業や政府機関で使用されています。 GraphQL API は、柔軟なデータ クエリと応答をサポートする新しいクエリ言語およびランタイム環境です。

WeChat 赤い封筒を返送するための詳細な手順 WeChat 赤い封筒を返送するための詳細な手順 Mar 25, 2024 am 11:21 AM

1. WeChat アプレットを見つけます。 2. クリックして [Tencent Report Acceptance Center] を検索します。 3. インターネット詐欺のオプションをクリックします。 4. 関連情報とスクリーンショットを入力します。 WeChat 赤い封筒の手順: 1. WeChat 赤い封筒が 24 時間以内に回収されない場合、直接返送されます。 2. WeChat の赤い封筒は他人が収集したものであり、お客様が返却することはできません。

API ドキュメントの開発: PHP API インターフェイスのステップバイステップ ガイド API ドキュメントの開発: PHP API インターフェイスのステップバイステップ ガイド Jan 22, 2024 am 11:20 AM

Web アプリケーションの人気が高まるにつれて、API (アプリケーション プログラミング インターフェイス) の重要性がますます高まっており、Web 開発においてますます重要な役割を果たしています。 WebAPI は、ユーザーがインターネット経由でアプリケーションにアクセスできるようにする技術で、さまざまなアプリケーションを組み合わせるための基本ツールです。 PHP は、特に Web 開発の分野で広く使用されているプログラミング言語です。開発者は、PHP API インターフェイスを開発することで、他のアプリケーションがアプリケーションの機能を使用できるようにすることができます。これを達成するために

See all articles