この記事では、php に基づいたアプリ WeChat 支払いインターフェイスの開発を主に紹介します。これには特定の参考値があります。必要な友達はそれを参照できます。
加盟店の支払い情報を定義します。
define(APPID, $payment) [ 'appId']); // appid
define(APPSECRET, $payment ['appSecret']); // appSecret
define(MCHID, $payment ['partnerId']) // 販売者ID
define( KEY , $payment ['partnerKey']); // 暗号化された文字列を渡します
define(NOTIFY_URL, $return_url); // コールバック URL が成功すると、関数
//签名所需 $signArray = array( 'appid' => $payment['appId'], //appid 'mch_id' => $payment['partnerId'], 'nonce_str' => self::createNoncestr(), 'out_trade_no' => $order['order_sn'], 'body' => $order['body'], "total_fee" => $order ['order_amount'], "notify_url" => $return_url, "spbill_create_ip" => $_SERVER["REMOTE_ADDR"], "trade_type" => "APP", );
署名関数が生成されます
$sign=self::getSign($signArray); //统一下单 $goPay = array( 'appid' => $payment['appId'], //appid 'mch_id' => $payment['partnerId'], 'nonce_str' => $signArray['nonce_str'], //生成随机字符串 'sign' => $sign, 'out_trade_no' => $order['order_sn'], "total_fee" => $order ['order_amount'], 'body' => $order['body'], "notify_url" => $return_url, "spbill_create_ip" => $_SERVER["REMOTE_ADDR"], "trade_type" => "APP", ); //转化xml $goPayXml=self::arrayToXml($goPay); $result=self::sendPrePayCurl($goPayXml); return $result;
//随机生成字符串 public function createNoncestr($length = 32) { $chars = "abcdefghijklmnopqrstuvwxyz0123456789"; $str = ""; for ($i = 0; $i < $length; $i++) { $str.= substr($chars, mt_rand(0, strlen($chars) - 1), 1); } return $str; }
リクエストされたリクエスト パラメータアセンブリ xml
/** * 作用:生成签名 */ public function getSign($Obj) { foreach ($Obj as $k => $v) { //if($k == 'code') continue; //if($k == 'from') continue; $Parameters[$k] = $v; } //签名步骤一:按字典序排序参数 ksort($Parameters); $String = self::formatBizQueryParaMap($Parameters, false); //echo '【string1】'.$String.'</br>'; //签名步骤二:在string后加入KEY $String = $String . "&key=" . KEY; //echo "【string2】".$String."</br>"; //签名步骤三:MD5加密 $String = md5($String); //echo "【string3】 ".$String."</br>"; //签名步骤四:所有字符转为大写 $result_ = strtoupper($String); //echo "【result】 ".$result_."</br>"; return $result_; }
//格式化签名所需参数 public function formatBizQueryParaMap($paraMap, $urlencode) { $buff = ""; ksort($paraMap); foreach ($paraMap as $k => $v) { if ($urlencode) { $v = urlencode($v); } //$buff .= strtolower($k) . "=" . $v . "&"; $buff .= $k . "=" . $v . "&"; } $reqPar; if (strlen($buff) > 0) { $reqPar = substr($buff, 0, strlen($buff) - 1); } return $reqPar; }
関連する推奨事項:
php 開発ムービー Web サイトのビデオチュートリアルコースの紹介 (iQiyi の模倣)以上がPHP に基づいてアプリ WeChat 支払いインターフェースを開発するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。