Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android-銀聯支付

Android-銀聯支付

編輯:關於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 = "用戶取消了支付";
		}
		//支付完成,處理自己的業務邏輯!
	}

}

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

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved