編輯:關於Android編程
銀聯支付也是一般比較常用的支付功能,這裡簡單了介紹android app如果短期快速應用這一方面的東西。直接上代碼:
1.導入銀聯支付的依賴包:
2.在res目錄下增加資源包:<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PGltZyBzcmM9"/uploadfile/Collfiles/20140809/2014080909044158.jpg" alt="\">
3.配置AndroidManifest.xml文件配置打開的activity:
至此,我們的項目環境就搭好了.(以上資料文件,請查看銀聯測試文檔目錄的androiddemo);
銀聯支付代碼3步驟:
1.獲取TN號 2.請求控件界面(PayActivity)
3.ActivityResult處理支付結果(但該結果並不一定正確 ,因為銀聯系統通過異步返回給服務器和我們的app是同時異步的)
以下 我以測試接口為例
/** * UnionPay Test * * @author Lean @date:2014-8-8 */ public class MainActivity extends Activity implements Runnable { private String mMode = "01";//設置測試模式:01為測試 00為正式環境 private static final String TN_URL_01 = "http://202.101.25.178:8080/sim/gettn";//自己後台需要實現的給予我們app的tn號接口 private Handler mHandler=new Handler(){ public void handleMessage(android.os.Message msg) { String tn = ""; if (msg.obj == null || ((String) msg.obj).length() == 0) { AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setTitle("錯誤提示"); builder.setMessage("網絡連接失敗,請重試!"); builder.setNegativeButton("確定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); builder.create().show(); } else { tn = (String) msg.obj; doStartUnionPayPlugin(MainActivity.this, tn, mMode); } } }; /** * 啟動支付界面 */ public void doStartUnionPayPlugin(Activity activity, String tn, String mode) { UPPayAssistEx.startPayByJAR(activity, PayActivity.class, null, null, tn, mode); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); new Thread(MainActivity.this).start(); } @Override public void run() { String tn = null; InputStream is; try { String url = TN_URL_01; URL myURL = new URL(url); URLConnection ucon = myURL.openConnection(); ucon.setConnectTimeout(120000); is = ucon.getInputStream(); int i = -1; ByteArrayOutputStream baos = new ByteArrayOutputStream(); while ((i = is.read()) != -1) { baos.write(i); } tn = baos.toString(); is.close(); baos.close(); } catch (Exception e) { e.printStackTrace(); } Message msg = mHandler.obtainMessage(); msg.obj = tn; mHandler.sendMessage(msg); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (data == null) { return; } String msg = ""; /* * 支付控件返回字符串:success、fail、cancel 分別代表支付成功,支付失敗,支付取消 */ String str = data.getExtras().getString("pay_result"); Log.v("zftphone", "2 "+data.getExtras().getString("merchantOrderId")); if (str.equalsIgnoreCase("success")) { msg = "支付成功!"; } else if (str.equalsIgnoreCase("fail")) { msg = "支付失敗!"; } else if (str.equalsIgnoreCase("cancel")) { msg = "用戶取消了支付"; } //支付完成,處理自己的業務邏輯! } }
頁面拖動到最後一頁 再向下滑動回復到 第一頁,第一頁向前滑動回到 最後一頁同時,底部紅色小圓點隨著頁面的滑動距離比例隨時改變位置布局:<?xml versi
首先聲明本文是基於GitHub上"baoyongzhang"的SwipeMenuListView修改而來,該項目地址:https://github.c
(一)概述本節引言:在上一節結束後意味著Android的四大組件我們都已經學習完畢了~,而本節我們要學習的是四大組件間的 樞紐——Intent(意
大家看到微信首頁切換效果有沒有覺得很炫,滑動切換,點擊底部bar瞬間切換,滑動切換漸變效果,線上效果圖:之前也在博客上看到別人的實現,再次基礎上,我做了些優化。首先說下實