通過php將帶有app,PHP用於

本文目錄一覽:

PHP可以用來開發移動端APP嗎

用PHP寫App服務端肯定沒問題的啦.

當然你想在Android/iOS上跑PHP解釋器也是可以的.

把PHP交叉編譯到這些平台即可.

比如我打包的Android上的PHPDroid,以及老外打包的iOS上的DraftCode.

如何使用 php 寫 app 接口

APP外殼任然使用安卓,PHP作為服務器端處理,編寫接口,APP 調用接口進行交互,實現對接

如何用PHP搭建個移動APP的服務器

搭建移動APP服務器,與搭建網站服務器其實是一樣的做法。比如在Linux下安裝好Apache+PHP+MySQL,然後通過PHP建立APP應用程序,通過PHP製作網頁界面或用Java製作APP客戶端,就可以讓用戶訪問了。

如何利用PHP實現 APP端微信支付功能

一丶 PHP後台後台生成預支付交易單,返回正確的預支付交易回話標識後再在APP裏面調起支付!官方文檔:

根據文檔拼接微信需要的參數,這裡需要幾個方法,直接上代碼!

傳輸給微信的參數要組裝成xml格式發送,傳如參數數組!

public function ToXml($data=array())

    {

        if(!is_array($data) || count($data) = 0)

        {

           return ‘數組異常’;

        }

        $xml = “”;

        foreach ($data as $key=$val)

        {

            if (is_numeric($val)){

                $xml.=””.$key.””.$val.””;

            }else{

                $xml.=””.$key.””;

            }

        }

        $xml.=””;

        return $xml;

    }

2.生成隨機字符串,微信所需參數! 這裡方法很多,看自己愛好都行!

function rand_code(){

        $str = ‘0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ’;//62個字符

        $str = str_shuffle($str);

        $str = substr($str,0,32);

        return  $str;

}

3.這裡是微信比較重要的一步了,這個方法會多次用到!生成簽名

private function getSign($params) {

        ksort($params);        //將參數數組按照參數名ASCII碼從小到大排序

        foreach ($params as $key = $item) {

            if (!empty($item)) {         //剔除參數值為空的參數

                $newArr[] = $key.’=’.$item;     // 整合新的參數數組

            }

        }

        $stringA = implode(“”, $newArr);         //使用  符號連接參數

        $stringSignTemp = $stringA.”key=”.”************************”;        //拼接key

        // key是在商戶平台API安全里自己設置的

        $stringSignTemp = MD5($stringSignTemp);       //將字符串進行MD5加密

        $sign = strtoupper($stringSignTemp);      //將所有字符轉換為大寫

        return $sign;

    }

4.傳遞參數給微信,生成預支付訂單! 接收微信返回的數據,在反給APP端,APP端調用支付接口,完成支付 ! APP端所需參數見微信文檔:;index=2

