1. 程式人生 > >Android-銀聯支付開發

Android-銀聯支付開發

轉自:http://blog.csdn.net/qq285016127/article/details/38435585

銀聯支付也是一般比較常用的支付功能,這裡簡單了介紹android app如果短期快速應用這一方面的東西。直接上程式碼:

1.匯入銀聯支付的依賴包:


2.在res目錄下增加資源包:


3.配置AndroidManifest.xml檔案配置開啟的activity:

[html] view plaincopyprint?在CODE上檢視程式碼片派生到我的程式碼片
  1. <activity
  2.             android:name="com.unionpay.uppay.PayActivity"
  3.             android:configChanges="orientation|keyboardHidden"
  4.             android:excludeFromRecents="true"
  5.             android:label="@string/app_name"
  6.             android:screenOrientation="portrait"
  7.             android:windowSoftInputMode="adjustResize"/>
至此,我們的專案環境就搭好了.(以上資料檔案,請檢視銀聯測試文件目錄的androiddemo);

銀聯支付程式碼3步驟:

1.獲取TN號  2.請求控制元件介面(PayActivity)   

3.ActivityResult處理支付結果(但該結果並不一定正確 ,因為銀聯絡統通過非同步返回給伺服器和我們的app是同時非同步的)


以下 我以測試介面為例

[java] view plaincopyprint?在CODE上檢視程式碼片派生到我的程式碼片
  1. /** 
  2.  *      UnionPay Test 
  3.  * 
  4.  *  @author Lean  @date:2014-8-8   
  5.  */
  6. publicclass MainActivity extends Activity implements Runnable {  
  7.     private String mMode = "01";//設定測試模式:01為測試 00為正式環境
  8.     privatestaticfinal String TN_URL_01 = "http://202.101.25.178:8080/sim/gettn";//自己後臺需要實現的給予我們app的tn號介面  
  9.     private Handler mHandler=new Handler(){  
  10.         publicvoid handleMessage(android.os.Message msg) {  
  11.             String tn = "";  
  12.             if (msg.obj == null || ((String) msg.obj).length() == 0) {  
  13.                 AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);  
  14.                 builder.setTitle("錯誤提示");  
  15.                 builder.setMessage("網路連線失敗,請重試!");  
  16.                 builder.setNegativeButton("確定",  
  17.                         new DialogInterface.OnClickListener() {  
  18.                             @Override
  19.                             publicvoid onClick(DialogInterface dialog, int which) {  
  20.                                 dialog.dismiss();  
  21.                             }  
  22.                         });  
  23.                 builder.create().show();  
  24.             } else {  
  25.                 tn = (String) msg.obj;  
  26.                 doStartUnionPayPlugin(MainActivity.this, tn, mMode);  
  27.             }  
  28.         }  
  29.     };  
  30.     /** 
  31.      *  啟動支付介面 
  32.      */
  33.     publicvoid doStartUnionPayPlugin(Activity activity, String tn, String mode) {  
  34.         UPPayAssistEx.startPayByJAR(activity, PayActivity.classnullnull,  
  35.                 tn, mode);  
  36.     }  
  37.     @Override
  38.     protectedvoid onCreate(Bundle savedInstanceState) {  
  39.         super.onCreate(savedInstanceState);  
  40.         setContentView(R.layout.activity_main);  
  41.         new Thread(MainActivity.this).start();  
  42.     }  
  43.     @Override
  44.     publicvoid run() {  
  45.         String tn = null;  
  46.         InputStream is;  
  47.         try {  
  48.             String url = TN_URL_01;  
  49.             URL myURL = new URL(url);  
  50.             URLConnection ucon = myURL.openConnection();  
  51.             ucon.setConnectTimeout(120000);  
  52.             is = ucon.getInputStream();  
  53.             int i = -1;  
  54.             ByteArrayOutputStream baos = new ByteArrayOutputStream();  
  55.             while ((i = is.read()) != -1) {  
  56.                 baos.write(i);  
  57.             }  
  58.             tn = baos.toString();  
  59.             is.close();  
  60.             baos.close();  
  61.         } catch (Exception e) {  
  62.             e.printStackTrace();  
  63.         }  
  64.         Message msg = mHandler.obtainMessage();  
  65.         msg.obj = tn;  
  66.         mHandler.sendMessage(msg);  
  67.     }  
  68.     @Override
  69.     protectedvoid onActivityResult(int requestCode, int resultCode, Intent data) {  
  70.         if (data == null) {  
  71.             return;  
  72.         }  
  73.         String msg = "";  
  74.         /* 
  75.          * 支付控制元件返回字串:success、fail、cancel 分別代表支付成功,支付失敗,支付取消 
  76.          */
  77.         String str = data.getExtras().getString("pay_result");  
  78.         Log.v("zftphone""2 "+data.getExtras().getString("merchantOrderId"));  
  79.         if (str.equalsIgnoreCase("success")) {  
  80.             msg = "支付成功!";  
  81.         } elseif (str.equalsIgnoreCase("fail")) {  
  82.             msg = "支付失敗!";  
  83.         } elseif (str.equalsIgnoreCase("cancel")) {  
  84.             msg = "使用者取消了支付";  
  85.         }  
  86.         //支付完成,處理自己的業務邏輯!
  87.     }  
  88. }  

