微信支付,支付寶支付,銀聯(lián)支付——三大支付總結(jié):

http://blog.csdn.net/androidstarjack/article/details/72669394

支付寶植入總結(jié):

android 支付寶的" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

18143453325 在線咨詢 在線咨詢
18143453325 在線咨詢
所在位置: 首頁 > 營銷資訊 > 電子商務 > 微信支付,支付寶支付,銀聯(lián)支付——三大支付總結(jié)

微信支付,支付寶支付,銀聯(lián)支付——三大支付總結(jié)

時間:2023-03-14 15:06:02 | 來源:電子商務

時間:2023-03-14 15:06:02 來源:電子商務

介紹

銀聯(lián)支付,支付寶支付,微信支付的三大總結(jié),之前也有寫過兩篇。

微信支付,支付寶支付,銀聯(lián)支付——三大支付總結(jié):

http://blog.csdn.net/androidstarjack/article/details/72669394

支付寶植入總結(jié):

android 支付寶的植入 《曾經(jīng)踩過的坑》

微信支付總結(jié):

Android 微信支付總結(jié)

備注:出于安全考慮,驗簽我們都是放到后臺進行驗簽的。對于我們移動端節(jié)省了很多的勞動力。

之前有做過支付寶支付和微信支付,所以這次做起來碰到的問題很少,key申請下來之后很快就搞定了。吼吼

效果圖:

微信三大支付
由于用魯大師去截屏獲取gif,魯大師一針一針繪制圖片的時候應該沒做好處理,導致跳轉(zhuǎn)到相應的界面出現(xiàn)黑屏現(xiàn)象。在手機上正常跳轉(zhuǎn),無黑屏現(xiàn)象。大家不用擔心這個

****準備****:

需要以公司名義,在支付寶,微信等平臺上開通公司賬戶并且認證,如:支付過程中需要公司的帳號和商戶號。

支付寶支付

如果碰到一些坑的話,請參考我之前寫過的意一篇支付寶踩坑的文章:
android 支付寶的植入 《曾經(jīng)踩過的坑》
  1. 首先支付寶申請并集成支付寶SDK 這里不再詳細介紹


參考文檔:

https://doc.open.alipay.com/doc2/detail.htm?treeId=54&articleId=104509&docType=1

    1. 獲取訂單信息(根據(jù)自己公司的實際情況:可以在服務端完成,也可以在本地完成)
如:
price=12.5&num=12 //價格為12.5,數(shù)量為12

    1. 客戶端拿這些訂單信息向服務器后臺進行請求,返回支付簽名信息signInfo
    2. app攜帶支付信息,調(diào)用支付接口請求支付寶客戶端,從而調(diào)起支付界面