public function wx_pay() {

        $nonce_str = $this-rand_code();        //調用隨機字符串生成方法獲取隨機字符串

        $data[‘appid’] =’wxdbc5dc*******’;   //appid

        $data[‘mch_id’] = ‘1493*****’ ;        //商戶號

        $data[‘body’] = “APP支付測試”;

        $data[‘spbill_create_ip’] = $_SERVER[‘HTTP_HOST’];   //ip地址

        $data[‘total_fee’] = 1;                         //金額

        $data[‘out_trade_no’] = time().mt_rand(10000,99999);    //商戶訂單號,不能重複

        $data[‘nonce_str’] = $nonce_str;                   //隨機字符串

        $data[‘notify_url’] = ”; 接收支付後的通知,必須為能直接訪問的網址,不能跟參數

        $data[‘trade_type’] = ‘APP’;      //支付方式

        //將參與簽名的數據保存到數組  注意:以上幾個參數是追加到$data中的,$data中應該同時包含開發文檔中要求必填的剔除sign以外的所有數據

        $data[‘sign’] = $this-getSign($data);        //獲取簽名

        $xml = $this-ToXml($data);            //數組轉xml

        //curl 傳遞給微信方

        $url = “”;

        //header(“Content-type:text/xml”);

        $ch = curl_init();

        curl_setopt($ch,CURLOPT_URL, $url);

        if(stripos($url,”https://”)!==FALSE){

            curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1);

            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);

        }    else    {

            curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,TRUE);

            curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,2);//嚴格校驗

        }

        //設置header

        curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1);

        curl_setopt($ch, CURLOPT_HEADER, FALSE);

        //要求結果為字符串且輸出到屏幕上

        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

        //設置超時

        curl_setopt($ch, CURLOPT_TIMEOUT, 30);

        curl_setopt($ch, CURLOPT_POST, TRUE);

        //傳輸文件

        curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);

        //運行curl

        $data = curl_exec($ch);

        //返回結果

        if($data){

            curl_close($ch);

            //返回成功,將xml數據轉換為數組.

            $re = $this-FromXml($data);

            if($re[‘return_code’] != ‘SUCCESS’){

                json(“201”,’簽名失敗’);

            }

            else{

            //接收微信返回的數據,傳給APP!

                $arr =array(

                    ‘prepayid’ =$re[‘prepay_id’],

                    ‘appid’ = ‘wxdbc5dc*****’,

                    ‘partnerid’ = ‘14937****’,

                    ‘package’ = ‘Sign=WXPay’,

                    ‘noncestr’ = $nonce_str,

                    ‘timestamp’ =time(),

                );

                //第二次生成簽名

                $sign = $this-getSign($arr);

                $arr[‘sign’] = $sign;

                json(‘200′,’簽名成功’,$arr);

            }

        } else {

            $error = curl_errno($ch);

            curl_close($ch);

            json(‘201’,”curl出錯,錯誤碼:$error”);

        }

    }

5.將xml數據轉換為數組,接收微信返回數據時用到.

public function FromXml($xml)

    {

        if(!$xml){

            echo “xml數據異常!”;

        }

        //將XML轉為array

        //禁止引用外部xml實體

        libxml_disable_entity_loader(true);

        $data = json_decode(json_encode(simplexml_load_string($xml, ‘SimpleXMLElement’, LIBXML_NOCDATA)), true);

        return $data;

    }

二 .APP支付成功後,會調用你填寫的回調地址 . 返回參數詳見微信文檔:;index=3

