編輯:關於Android編程
銀聯支付流程如下所示:
vcu1w/fOxLW1o6y+zb/J0tTN6rPJo6zO0tTa1eLA78z5yc+94bm5zbyjrNLyzqphc7XEzNjK4tDUoaM8L3A+DQo8aDQ+PHN0cm9uZz5qYXKw/KGiLnNvzsS8/rrNLmJpbs7EvP4gPC9zdHJvbmc+PC9oND4NCjxwPtLyzqrO0rXEuaSzzNfK1LTT0LXjtuDBy6Os0rvVxc28vdiyu8/Co6zL+dLUztLWu7j4s/bOxLz+vNC1xL3hubnNvKGjPC9wPg0KPHA+PGJyIC8+DQo8aW1nIGFsdD0="這裡寫圖片描述" src="/uploadfile/Collfiles/20160507/20160507090907245.png" title="\" />
<!-- 銀聯支付相關配置 -->
<uses-library
android:name="org.simalliance.openmobileapi"
android:required="false" />
<activity
android:name="com.unionpay.uppay.PayActivity"
android:configChanges="orientation|keyboardHidden"
android:excludeFromRecents="true"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize" />
<activity
android:name="com.unionpay.UPPayWapActivity"
android:configChanges="orientation|keyboardHidden"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.NFC" />
<uses-feature android:name="android.hardware.nfc.hce" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="org.simalliance.openmobileapi.SMARTCARD" />
import com.unionpay.UPPayAssistEx; //在調用支付控件的代碼按以下方式調用支付控件 //比如onclick或者handler等等... /*參數說明: activity —— 用於啟動支付控件的活動對象 spId —— 保留使用,這裡輸入null sysProvider —— 保留使用,這裡輸入null orderInfo —— 訂單信息為交易流水號,即TN,為商戶後台從銀聯後台獲取。 mode —— 銀聯後台環境標識,“00”將在銀聯正式環境發起交易,“01”將在銀聯測試環境發起交易 返回值: UPPayAssistEx.PLUGIN_VALID —— 該終端已經安裝控件,並啟動控件 UPPayAssistEx.PLUGIN_NOT_FOUND — 手機終端尚未安裝支付控件,需要先安裝支付控件 */ String serverMode = "01"; UPPayAssistEx.startPay (activity, null, null, tn, serverMode);
支付完成後,獲取支付控件支付結果,並添加相應處理邏輯,只需實現調用Activity中的onActivityResult()方法即可,支付成功時會返回商戶客戶端支付結果的簽名信息。
官方Demo是這樣的:
protected void onActivityResult( int requestCode,
int resultCode,
Intent data)
{
if( data == null ){
return;
}
String str = data.getExtras().getString("pay_result");
if( str.equalsIgnoreCase(R_SUCCESS) ){
// 支付成功後,extra中如果存在result_data,取出校驗
// result_data結構見c)result_data參數說明
if(data.hasExtra("result_data")) {
String sign = data.getExtras().getString("result_data");
// 驗簽證書同後台驗簽證書
// 此處的verify,商戶需送去商戶後台做驗簽
if(verify(sign)) {
//驗證通過後,顯示支付結果
showResultDialog(" 支付成功! ");
} else {
// 驗證不通過後的處理
// 建議通過商戶後台查詢支付結果
}
} else {
// 未收到簽名信息
// 建議通過商戶後台查詢支付結果
}
}else if( str.equalsIgnoreCase(R_FAIL) ){
showResultDialog(" 支付失敗! ");
}else if( str.equalsIgnoreCase(R_CANCEL) ){
showResultDialog(" 你已取消了本次訂單的支付! ");
由此就基本完成了客戶端的集成,當然還有一些:支付失敗的處理、取消訂單的處理,以及退貨、退款等等處理,等有時間再完善了。
本想截圖的!!手機暫時出現了無法截圖的毛病...
Android性能分析工具
DDMSDDMS 的全稱是Dalvik Debug Monitor Service,是Android 開發環境中的Dalvik 虛擬機調試監控服務HierarchyVie
Android源碼淺析(三)——Android AOSP 5.1.1源碼的同步sync和編譯make,搭建Samba服務器進行更便捷的燒錄刷機
最近比較忙,而且又要維護自己的博客,視頻和公眾號,也就沒仔細的梳理源碼的入門邏輯,今天也就來講一個源碼的玩法,各位看官,一起學習學習! 參考資料 官方教程:http:/
關於Android bitmap你不知道的一些事
本文為大家分享了Android bitmap使用細節,供大家參考,具體內容如下1、計算機表示圖形的幾種方式1)BMP :幾乎不進行壓縮 占用空間比較大 2)JPG : 在
android-----帶你一步一步優化ListView(一)
ListView作為android中最常使用的控件,可以以條目的形式顯示大量的數據,經常被用於顯示最近聯系人列表,對於每一個 Item,均要求adapter的getVie