/** * 支付寶進行請求 * * @param signInfo */ private void payToOrderService(final String signInfo) { new Thread() { @Override public void run() { super.run(); PayTask payTask = new PayTask(MyScannerPayActivity.this); // String result = payTask.pay(signInfo, true); Map<String, String> result = payTask.payV2(signInfo, true); Message message = mHandler.obtainMessage(); message.what = SDK_PAY_FLAG; message.obj = result; mHandler.sendMessage(message); } }.start(); }
  1. 用戶操作,輸入密碼支付,支付成功;直接返回取消支付;出現(xiàn)錯誤,支付失??;進入支付界面,但輸入密碼支付,支付待確認;
  2. 支付寶客戶端將支付結(jié)果告訴app客戶端,商戶服務器通知app服務器支付結(jié)果;
  3. app客戶端處理支付結(jié)果;
  4. app服務器處理支付結(jié)果。
處理結(jié)果通知:

private Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case SDK_PAY_FLAG: PayResult payResult = null; try { payResult = new PayResult((Map<String, String>) msg.obj); } catch (Exception e) { e.printStackTrace(); } /** 對于支付結(jié)果,請商戶依賴服務端的異步通知結(jié)果。同步通知結(jié)果,僅作為支付結(jié)束的通知。 */ String resultInfo = payResult.getResult();// 同步返回需要驗證的信息 String resultStatus = payResult.getResultStatus(); // 判斷resultStatus 為9000則代表支付成功 if (TextUtils.equals(resultStatus, PAY_OK)) { ActivityUtils.showActivity(MyScannerPayActivity.this, ScannerPaySuccessActivity.class); finish(); } else if (TextUtils.equals(resultStatus, PAY_FAILED)) {//------------------------->支付失敗 // 該筆訂單真實的支付結(jié)果,需要依賴服務端的異步通知。 Toast.makeText(MyScannerPayActivity.this, "" + payResult.getMemo(), Toast.LENGTH_LONG).show(); } else if (TextUtils.equals(resultStatus, PAY_CANCLE)) {//-------------------------->交易取消 Toast.makeText(MyScannerPayActivity.this, "" + payResult.getMemo(), Toast.LENGTH_LONG).show(); } else if (TextUtils.equals(resultStatus, PAY_NET_ERR)) {//------------------------->網(wǎng)絡出現(xiàn)錯誤 Toast.makeText(MyScannerPayActivity.this, "" + payResult.getMemo(), Toast.LENGTH_LONG).show(); } else if (TextUtils.equals(resultStatus, PAY_WAIT_CONFIRM)) {//--------------------->交替等待 } break; } } };

銀聯(lián)支付

先看一下官方給我們的銀聯(lián)支付流程圖:

大家不要被這張圖片搞懵逼的了,其實很簡單,這里我將其分為5小步。

結(jié)果返回

處理銀聯(lián)手機支付控件返回的支付結(jié)果

調(diào)用銀聯(lián)支付后,返回app的時候用了,看返回結(jié)果傳,成功,失敗,或者是什么返回。

如圖所示:

最后注意在調(diào)用:

/***************************************************************** * mMode參數(shù)解釋: "00" - 啟動銀聯(lián)正式環(huán)境 "01" - 連接銀聯(lián)測試環(huán)境 *****************************************************************/private final String mMode = "00";注意:

tn值就是上面第三后臺給的tn,給到服務器那里,
這里我這邊是通過后臺請求下來的,關(guān)于mMode,看第一步驟,自己改一下就行了,00開發(fā)環(huán)境,01測試環(huán)境。但是要注意,這個只是個回調(diào)接口方法。

****總感覺銀聯(lián)支付的SDK調(diào)用起來怪怪的,貌似回到了原始深林。****

微信支付:

微信支付總結(jié):
http://blog.csdn.net/androidstarjack/article/details/50951941

接入流程圖:



  1. 申請開發(fā)者賬號
    地址:https://open.weixin.qq.com/
    進入管理中心,創(chuàng)建移動應用
  2. 申請支付能力
  3. 代碼集成微信支付
  • 代碼集成微信支付


  • HashMap<String ,String> params = getHeadMap(); params.put("appid", appID);// 微信appid,選擇性上傳,服務器寫死亦可 params.put("money", money);// 支付金額,單位:分 params.put("goodName", goodsName);// 商品名稱 params.put("productNum", String.valueOf(12));// 商品的數(shù)量- 2.app服務器調(diào)用微信“統(tǒng)一下單”接口,得到prePayId訂單號并返回prePayId給手機客戶端; 3.手機客戶端使用prePayId及商品信息調(diào)起微信客戶端進行支付; 3.1用戶操作:輸入密碼進行支付;返回鍵取消支付;網(wǎng)絡無連接支付失敗等; 4.微信客戶端回調(diào)支付結(jié)果給咱們的APP客戶端; 5.微信服務器異步通知咱們公司app服務器支付結(jié)果(服務器的工作,與客戶端無關(guān))相關(guān)的支付調(diào)用代碼:

    IWXAPI mWxApi = WXAPIFactory.createWXAPI(mContext, WX_APPID, true); mWxApi.registerApp(WX_APPID); /** * 請求app服務器得到的回調(diào)結(jié)果 */ @Override public void onGet(JSONObject jsonObject) { if (mWxApi != null) { PayReq req = new PayReq(); req.appId = WX_APPID;// 微信開放平臺審核通過的應用APPID try { req.partnerId = jsonObject.getString("partnerid");// 微信支付分配的商戶號 req.prepayId = jsonObject.getString("prepayid");// 預支付訂單號,app服務器調(diào)用“統(tǒng)一下單”接口獲取 req.nonceStr = jsonObject.getString("noncestr");// 隨機字符串,不長于32位,服務器小哥會給咱生成 req.timeStamp = jsonObject.getString("timestamp");// 時間戳,app服務器小哥給出 req.packageValue = jsonObject.getString("package");// 固定值Sign=WXPay,可以直接寫死,服務器返回的也是這個固定值 req.sign = jsonObject.getString("sign");// 簽名,服務器小哥給出,他會根據(jù):https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=4_3指導得到這個 } catch (JSONException e) { e.printStackTrace(); } mWxApi.sendReq(req); Log.d("發(fā)起微信支付申請"); } }

    注意事項:

    Android集成微信支付的出現(xiàn)-1等錯誤需要注意的要點

    ****reso.errCode = -1 官方的描述: -1 錯誤 可能的原因:簽名錯誤、未注冊APPID、項目設置APPID不正確、注冊的APPID與設置的不匹配、其他異常等。****

    1.簽名錯誤:

    2.APPID錯誤

    應用包名:是在APP項目配置文件AndroidManifest.xml中聲明的package值,例如DEMO中的package=”com.nmm.paydemo”。

    應用簽名:根據(jù)項目的應用包名和編譯使用的keystore,可由簽名工具生成一個32位的md5串,在調(diào)試的手機上安裝簽名工具后,運行可生成應用簽名串,如圖8.9所示,綠色串即應用簽名。簽名工具下載地址

    對比查看應用簽名是否一致,特別注意,一般上傳都是使用release版本的key所以在測試的時候就需要使用簽名版的apk,普通的debug版本key是不一致的

    微信支付相關(guān)的demo地址:

    https://github.com/androidstarjack/MyWxPayTest

    以上是我之前做微信支付的時候的一些總結(jié),今天再次拿出來供大家參考

    之前的歷史文章:

    支付寶植入總結(jié):
    android 支付寶的植入 《曾經(jīng)踩過的坑》
    微信支付總結(jié):
    Android 微信支付總結(jié)
    版權(quán):首發(fā)于我的csdn博客:https://codegoogler.blog.csdn.net/article/details/72669394

    最后照舊安利一波我們的公眾號:「終端研發(fā)部」,目前每天都會推薦一篇優(yōu)質(zhì)的技術(shù)相關(guān)的文章,主要分享java相關(guān)的技術(shù)與面試技巧,我們的目標是: 知道是什么,為什么,打好基礎(chǔ),做好每一點!這個主創(chuàng)技術(shù)公眾號超級值得大家關(guān)注。

    關(guān)鍵詞:支付,總結(jié)

    74
    73
    25
    news

    版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

    為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點擊下載Chrome瀏覽器
    關(guān)閉