Tip:做這個的時候,你要保證你有個牛比的支援團隊能夠接受新事物,同時譴責下銀聯的客服 太垃圾了說!

相關推薦

Android-支付開發

轉自:http://blog.csdn.net/qq285016127/article/details/38435585 銀聯支付也是一般比較常用的支付功能,這裡簡單了介紹android app如果短期快速應用這一方面的東西。直接上程式碼: 1.匯入銀聯支付的依賴包

android支付

在做的專案要用銀聯支付,老大要我研究,可是呢,可能是我不太會搜尋,總之,兩天過去,老大問我進展如何,支支吾吾。哎,現在才知道,我搜索到的網頁大都說得不大清楚,一度讓我懷疑自己的智商。未免跟我一樣的童鞋有同樣的困擾,現將開發銀聯支付的流程記錄如下: 準備工作: 2.申請服務

android 支付

1. 拷貝data.bin到工程的assets/目錄下; assets目錄在main包下,建立 2. 拷貝銀聯下載到的對應的armeabi-v7a、armeabi、arm64-v8a、x86、x86_64到工程的libs/目錄下 不用管字元編碼 如果是在libs目錄下,在

支付開發、使用的一些總結

        現在的網頁支付(PC和微信H5)和app支付,用的比較多的是微信支付、銀聯支付和支付寶支付,其餘的是這些支付的第三方支付,我目前瞭解的只有這麼多。我目前做了銀聯支付和微信支付,這裡說一些銀聯支付的開發的一些介紹吧。         根據我們公司的應用經驗,

Android支付控制元件整合總結

銀聯支付1.概述銀聯支付有很多種型別,我們這裡主要說的是手機控制元件支付銀聯手機支付控制元件主要應用於各類手機電子商務平臺的支付應用。銀聯控制元件合作商戶的手機客戶端(或網站)內整合(或呼叫)銀聯支付控制元件後,持卡人在合作商戶上即可使用銀聯手機支付安全控制元件進行安全的、便

Android開發:app工程整合支付功能(伺服器端)

2016年5月6日有更新,請參考第三部分。 一.功能描述 因為是自己開發了一個app應用,沒資格去申請微信支付和支付寶支付,於是就採用了銀聯支付功能,銀聯支付分為了兩種環境:測試環境和生產環境,一般前期開發的時候都是使用測試環境,資料都是測試資料,

Android開發之——支付初探

前言現在網上支付用的比較多的是微信支付,支付寶支付和銀聯支付。關於微信和支付寶支付前面已經講過了,本文主要介紹關於銀聯支付整合的過程和步驟。銀聯支付資源查詢整合文件點選上面的整合文件,開啟如下圖所示連線,上面有整合前的準備和整合介面介紹和整合步驟開啟上面的連結,開啟SDK資源的下載頁面,下載所需的資源下載後解

支付Android studio版本的支付Demo

首先看一下效果圖: 注意:本Demo使用的銀聯SDK版本:3.1.0 更新時間:2017-08-02 概述         銀聯手機支付控制元件(以下簡稱支付控制元件),主要為合作商戶的手機客戶端提供安全、便捷的支付服務。使用

支付——(JAVA)支付測試開發