// 微信支付回調

     function wx_notify(){

           //接收微信返回的數據數據,返回的xml格式

           $xmlData = file_get_contents(‘php://input’);

           //將xml格式轉換為數組

           $data = $this-FromXml($xmlData);

           //用日誌記錄檢查數據是否接受成功,驗證成功一次之後,可刪除。

           $file = fopen(‘./log.txt’, ‘a+’);

           fwrite($file,var_export($data,true));

           //為了防止假數據,驗證簽名是否和返回的一樣。

           //記錄一下,返回回來的簽名,生成簽名的時候,必須剔除sign字段。

           $sign = $data[‘sign’];

           unset($data[‘sign’]);

           if($sign == $this-getSign($data)){

            //簽名驗證成功後,判斷返回微信返回的

            if ($data[‘result_code’] == ‘SUCCESS’) {

                //根據返回的訂單號做業務邏輯

                $arr = array(

                       ‘pay_status’ = 1,

                    );

                $re = M(‘order’)-where([‘order_sn’=$data[‘out_trade_no’]])-save($arr);

                //處理完成之後,告訴微信成功結果!

                if($re){

                    echo ”;exit();

                }

            }

            //支付失敗,輸出錯誤信息

            else{

                $file = fopen(‘./log.txt’, ‘a+’);

           fwrite($file,”錯誤信息:”.$data[‘return_msg’].date(“Y-m-d H:i:s”),time().”\r\n”);    

            }

    }

    else{

                $file = fopen(‘./log.txt’, ‘a+’);

           fwrite($file,”錯誤信息:簽名驗證失敗”.date(“Y-m-d H:i:s”),time().”\r\n”);    

            }

}

在這裡,微信APP支付流程就成功走完了!謝謝支持!

———————

如何用PHP製作的網站生成Android app

你這個問題有些籠統,一個完整的app有簡單有複雜,不同的app應用功能的差異也導致不同的技術實現或者算法模型。大體來說,一個app從設計到最終實現需要你懂得以下幾個必要方面:1、前期需求規劃與信息、交互設計——你需要制定出一個完整的需求文檔,功能文檔,流程圖,時序圖。2、交互設計、UI設計——設計出基本且完善的原型圖和app基礎的交互設計效果,之後再根據這些設計出完整的UI界面並學會切圖,一些需要做自適應的素材圖片需要做點9patch。 這裡還需要你懂得px,pt和dp之間的換算,屏幕密度的換算和相互之間的係數,以便你的app能完美適應不同分辨率設備。其中交互設計需要你懂得很多人機操作的技巧經驗,掌握Axure等交互工具的使用,UI設計需要你掌握Photoshop和Illustrator等操作。3、使用ADT之類的開發環境進行app開發,你最基本的也得掌握java語言,熟悉android環境和機制,這裏面涉及面廣,請根據項目自行學習相關知識。4、如果不是單機版的app,需要用到服務器,那你還得掌握WebService相關知識和開發語言,常用的有ASP.Net,PHP,JSP等。5、熟悉並能開發數據庫。6、某些功能需要做算法,這還需要一定得專業知識,尤其是數學基礎。7、熟悉API接口開發,這裡包括你自行開發API的能力以及調用第三方API的經驗。8、熟悉TCP/IP,socket等網絡協議和相關知識。9、熟練掌握App發佈的流程,真機調試技巧,證書,打包,上架。App開發其實不一定適合一個人搞,太費勁,除非是一個單機版的小應用,或者利用現成的api開發簡單的第三方應用,否則還是讓一個團隊來完成各自擅長的領域。

原創文章,作者:RRZB,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/131399.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
RRZB的頭像RRZB
上一篇 2024-10-03 23:45
下一篇 2024-10-03 23:45

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 如何將Python開發的網站變成APP

    要將Python開發的網站變成APP,可以通過Python的Web框架或者APP框架,將網站封裝為APP的形式。常見的方法有: 一、使用Python的Web框架Django Dja…

    編程 2025-04-28
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • Coursera App全面解析

    Coursera App是一款面向在線學習的應用程序,通過Coursera App用戶可以更加方便地學習各種知識技能,大大方便了用戶的在線學習體驗。 一、多格式課程 Courser…

    編程 2025-04-27
  • Python app開發指南

    無論是移動端應用開發還是Web後台開發,Python作為一門高效易用的編程語言,已經成為了眾多軟件開發者的首選。學習Python開發,可以快速高效地創建各種應用,為用戶提供出色的用…

    編程 2025-04-27
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若服務器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • 蛋卷基金APP下載攻略

    如果你想了解如何下載蛋卷基金APP,請聽我慢慢道來。 一、下載步驟 1、首先,在應用商店中搜索「蛋卷基金」。 <p>打開應用商店,搜索「蛋卷基金」</p> …

    編程 2025-04-27
  • 老虎證券app官網下載

    老虎證券是一家提供在線股票交易服務的綜合性經紀商。老虎證券app是老虎證券的官方移動應用,它可以為投資者提供包括股票、期貨、外匯和數字貨幣的多種交易服務。本文將介紹老虎證券app的…

    編程 2025-04-27
  • PHP登錄頁面代碼實現

    本文將從多個方面詳細闡述如何使用PHP編寫一個簡單的登錄頁面。 1. PHP登錄頁面基本架構 在PHP登錄頁面中,需要包含HTML表單,用戶在表單中輸入賬號密碼等信息,提交表單後服…

    編程 2025-04-27

發表回復

登錄後才能評論