功能很簡單.主要通過隱式intent完成
代碼如下:
package com.example.gk.testalipay;import android.content.Context;import android.content.Intent;import android.net.Uri;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.Toast;import java.net.URLEncoder;/** * 測試不集成sdk,直接對商戶 個人二維碼 個人收款碼進行轉賬 * 個人二維碼可以截圖下來.通過掃碼工具獲得里面的字符串 */public class MainActivity extends AppCompatActivity implements View.OnClickListener { public static final String ALIPAY_SHOP = "https://qr.alipay.com/stx05107r5oaa4fyofbkh24";//商戶 public static final String ALIPAY_PERSON = "HTTPS://QR.ALIPAY.COM/FKX06148QMZIJDXGPKXXE7";//個人(支付寶里面我的二維碼) public static final String ALIPAY_PERSON_2_PAY = "HTTPS://QR.ALIPAY.COM/FKX01415BIHINQT6TRU53F";//個人(支付寶里面我的二維碼,然后提示讓用的收款碼) PRivate Button btn_to_shop; private Button btn_to_person; private Button btn_to_person_pay; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initViews(); initEvent(); } private void initEvent() { btn_to_shop.setOnClickListener(this); btn_to_person.setOnClickListener(this); btn_to_person_pay.setOnClickListener(this); } private void initViews() { btn_to_shop = (Button) findViewById(R.id.btn_to_shop); btn_to_person = (Button) findViewById(R.id.btn_to_person); btn_to_person_pay = (Button) findViewById(R.id.btn_to_person_pay); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btn_to_shop: openAliPay2Pay(ALIPAY_SHOP); break; case R.id.btn_to_person: openAliPay2Pay(ALIPAY_PERSON); break; case R.id.btn_to_person_pay: openAliPay2Pay(ALIPAY_PERSON_2_PAY); break; default: break; } } /** * 支付 * * @param qrCode */ private void openAliPay2Pay(String qrCode) { if (openAlipayPayPage(this, qrCode)) { Toast.makeText(this, "跳轉成功", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(this, "跳轉失敗", Toast.LENGTH_SHORT).show(); } } public static boolean openAlipayPayPage(Context context, String qrcode) { try { qrcode = URLEncoder.encode(qrcode, "utf-8"); } catch (Exception e) { } try { final String alipayqr = "alipayqr://platformapi/startapp?saId=10000007&clientVersion=3.7.0.0718&qrcode=" + qrcode; openUri(context, alipayqr + "%3F_s%3Dweb-other&_t=" + System.currentTimeMillis()); return true; } catch (Exception e) { e.printStackTrace(); } return false; } /** * 發送一個intent * * @param context * @param s */ private static void openUri(Context context, String s) { Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(s)); context.startActivity(intent); }}不過 沒有集成sdk是沒有辦法知道用戶支付狀態的,除非讓用戶復制交易訂單號然后用一個支付寶的接口進行查詢這樣的功能適合個人開發的小應用.不適合商業項目
新聞熱點
疑難解答