支付寶的應用網關如何配置視頻
❶ 賬單裡面支付寶網關支付時什麼意思
賬單裡面支付寶網關支付意思是開通了支付寶支付功能。
1、打開支付寶客戶端,點擊底部「我的」;
2、點擊「設置」按鈕;
3、點擊「生物識別」;
4、點擊「指紋」;
5、點擊「指紋支付」;
6、點擊「同意協議並開通」;
7、提示驗證指紋並開通指紋支付,將手指放在智能手機進行指紋識別的組件處;
8、輸入支付密碼;
9、支付寶自動識別指紋,識別成功後,會提示開通成功;並返回指紋界面。
❷ 支付寶支付能力開發 其中,應用網關 和授權回調地址 怎麼填寫
這需要聯系支付寶客服。
❸ 支付寶在線交易網關怎麼關閉
1、首先打開支付寶客戶端,點擊底部我的,點擊設置按鈕。
2、其次點擊在線交易網關,輸入支付密碼。
3、最後點擊將其關閉即可。
❹ 簡述支付寶網關的功能
支付寶網關功能如下:
使用 Alipay-buyCRED Gateway for myCRED 網關,你可以讓用戶通過支付寶購買積分,該網關支持支付寶web端的 即時到帳、雙功能和擔保交易三種介面。部分功能如下:
支持後台和前台使用
後台在 用戶 - 積分充值 頁面,可以充值
前台可通過 【mycred_go】(註:請將 【】 換為 [] 使用,下同)簡碼調用充值功能
支持支付寶web端的 即時到帳、雙功能和擔保交易三種介面
即時到帳介面:購買積分者購買後,直接到賬,支付寶處訂單處於已完成階段;
雙功能和擔保交易介面:可以設置用戶購買後的交易終點(等待賣家發貨、等待買家確認收貨、交易已完成),只有達到這個交易終點的時候,才會充值到賬。購買積分者購買積分後,支付寶訂單處於已發貨,等待購買者收貨狀態,跳轉到其購買的積分類型對應的日誌頁面。
兼容buyCRED 組件的三個內置簡碼:【mycred_buy】, 【mycred_buy_form】 , 【mycred_buy_pending】,這個支付寶網關的id 是mycred_alipay
新增後台用戶積分管理功能,可以手動給用戶添加或扣除積分,積分動態寫入mycred內置日誌
支持後台自定義顯示樣式
❺ 在網站中集成支付寶支付功能
應項目需求,要在網站中增加支付功能,微信和支付寶都要支持,微信以前做過,就不再贅述了,本文簡單整理一下集成支付寶的過程。
一、准備工作
1.在螞蟻金服開發者中心上注冊商戶號,並認證;
2.在開發者中心創建應用,創建成功後會生成一個APPID,每個應用對應一個APPID
3.在 功能列表 中點擊 添加功能 來添加電腦網站支付功能。
二、配置工作
1.配置秘鑰,利用支付寶提供的工具生RSA應用公鑰和私鑰;
2.在應用的 開發者配置 頁面將上一步的公鑰上傳,得到支付寶公鑰;
3.為應用配置支付寶網關及授權回調地址;
4.在項目中添加支付API,引入maven依賴包即可。
三、介面調用
1.在程序文件中配置好支付相關的參數,包括APPID、支付寶公鑰、私鑰、支付寶網關、回調地址等
2.介面調用,電腦網站支付的支付介面 alipay.trade.page.pay 調用時序圖如下:
四、注意事項
❻ 如何設置網關
網關曾經是很容易理解的概念。在早期的網際網路中,術語網關即指路由器。路由器是網路中超越本地網路的標記, 這個走向未知的「大門」曾經、現在仍然用於計算路由並把分組數據轉發到源始網路之外的部分,因此, 它被認為是通向網際網路的大門。隨著時間的推移,路由器不再神奇,公共的基於IP的廣域網的出現和成熟促進了路由器的成長。 現在路由功能也能由主機和交換集線器來行使,網關不再是神秘的概念。現在,路由器變成了多功能的網路設備, 它能將區域網分割成若干網段、互連私有廣域網中相關的區域網以及將各廣域網互連而形成了網際網路, 這樣路由器就失去了原有的網關概念。然而術語網關仍然沿用了下來,它不斷地應用到多種不同的功能中, 定義網關已經不再是件容易的事。~
目前,主要有三種網關: ·協議網關
·應用網關
·安全網關
唯一保留的通用意義是作為兩個不同的域或系統間中介的網關,要克服的差異本質決定了需要的網關類型。 一、協議網關協議網關通常在使用不同協議的網路區域間做協議轉換。這一轉換過程可以發生在OSI參考模型的第2層、第3層或2、3層之間。 但是有兩種協議網關不提供轉換的功能:安全網關和管道。由於兩個互連的網路區域的邏輯差異, 安全網關是兩個技術上相似的網路區域間的必要中介。如私有廣域網和公有的網際網路。這一特例在後續的「組合過濾網關」中討論, 此部分中集中於實行物理的協議轉換的協議網關。1、管道網關管道是通過不兼容的網路區域傳輸數據的比較通用的技術。數據分組被封裝在可以被傳輸網路識別的幀中,到達目的地時, 接收主機解開封裝,把封裝信息丟棄,這樣分組就被恢復到了原先的格式。
管道技術只能用於3層協議,從SNA到IPv6。雖然管道技術有能夠克服特定網路拓撲限制的優點,它也有缺點。 管道的本質可以隱藏不該接受的分組,簡單來說,管道可以通過封裝來攻破防火牆,把本該過濾掉的數據傳給私有的網路區域。 2、專用網關很多的專用網關能夠在傳統的大型機系統和迅速發展的分布式處理系統間建立橋梁。 典型的專用網關用於把基於PC的客戶端連到區域網邊緣的轉換器。該轉換器通過X.25網路提供對大型機系統的訪問。 這些網關通常是需要安裝在連接到區域網的計算機上的便宜、單功能的電路板,這使其價格很低且很容易升級。在上圖的例子中, 該單功能的網關將大型機時代的硬連線的終端和終端伺服器升級為PC機和區域網。 3、2層協議網關2層協議網關提供區域網到區域網的轉換,它們通常被稱為翻譯網橋而不是協議網關。 在使用不同幀類型或時鍾頻率的區域網間互連可能就需要這種轉換。(1)幀格式差異IEEE802兼容的區域網共享公共的介質訪問層,但是它們的幀結構和介質訪問機制使它們不能直接互通
翻譯網橋利用了2層的共同點,如MAC地址,提供幀結構不同部分的動態翻譯,使它們的互通成為了可能。 第一代區域網需要獨立的設備來提供翻譯網橋,如今的多協議交換集線器通常提供高帶寬主幹, 在不同幀類型間可作為翻譯網橋,現在翻譯網橋的幕後性質使這種協議轉換變得模糊,獨立的翻譯設備不再需要, 多功能交換集線器天生就具有2層協議轉換網關的功能。 替代使用僅涉及2層的設備如翻譯網橋或多協議交換集線器的另一種選擇是使用3層設備:路由器。 長期以來路由器就是區域網主幹的重要組成部分。如果路由器用於互連區域網和廣域網, 它們通常都支持標準的區域網介面,經過適當的配置,路由器很容易提供不同幀類型的翻譯。 這種方案的缺點是如果使用3層設備路由器需要表查詢,這是軟體功能,而象交換機和集線器等2層設備的功能由硬體來實現, 從而可以運行得更快。(2)傳輸率差異 很多過去的區域網技術已經提升了傳輸速率,例如,IEEE 802.3乙太網現在有10Mbps、100Mbps和1bps的版本, 它們的幀結構是相同的, 主要的區別在於物理層以及介質訪問機制,在各種區別中,傳輸速率是最明顯的差異。令牌環網也提升了傳輸速率, 早期版本工作在4Mbps速率下,現在的版本速率為16Mbps,100Mbps的FDDI是直接從令牌環發展來的,通常用作令牌環網的主幹。 這些僅有時鍾頻率不同的區域網技術需要一種機制在兩個其它方面都兼容的區域網間提供緩沖的介面,現今的多協議、 高帶寬的交換集線器提供了能夠緩沖速率差異的健壯的背板.如今的多協議區域網可以為同一區域網技術的不同速率版本提供內部速率緩沖,還可以為不同的802兼容的區域網提供2層幀轉換。 路由器也可以做速率差異的緩沖工作,它們相對於交換集線器的長處是它們的內存是可擴展的。 其內存緩存進入和流出分組到一定程度以決定是否有相應的訪問列表(過濾)要應用,以及決定下一跳, 該內存還可以用於緩存可能存在於各種網路拓撲間的速率差異.二、應用網關 應用網關是在使用不同數據格式間翻譯數據的系統。典型的應用網關接收一種格式的輸入,將之翻譯, 然後以新的格式發送。輸入和輸出介面可以是分立的也可以使用同一網路連接。
一種應用可以有多種應用網關。如Email可以以多種格式實現,提供Email的伺服器可能需要與各種格式的郵件伺服器交互, 實現此功能唯一的方法是支持多個網關介面。應用網關也可以用於將區域網客戶機與外部數據源相連,這種網關為本地主機提供了與遠程互動式應用的連接。 將應用的邏輯和執行代碼置於區域網中客戶端避免了低帶寬、高延遲的廣域網的缺點,這就使得客戶端的響應時間更短。 應用網關將請求發送給相應的計算機,獲取數據,如果需要就把數據格式轉換成客戶機所要求的格式。本文不對所有的應用網關配置作詳盡的描述,這些例子應該概括了應用網關的各種分支。它們通常位於網路數據的交匯點, 為了充分地支持這樣的交匯點,需要包括區域網、廣域網在內的多種網路技術的結合。y
三、安全網關安全網關是各種技術有趣的融合,具有重要且獨特的保護作用,其范圍從協議級過濾到十分復雜的應用級過濾。防火牆主要有三類:分組過濾 電路網關 應用網關 注意:三種中只有一種是過濾器,其餘都是網關。 這三種機制通常結合使用。過濾器是映射機制,可區分合法的和欺騙包。每種方法都有各自的能力和限制,要根據安全的需要仔細評價。1、包過濾器包過濾是安全映射最基本的形式,路由軟體可根據包的源地址、目的地址或埠號建立許可權, 對眾所周知的埠號的過濾可以阻止或允許網際協議如FTP、rlogin等。過濾器可對進入和/或流出的數據操作, 在網路層實現過濾意味著路由器可以為所有應用提供安全映射功能。作為(邏輯意義上的)路由器的常駐部分, 這種過濾可在任何可路由的網路中自由使用,但不要把它誤解為萬能的,包過濾有很多弱點,但總比沒有好。包過濾很難做好,尤其當安全需求定義得不好且不細致的時候更是如此。這種過濾也很容易被攻破。包過濾比較每個數據包, 基於包頭信息與路由器的訪問列表的比較來做出通過/不通過的決定,這種技術存在許多潛在的弱點。首先, 它直接依賴路由器管理員正確地編制許可權集,這種情況下,拼寫的錯誤是致命的, 可以在防線中造成不需要任何特殊技術就可以攻破的漏洞。即使管理員准確地設計了許可權,其邏輯也必須毫無破綻才行。 雖然設計路由似乎很簡單,但開發和維護一長套復雜的許可權也是很麻煩的, 必須根據防火牆的許可權集理解和評估每天的變化,新添加的伺服器如果沒有明確地被保護,可能就會成為攻破點。隨著時間的推移,訪問許可權的查找會降低路由器的轉發速度。每當路由器收到一個分組, 它必須識別該分組要到達目的地需經由的下一跳地址,這必將伴隨著另一個很耗費CPU的工作: 檢查訪問列表以確定其是否被允許到達該目的地。訪問列表越長,此過程要花的時間就越多。包過濾的第二個缺陷是它認為包頭信息是有效的,無法驗證該包的源頭。 頭信息很容易被精通網路的人篡改, 這種篡改通常稱為「欺騙」。包過濾的種種弱點使它不足以保護你的網路資源,最好與其它更復雜的過濾機制聯合使用,而不要單獨使用。2、鏈路網關鏈路級網關對於保護源自私有、安全的網路環境的請求是很理想的。這種網關攔截TCP請求,甚至某些UDP請求, 然後代表數據源來獲取所請求的信息。該代理伺服器接收對萬維網上的信息的請求,並代表數據源完成請求。實際上, 此網關就象一條將源與目的連在一起的線,但使源避免了穿過不安全的網路區域所帶來的風險。這種方式的請求代理簡化了邊緣網關的安全管理,如果做好了訪問控制,除了代理伺服器外所有出去的數據流都被阻塞。 理想情況下,此伺服器有唯一的地址,不屬於任何內部使用的網段。這絕對使無意中微妙地暴露給不安全區域的信息量最小化, 只有代理伺服器的網路地址可被外部得到,而不是安全區域中每個聯網的計算機的網路地址。 3、應用網關 應用網關是包過濾最極端的反面。包過濾實現的是對所有穿過網路層包過濾設備的數據的通用保護, 而應用網關在每個需要保護的主機上放置高度專用的應用軟體,它防止了包過濾的陷阱,實現了每個主機的堅固的安全。應用網關的一個例子是病毒掃描器,這種專用軟體已經成了桌面計算的主要產品之一。它在啟動時調入內存並駐留在後台, 持續地監視文件不受已知病毒的感染,甚至是系統文件的改變。 病毒掃描器被設計用於在危害可能產生前保護用戶不受到病毒的潛在損害。這種保護級別不可能在網路層實現,那將需要檢查每個分組的內容,驗證其來源,確定其正確的網路路徑, 並確定其內容是有意義的還是欺騙性的。這一過程將產生無法負擔的過載,嚴重影響網路性能。4、組合過濾網關使用組合過濾方案的網關通過冗餘、重疊的過濾器提供相當堅固的訪問控制,可以包括包、鏈路和應用級的過濾機制。 這樣的安全網關最普通的實現是象崗哨一樣保護私有網段邊緣的出入點,通常稱為邊緣網關或防火牆。 這一重要的責任通常需要多種過濾技術以提供足夠的防衛。下圖所示為由兩個組件構成的安全網關:一個路由器和一個處理機。 結合在一起後,它們可以提供協議、鏈路和應用級保護。
這種專用的網關不象其它種類的網關一樣,需要提供轉換功能。作為網路邊緣的網關,它們的責任是控制出入的數據流。 顯然的,由這種網關聯接的內網與外網都使用IP協議,因此不需要做協議轉換,過濾是最重要的。 保護內網不被非授權的外部網路訪問的原因是顯然的。控制向外訪問的原因就不那麼明顯了。在某些情況下, 是需要過濾發向外部的數據的。例如,用戶基於瀏覽的增值業務可能產生大量的WAN流量,如果不加控制, 很容易影響網路運載其它應用的能力,因此有必要全部或部分地阻塞此類數據。聯網的主要協議IP是個開放的協議,它被設計用於實現網段間的通信。這既是其主要的力量所在,同時也是其最大的弱點。 為兩個IP網提供互連在本質上創建了一個大的IP網, 保衛網路邊緣的衛士--防火牆--的任務就是在合法的數據和欺騙性數據之間進行分辨。5、實現中的考慮實現一個安全網關並不是個容易的任務,其成功靠需求定義、仔細設計及無漏洞的實現。首要任務是建立全面的規則, 在深入理解安全和開銷的基礎上定義可接受的折衷方案,這些規則建立了安全策略。安全策略可以是寬松的、嚴格的或介於二者之間。在一個極端情況下,安全策略的基始承諾是允許所有數據通過,例外很少, 很易管理,這些例外明確地加到安全體制中。這種策略很容易實現,不需要預見性考慮,保證即使業餘人員也能做到最小的保護。 另一個極端則極其嚴格,這種策略要求所有要通過的數據明確指出被允許,這需要仔細、著意的設計,其維護的代價很大, 但是對網路安全有無形的價值。從安全策略的角度看,這是唯一可接受的方案。在這兩種極端之間存在許多方案,它們在易於實現、 使用和維護代價之間做出了折衷,正確的權衡需要對危險和代價做出仔細的評估。
如何設置默認網關
一台電腦的默認網關是不可以隨隨便便指定的,必須正確地指定,否則一台電腦就會將數據包發給不是網關的電腦,從而無法與其他網路的電腦通信。默認網關的設定有手動設置和自動設置兩種方式。
1. 手動設置
手動設置適用於電腦數量比較少、TCP/IP參數基本不變的情況,比如只有幾台到十幾台電腦。因為這種方法需要在聯入網路的每台電腦上設置「默認網關」,非常費勁,一旦因為遷移等原因導致必須修改默認網關的IP地址,就會給網管帶來很大的麻煩,所以不推薦使用。
在Windows 9x中,設置默認網關的方法是在「網上鄰居」上右擊,在彈出的菜單中點擊「屬性」,在網路屬性對話框中選擇「TCP/IP協議」,點擊「屬性」,在「默認網關」選項卡中填寫新的默認網關的IP地址就可以了。
需要特別注意的是:默認網關必須是電腦自己所在的網段中的IP地址,而不能填寫其他網段中的IP地址。
2. 自動設置
自動設置就是利用DHCP伺服器來自動給網路中的電腦分配IP地址、子網掩碼和默認網關。這樣做的好處是一旦網路的默認網關發生了變化時,只要更改了DHCP伺服器中默認網關的設置,那麼網路中所有的電腦均獲得了新的默認網關的IP地址。這種方法適用於網路規模較大、TCP/IP參數有可能變動的網路。
另外一種自動獲得網關的辦法是通過安裝代理伺服器軟體(如MS Proxy)的客戶端程序來自動獲得,其原理和方法和DHCP有相似之處。由於篇幅所限,就不再詳述了。
❼ android支付寶支付怎麼設置應用網關和應用公鑰
1.下載官方架包和說明文檔
其實官方已經提供了安裝指南,
裡面有有個pdf,詳細說明了說用指南,寫的比較詳細,可以重點參考。
下載下來,我們主要是用到Android(20120104)目錄下的alipay_plugin.jar和AppDemo/assets下的alipay_plugin223_0309.apk,這兩個文件是我們不能修改的支付寶api和安裝包。
2. 商戶簽約
現在的安全機制,都是這樣,客戶端需要先和服務端請求驗證後才能進行進一步操作,oauth也是如此。
打開登陸支付寶,點擊簽約入口,選擇"應用類產品",填寫並等待審核,獲取商戶ID和賬戶ID。
簽約的時候還要向需要提供實名認證和上傳應用,所以我建議先把應用做好了,最後再集成支付寶。
我大概等了1-2天審核,審核是失敗的,回復是應用類型啥的應該是"虛擬貨幣",我改成那個馬上自動就審核通過了。
3.密鑰配置
解壓openssl-0.9.8k_WIN32(RSA密鑰生成工具).zip,打開cmd,命令行進入openssl-0.9.8k_WIN32(RSA密鑰生成工具)\bin目錄下,
(1).執行
openssl genrsa -out rsa_private_key.pem 1024
生成rsa_private_key.pem文件。
(2).再執行
openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
生成rsa_public_key.pem 文件。
(3).在執行
openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt
將RSA私鑰轉換成 PKCS8 格式,去掉begin和end那兩行,把裡面的內容拷貝出來,保存到某個txt中,如rsa_private_pkcs8_key.txt中(我好像沒用到這個)。
打 開rsa_public_key.pem,即商戶的公鑰,復制到一個新的TXT中,刪除文件頭」-----BEGIN PUBLIC KEY-----「與文件尾」-----END PUBLIC KEY-----「還有空格、換行,變成一行字元串並保存該 TXT 文件,然後在網站的「我的商家服務」切換卡下的右邊點擊「密鑰管理」,然後有個"上傳商戶公鑰(RSA)"項,選擇上傳剛才的TXT文件.
好了,伺服器配置OK,因為這一段之前沒有截圖,現在弄好了又不好截圖,如果有不明白的地方請大家參考官方文檔。
4.引用jar和包含安裝包
(1).新建android工程;
(2).上面說的alipay_plugin.jar到工程的libs目錄下,並在java build path中通過Add External JARs找到並引用該jar;
(3).上面說的alipay_plugin223_0309.apk安裝包到assets目錄下,後面配置路徑用到。
\
如果libs和assets目錄沒有,手動建立者兩個目錄。
5.調用代碼整理
這里我們要嚴重的參考文檔中AppDemo,我們建一個包 com.tianxia.lib.baseworld.alipay,把AppDemo的com.alipay.android.appDemo4包下的 源碼全部到剛才我們自己的包下,還有res目錄下的資源文件也合並到我們工程res下。
其中AlixDemo.java,ProctListAdapter.java,Procts.java是示例類,我們借鑒完後可以刪除。
PartnerConfig.java是配置類,配置商戶的一些配置參數。
其他的類是嚴重參考類,直接留下使用。
PartnerConfig.java代碼如下:
public class PartnerConfig { //合作商戶ID。用簽約支付寶賬號登錄ms.alipay.com後,在賬戶信息頁面獲取。 public static final String PARTNER = "xxx"; //賬戶ID。用簽約支付寶賬號登錄ms.alipay.com後,在賬戶信息頁面獲取。 public static final String SELLER = "xxx"; //商戶(RSA)私鑰 ,即rsa_private_key.pem中去掉首行,最後一行,空格和換行最後拼成一行的字元串 public static final String RSA_PRIVATE = "xxx"; //支付寶(RSA)公鑰 用簽約支付寶賬號登錄ms.alipay.com後,在密鑰管理頁面獲取。 public static final String RSA_ALIPAY_PUBLIC = "xxx"; //下面的配置告訴應用去assets目錄下找安裝包 public static final String ALIPAY_PLUGIN_NAME ="alipay_plugin223_0309.apk";}
AlixDemo中代碼是最終的調用代碼在onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {}中,下面我們提取其中的核心代碼。
6.提取核心調用代碼
在AlixDemo.java同目錄下新建AlixPay.java,來提取AlixDemo.java的核心代碼:
package com.tianxia.lib.baseworld.alipay;import java.net.URLEncoder;import java.text.SimpleDateFormat;import java.util.Date;import com.tianxia.lib.baseworld.R;import android.app.Activity;import android.app.ProgressDialog;import android.content.DialogInterface;import android.os.Handler;import android.os.Message;import android.view.KeyEvent;import android.widget.Toast;public class AlixPay { static String TAG = "AlixPay"; private Activity mActivity; public AlixPay(Activity activity) { mActivity = activity; } private ProgressDialog mProgress = null; // the handler use to receive the pay result. private Handler mHandler = new Handler() { public void handleMessage(Message msg) { try { String strRet = (String) msg.obj; switch (msg.what) { case AlixId.RQF_PAY: { closeProgress(); BaseHelper.log(TAG, strRet); try { String memo = "memo="; int imemoStart = strRet.indexOf("memo="); imemoStart += memo.length(); int imemoEnd = strRet.indexOf(";result="); memo = strRet.substring(imemoStart, imemoEnd); ResultChecker resultChecker = new ResultChecker(strRet); int retVal = resultChecker.checkSign(); if (retVal == ResultChecker.RESULT_CHECK_SIGN_FAILED) { BaseHelper.showDialog( mActivity, "提示", mActivity.getResources().getString( R.string.check_sign_failed), android.R.drawable.ic_dialog_alert); } else { BaseHelper.showDialog(mActivity, "提示", memo, R.drawable.infoicon); } } catch (Exception e) { e.printStackTrace(); BaseHelper.showDialog(mActivity, "提示", strRet, R.drawable.infoicon); } } break; } super.handleMessage(msg); } catch (Exception e) { e.printStackTrace(); } } }; // close the progress bar void closeProgress() { try { if (mProgress != null) { mProgress.dismiss(); mProgress = null; } } catch (Exception e) { e.printStackTrace(); } } public void pay() { MobileSecurePayHelper mspHelper = new MobileSecurePayHelper(mActivity); boolean isMobile_spExist = mspHelper.detectMobile_sp(); if (!isMobile_spExist) return; if (!checkInfo()) { BaseHelper.showDialog(mActivity, "提示", "缺少partner或者seller,", R.drawable.infoicon); return; } try { // prepare the order info. String orderInfo = getOrderInfo(); String signType = getSignType(); String strsign = sign(signType, orderInfo); strsign = URLEncoder.encode(strsign); String info = orderInfo + "&sign=" + "\"" + strsign + "\"" + "&" + getSignType(); // start the pay. MobileSecurePayer msp = new MobileSecurePayer(); boolean bRet = msp.pay(info, mHandler, AlixId.RQF_PAY, mActivity); if (bRet) { // show the progress bar to indicate that we have started paying. closeProgress(); mProgress = BaseHelper.showProgress(mActivity, null, "正在支付", false, true); } else ; } catch (Exception ex) { Toast.makeText(mActivity, R.string.remote_call_failed, Toast.LENGTH_SHORT).show(); } } private boolean checkInfo() { String partner = PartnerConfig.PARTNER; String seller = PartnerConfig.SELLER; if (partner == null || partner.length() <= 0 || seller == null || seller.length() <= 0) return false; return true; } // get the selected order info for pay. String getOrderInfo() { String strOrderInfo = "partner=" + "\"" + PartnerConfig.PARTNER + "\""; strOrderInfo += "&"; strOrderInfo += "seller=" + "\"" + PartnerConfig.SELLER + "\""; strOrderInfo += "&"; strOrderInfo += "out_trade_no=" + "\"" + getOutTradeNo() + "\""; strOrderInfo += "&"; //這筆交易價錢 strOrderInfo += "subject=" + "\"" + mActivity.getString(R.string.donate_subject) + "\""; strOrderInfo += "&"; //這筆交易內容 strOrderInfo += "body=" + "\"" + mActivity.getString(R.string.donate_body) + "\""; strOrderInfo += "&"; //這筆交易價錢 strOrderInfo += "total_fee=" + "\"" + "10.00" + "\""; strOrderInfo += "&"; strOrderInfo += "notify_url=" + "\"" + "http://notify.java.jpxx.org/index.jsp" + "\""; return strOrderInfo; } // get the out_trade_no for an order. String getOutTradeNo() { SimpleDateFormat format = new SimpleDateFormat("MMddHHmmss"); Date date = new Date(); String strKey = format.format(date); java.util.Random r = new java.util.Random(); strKey = strKey + r.nextInt(); strKey = strKey.substring(0, 15); return strKey; } // get the sign type we use. String getSignType() { String getSignType = "sign_type=" + "\"" + "RSA" + "\""; return getSignType; } // sign the order info. String sign(String signType, String content) { return Rsa.sign(content, PartnerConfig.RSA_PRIVATE); } // the OnCancelListener for lephone platform. static class AlixOnCancelListener implements DialogInterface.OnCancelListener { Activity mcontext; AlixOnCancelListener(Activity context) { mcontext = context; } public void onCancel(DialogInterface dialog) { mcontext.onKeyDown(KeyEvent.KEYCODE_BACK, null); } }}
這個類的pay方法就是支付的方法,最簡單的不設置的話,調用方法如下:
AlixPay alixPay = new AlixPay(SettingTabActivity.this);alixPay.pay();