wemall-mobile は、WeMall に基づいた Android アプリ モールです。元のモール ディレクトリにインターフェイス ファイルをアップロードするだけで、クライアントのカスタマイズと変更が可能です。この記事では、Wemall アプリ モールのソース コード Android の Alipay インターフェイスのパブリック関数を共有します。このクラスは、技術者が参照および学習するためのリクエストおよび通知リターン ファイルによって呼び出されるパブリック関数のコア処理ファイルです。
次のコードは、マーチャントのテストを容易にするために提供されているサンプル コードです。マーチャントは、独自の Web サイトのニーズに応じて、このコードを作成することができます。このコードは、学習および研究のためだけに使用する必要はありません。 Alipay インターフェイスは参考としてのみ提供されています。
「パラメータ = パラメータ値」のパターンに従って、「&」文字を使用して配列のすべての要素を文字列に連結します
<?php <br />
<br>
関数 createLinkstring($para) {<br>
$arg = "";<br>
While (list ($key, $val) = each ($para)) {<br>
$arg.=$key."=".$val."&";<br>
}<br>
//最後の & 文字を削除 <br>
$arg = substr($arg,0,count($arg)-2);<br>
<br>
//エスケープ文字がある場合は、エスケープ文字を削除します <br>
If(get_magic_quotes_gpc()){$arg = ストリップスラッシュ($arg);}<br>
<br>
$arg を返します;<br>
}<br>
/**<br>
* 「パラメータ = パラメータ値」のパターンに従って、配列のすべての要素を「&」文字を使用して文字列に連結し、その文字列に対して urlencode エンコードを実行します<br>
* @param $para 結合される配列<br>
* スプライシングが完了したら文字列を返します<br>
*/<br>
関数 createLinkstringUrlencode($para) {<br>
$arg = "";<br>
While (list ($key, $val) = each ($para)) {<br>
$arg.=$key."=".urlencode($val)."&";<br>
}<br>
//最後の & 文字を削除 <br>
$arg = substr($arg,0,count($arg)-2);<br>
<br>
//エスケープ文字がある場合は、エスケープ文字を削除します <br>
If(get_magic_quotes_gpc()){$arg = ストリップスラッシュ($arg);}<br>
<br>
$arg を返します;<br>
}<br>
/**<br>
*配列内のnull値と署名パラメータを削除します<br>
* @param $para 署名パラメータグループ<br>
* return null 値と署名パラメータを削除した後の新しい署名パラメータ グループ<br>
*/<br>
関数 paraFilter($para) {<br>
$para_filter = array();<br>
While (list ($key, $val) = each ($para)) {<br>
If($key == "sign" || $key == "sign_type" || $val == "")Continue;<br>
それ以外
}<br>
$para_filter を返します;<br>
}<br>
/**<br>
* 配列を並べ替えます<br>
* @param $para ソート前の配列<br>
* ソートされた配列を返す<br>
*/<br>
関数 argSort($para) {<br>
ksort($para);<br>
リセット($para);<br>
$para を返します;<br>
}<br>
/**<br>
* テストを容易にするためにログを書き込みます (Web サイトの要件に応じて、データベースに保存するレコードを変更することもできます) <br>
* 注: サーバーは fopen 構成を有効にする必要があります<br>
* @param $word ログに書き込むテキスト内容 デフォルト値: 空の値<br>
*/<br>
関数 logResult($word='') {<br>
$fp = fopen("log.txt","a");<br>
群れ($fp, LOCK_EX) ;<br>
fwrite($fp,"実行日:".strftime("%Y%m%d%H%M%S",time())."n".$word."n");<br>
群れ($fp, LOCK_UN);<br>
fclose($fp);<br>
}<br>
<br>
/**<br>
* リモートからデータを取得、POST モード<br>
* 注: <br>
※1.Crulを使用するには、サーバー内のphp.iniファイルの設定を変更する必要があります。php_curl.dllを見つけて、その前の「;」を削除してください。
* 2. フォルダー内の cacert.pem は SSL 証明書です。現在のデフォルトのパスは getcwd().'\cacert.pem'<br> であることを確認してください。
* @param $url は URL のフルパスアドレスを指定します<br>
* @param $cacert_url は現在の作業ディレクトリの絶対パスを指定します<br>
* @param $para リクエストされたデータ<br>
* @param $input_charset エンコード形式。デフォルト値: 空 <br>* リモート出力データを返す<br>
*/<br>
function getHttpResponsePOST($url, $cacert_url, $para, $input_charset = '') {<br>
<br>
If (trim($input_charset) != '') {<br>
$url = $url."_input_charset=".$input_charset;<br>
}<br>
$curl =curl_init($url);<br>
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);//SSL 証明書認証<br>
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);// 厳格な認証<br>
curl_setopt($curl, CURLOPT_CAINFO,$cacert_url);//証明書アドレス<br>
curl_setopt($curl, CURLOPT_HEADER, 0); // HTTP ヘッダーをフィルターします<br>;
curl_setopt($curl,CURLOPT_RETURNTRANSFER, 1); // 出力結果を表示します <br>
curl_setopt($curl,CURLOPT_POST,true); // ポスト転送データ<br>;
curl_setopt($curl,CURLOPT_POSTFIELDS,$para); // 転送後のデータ<br>
$responseText =curl_exec($curl);<br>
//var_dump(curl_error($curl) );//curl の実行中に例外が発生した場合、このスイッチをオンにして例外の内容を表示できます<br>
curl_close($curl);<br>
<br>
$responseText を返します;<br>
}<br>
<br>
/**<br>
*リモートデータ取得、GETモード<br>
* 注: <br>
※1.Crulを使用するには、サーバー内のphp.iniファイルの設定を変更する必要があります。php_curl.dllを見つけて、その前の「;」を削除してください。
* 2. フォルダー内の cacert.pem は SSL 証明書です。現在のデフォルトのパスは getcwd().'\cacert.pem'<br> であることを確認してください。
* @param $url は URL のフルパスアドレスを指定します<br>
* @param $cacert_url は現在の作業ディレクトリの絶対パスを指定します<br>
* リモート出力データを返す<br>
*/<br>
関数 getHttpResponseGET($url,$cacert_url) {<br>
$curl =curl_init($url);<br>
curl_setopt($curl, CURLOPT_HEADER, 0); // HTTP ヘッダーをフィルターします<br>;
curl_setopt($curl,CURLOPT_RETURNTRANSFER, 1); // 出力結果を表示します <br>
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);//SSL 証明書認証<br>
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);// 厳格な認証<br>
curl_setopt($curl, CURLOPT_CAINFO,$cacert_url);//証明書アドレス<br>
$responseText =curl_exec($curl);<br>
//var_dump(curl_error($curl) );//curl の実行中に例外が発生した場合、このスイッチをオンにして例外の内容を表示できます<br>
curl_close($curl);<br>
<br>
$responseText を返します;<br>
}<br>
<br>
/**<br>
* 複数の文字エンコーディング方法を実装します<br>
* @param $input エンコードする必要がある文字列<br>
* @param $_output_charset 出力エンコード形式<br>
* @param $_input_charset 入力エンコード形式<br>
* エンコードされた文字列を返します<br>
*/<br>
関数 charsetEncode($input,$_output_charset,$_input_charset) {<br>
$output = "";<br>
If(!isset($_output_charset) )$_output_charset = $_input_charset;<br>
If($_input_charset == $_output_charset || $input ==null ) {<br>
$output = $input;<br>
elseif (function_exists("mb_convert_encoding")) {<br>
$output = mb_convert_encoding($input,$_output_charset,$_input_charset);<br>
elseif(function_exists("iconv")) {<br>
$output = iconv($_input_charset,$_output_charset,$input);<br>
} else die("申し訳ありませんが、charset の変更をサポートするライブラリはありません。");<br>
$output を返します;<br>
}<br>
/**<br>
* 複数の文字デコード方法を実装します<br>
* @param $input デコードする文字列<br>
* @param $_output_charset 出力デコード形式<br> * @param $_input_charset 入力の解格式<br>
* return解解後の文字列<br>
*/<br>
function charsetDecode($input,$_input_charset ,$_output_charset) {<br>
$output = "";<br>
if(!isset($_input_charset) )$_input_charset = $_input_charset ;<br>
if($_input_charset == $_output_charset || $input ==null ) {<br>
$output = $input;<br>
} elseif (function_exists("mb_convert_encoding")) {<br>
$output = mb_convert_encoding($input,$_output_charset,$_input_charset);<br>
} elseif(function_exists("iconv")) {<br>
$output = iconv($_input_charset,$_output_charset,$input);<br>
} else die("申し訳ありませんが、libs では charset の変更をサポートしていません。");<br>
return $output;<br>
}<br>
?>
wemall官网地址:http://www.wemallshop.com