開發官網:銀聯支付開發平臺 支付流程: 正常的支付流程都是一樣, 2 是支付請求,將返回的支付結果html在瀏覽器開啟返回給使用者 5 是同步支付結果寫入(這裡是完成支付後點擊返回商戶按鈕觸發) 6 是非同步支付結果寫入(這裡是完成支付後銀聯自動發起) 在若支付結果寫

【本人禿頂程式設計師】開發支付之前要做的那些事兒

←←←←←←←←←←←← 快!點關注!!! 銀聯支付 之前做過一次銀聯支付的配置工作,然而第二次配置,雖然有點印象,但最終還是翻查了半天資料和程式碼,才完成了配置。這裡對銀聯支付所需做一個簡單的整理說明,以便後期查閱,同時分享給大家。 至於如何申請賬號,那是公司層面的操作,這裡我

android app 快速接入支付流程(android studio版)

剛接觸了下銀聯支付,在網上搜還是看官方文件銀聯支付都不是很清晰,所以自己總結一篇,希望可以幫助大家快速整合。 一.進入下載官網,選擇下載手機控制元件支付demo: https://open.uni

android移動支付——支付

前言 這裡開篇講解一系列的Android相關的移動支付。移動支付也稱為手機支付,使用者使用移動的裝置,完成對所購買商品或者服務的支付功能。包括遠端支付(網上支付、簡訊支付),近場支付(刷卡、滴卡、pos機)。 國內的移動支付方式: 支付寶,微信,銀聯,百度錢包,QQ錢包,

淺談android接入,支付支付平臺的方式

// 建立支付寶訂單資訊private String getNewOrderInfo(Pay pay) {StringBuilder sb = new StringBuilder();sb.append("partner=\"");sb.append(Keys.DEFAULT_PARTNER);sb.app

Android 支付寶 微信 支付

補充技術:現在很多支付平臺,那麼就需要有一個統一的平臺進行支付的封裝,那就是PING++有興趣的朋友可以自己看一下。 一、支付難不難,不難,都是屬於第三方的東西,難度不大。 二、支付是安全的,因為都是大公司的剷平,有自己的安全策略。 三、做一個支付需要多久

spring_boot_pay支付寶,微信,支付詳細代碼案例

fan target 簽名加密 china 整合 提示 業務 rom sig spring-boot-pay 支付服務:支付寶,微信,銀聯詳細代碼案例(除銀聯支付可以測試以外,支付寶和微信支付測試均需要企業認證,個人無法完成測試),項目啟動前請仔細閱讀 註意事項 。 友情

支付踩過的坑

images 技術分享 技術 表單 發現 銀聯支付 必須 銀聯 idt 第一個坑: 前端調接口的時候一直報這個錯,查看銀聯文檔才發現,銀聯是以分結算的。 第二個坑: 因為向銀聯提交表單的時候,字段必須按照順序傳遞給銀聯,開始後臺使用HashMap傳遞給前臺,然後前臺向銀

Laravel 中如何使用支付寶、支付、微信支付進行支付 阿星小棧

如何 lar AC -c 可能 org ane str aca Laravel Packages 為 Laravel 提供了強大的擴展功能,為從 1 到 n 提供無限可能,這其中就包括支付, Laravel 官方提供的 Cashier 包集成對 Stripe 的支持

支付接口之退貨

logger ase com stat byte 封裝 dict end long 接收公司的銀聯支付項目,已經是第三個版本了,現在的是引用了UPOPSDK.dll,使用了封裝操作的方法,和官網現在的Demo操作方式不太一樣,而且找不到太多的文檔資料。任務是增加銀聯退貨的接

php支付

簡介 PHP銀聯支付 流程 1、註冊 銀聯 - 技術開發平臺和商戶服務平臺 https://open.unionpay.com 注意:註冊時建議使用IE瀏覽器,之前註冊時外掛老是用不了,使用IE10以下瀏覽器,另外當時使用的時候老是出現問題,原來是在剛好在維護。有什麼不明白的可以問問客服。 2、下

paip 支付介面訂單號uuid演算法

                paip.銀聯支付介面訂單號uuid演算法這幾天給專案接了個銀聯支付介面,介面訂單號uuid演算法按文件說明如下:在銀聯支付時,商戶提交給銀聯支付系統的訂單號(長度為16 個位元組的數字串)前4是自定義的,商戶可以根據商戶業務的不同,頭四位不同。例如ET業務為4000,郵件業務