日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

android支付宝调用

發布時間:2023/11/27 生活经验 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android支付宝调用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

android客戶端調用支付寶,主要是獲取訂單信息后,喚起對應支付平臺進行支付業務

操作流程,小白表示對整體的流程不是很清楚,這里只是大致說下測通支付流程

第一步:仿照文檔上寫,

地址:支付寶集成流程



導入jar包,配置寫進去,混淆一般都要寫的,寫好之后

回去看看支付寶的demo,看看PayDemoActivity


我標記了orderInfo ,這個是訂單,這個很重要,

不需要支付寶登錄的話里面的授權就無視他就好了,還有的就是那個H5pay也可以無視,demo里面只是為了展示,sdk里面有所以項目中就不用在寫了,

在看下面這句話


是啟動的方法,請求數據的時候用到,

準備好了之后就開始寫了

假如你有一個按鈕 你寫了一個方法


flag是判斷方法,請無視呢,

先定義訂單:String orderInfo= "";

把demo的全部復制過來吧,一行一行寫估計很多人不明白

我要說幾點NetUtils 是項目中封裝的請求數據的類,CardPay是一個bean,自己寫的,

我這個是購卡,請求后臺一個用戶id和卡的編號,這些都是自己項目的需求寫的。

主要是拿到數據后發送請求,

 Thread payThread = new Thread( payRunnable );
            payThread.start();
那個PayResult直接從demo復制過來就行,

這樣就能吊起支付寶了,(支付那些流程了現在換不是很清楚,配置好多都是在后臺做的,自己沒有嘗試去做,有機會弄清楚了在寫一篇支付,有不清楚的可以私聊我,項目已經接通。)

String orderInfo = "";
private void zhifubaopay() {setProgressContent("請求中");
    showProgressDialog();
    Pay z = new Pay();
    z.setAccount_Id(mUser.getAccount_Id());
    z.setMerName(merName);
    z.setMerCode(merCode);
    z.setSerCode(serCode);
    z.setPayMethod(2);
    NetUtils.getInstance().post(Constant.ServicePayment, z, new NetUtils.NetDataBack() {@Override
        public void onback(String s, Call call, Response response) {Gson gson = new Gson();
            PayWeixin p = gson.fromJson( s, PayWeixin.class );
            if (p.getResultCode().equals( Login.RIGHT_CODE )) {orderInfo =  p.getJsonData().getOrdercode();//從Ordercode中拿到數據
                Thread payThread = new Thread( payRunnable );
                payThread.start();
                dissmissProgressDialog();
            } else {showToast( "支付失敗" );
            }}@Override
        public void onError(String error) {}} );
}private static final int SDK_PAY_FLAG = 1;
@SuppressLint("HandlerLeak")
private Handler mHandler = new Handler() {@SuppressWarnings("unused")public void handleMessage(Message msg) {switch (msg.what) {case SDK_PAY_FLAG: {@SuppressWarnings("unchecked")PayResult payResult = new PayResult( (Map<String, String>) msg.obj );
                /**
                 對于支付結果,請商戶依賴服務端的異步通知結果。同步通知結果,僅作為支付結束的通知。
                 */
                String resultInfo = payResult.getResult();// 同步返回需要驗證的信息
                String resultStatus = payResult.getResultStatus();
                // 判斷resultStatus 為9000則代表支付成功
                if (TextUtils.equals( resultStatus, "9000" )) {// 該筆訂單是否真實支付成功,需要依賴服務端的異步通知。
                    Toast.makeText(PayActivity.this, "支付成功", Toast.LENGTH_SHORT ).show();
                } else {// 該筆訂單真實的支付結果,需要依賴服務端的異步通知。
                    Toast.makeText(PayActivity.this, "支付失敗", Toast.LENGTH_SHORT ).show();
                }break;
            }}}
};

Runnable payRunnable = new Runnable() {@Override
    public void run() {PayTask alipay = new PayTask(PayActivity.this );
        Map<String, String> result = alipay.payV2( orderInfo, true );
        Log.i( "msp", result.toString() );
        Message msg = new Message();
        msg.what = SDK_PAY_FLAG;
        msg.obj = result;
        mHandler.sendMessage( msg );
    }
};

 






總結

以上是生活随笔為你收集整理的android支付宝调用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。