<object id="vqvqa"></object>
  • <th id="vqvqa"><video id="vqvqa"></video></th> <code id="vqvqa"></code>
    1. <big id="vqvqa"></big>

      <code id="vqvqa"><nobr id="vqvqa"></nobr></code>
      無憂支付網首頁
      24小時服務電話
      QQ:1145248264
      本站出售
      站內搜索
      您當前的位置:主頁 > 支付接口申請相關知識 >

      銀聯支付通道接口接入包設計

      添加時間:2022-11-08

        銀聯與財付通、支付寶一樣都是提供給第三方APP的支付集成提供了嵌入式的集成渠道接口,因此總體來說我們依然可以借助銀聯的接入規則文檔和銀聯的集成接口完成我們對銀聯支付渠道接口的集成,但是集成接入包依然需要修改。

        銀聯支付渠道接口分兩個模塊,第一個為Unionpay負責啟動與返回結果,第二個部分UnionpayAction,為銀聯支付渠道接口的整體設計,以集成接入包為藍本整體設計分為三部分,即接入部分、支付部分與返回部分。

        1、Unionpay模塊

        本文并不涉及支付服務器,因此本接口設計只討論設計流程圖中如何發送關鍵參數以及接收與處理同步返回的結果。銀聯支付渠道接口的整體設計模塊主要功能函數,payRequest()和JPayManager.getJPayManager()。

        ·payRequest()
        //將商戶信息傳遞給UnionpayAction.payRequest,啟動UnionpayAction。
        UnionpayAction payRequest = new UnionpayAction(this cpInfo);
        payAction.payRequest();
        ·JPayManager getJPayManager()
        //返回最終支付結果。
        Return mManager.

        2、UnionpayAction模塊

        UnionpayAction模塊是使用銀聯提供的集成接入模塊,在借助其幫助的同時,我們需要對它進行一定的修改;

        使其能夠匹配我們第三方集成支付平臺的需要,因為與財付通/微信支付流程類似,在接支付結果入部分我們同樣增加payRequest(),requestPrePayInfo()和PayCallBack()向集成平臺服務器請求、獲取調用銀聯支付需要的Union sign信息的功能;

        在返回部分也需要增加將支付結果通知集成平臺的功能,對PayReturnResultActivity()進行了少許修改。

        1.接入部分

        接入部分需要獲取調用銀聯接口時根據業務規則需要傳遞Union sign的請求參數,如表1銀聯支付請求接口參數列表所示,調用接口開始支付。

      表1 銀聯支付請求接口參數列表

      銀聯支付請求接口參數列表

        payRequest()開始請求前往銀聯進行支付,首先要獲取支付前必要的參數信息。

        //獲取支付前必要的參數信息。
        requestPrePayInfo().

        requestPrePayInfo()實現的是獲取前往銀聯支付平臺支付前,向集成平臺服務器獲取必要的財付通請求參數。表2為財付通前期支付請求參數表。

      表2 銀聯前期支付準備請求參數表

      銀聯前期支付準備請求參數表

        //將發送給集成平臺支付服務器的請求參數組裝,并使用MD5完成簽名
        long time = System.currentTimeMillis();
        String sign = "" + JPayManager.TENPAY + JPayManager.FLAG + time;
        sign = SignUtil.getMDS(sign);
        //將請求參數發送給集成平臺支付服務器
        JPayment payReq = new JPaymentImpl(mContext);
        payReq.keyInfoRequest(JPayManager.UNION,JPayManager.FLAG,String.value0f(time),CPInfo.getOrderId(),sign,mCallPayCallBack).

        PayCallBack()從集成平臺支付服務器獲取返回的請求Union sign的關鍵參數,從支付服務器獲得的數據返回的格式為Json,表3為銀聯前期支付請求返回參數表。

      表3 銀聯前期支付請求返回參數表

      銀聯前期支付請求返回參數表

        主要功能代碼如下:

        //檢查簽名
        Checksign();
        //將返回的Json格式的結果進行解析,獲取MerchantId,key,PayRequest_Url
        JSONObject jo;
        jo = new JSONObject (response);
        String message = jo.getString ("secret");
        o = new JSONObject (message);
        mMerchantId = jo.getString ("MerchantId");
        mKey = jo.getString ("key");
        mPayRequestUrl = jo.getString ("PayRequest Url");
        //判斷返回的是不是有空值
        Cheek message();
        //開始進入請求Union sign的步驟
        requestUnionSign (mCPInfo).

        reQuestUnionSign()將支付訂單信息完整獲取并組裝后,使用MD5進行簽名發送,向銀聯支付平臺請求Union sign,請求發送的參數如表4請求Union sign參數orderInfo列表所示。

      表4 請求Union sign參數orderInfo列表

      請求Union sign參數orderInfo列表

        核心代碼如下:

        //按照文檔標準獲取支付參數
        String orderInfo = orderInfo + sign + time;
        //向銀聯支付平臺請求獲取Union sign
        unionSignRequest (orderInfo).

        unionSignRequest()從集成支付平臺獲取到Union sign。

        2.支付部分

        UNION_SIGN_REPONSE()將Union sign以請求參數的形式發送,調用銀聯支付接口開始支付。按照銀聯接口的規則我們選xml,以Bundle數據塊進行參數傳遞。核心代碼如下:

        //將Union sign傳遞給銀聯支付接口,調用該接口開始支付
        String sign = jo.getString(UNION_SIGN);
        String Time = jo.getString(MERCHANT_ORDER_TIME);
        //將數據以xml格式傳遞
        String xm1 = buildXmlStr(sign,orderTime);
        Bundle xmlData = new Bundle();
        //調用支付界面
        xmlData.putString("ActivityName","com.joygor.jpay.unionpay.PayReturnResultActivity");
        xmlData.putString ("xml", xml);
        //放入數據里
        intent.putExtras(xmlData);
        //進行支付
        mContext.startActivity().

        3.返回部分

        返回部分分為異步通知和同步返回兩部分,異步返回通過直接與集成支付平臺的支付服務器進行互動,但是由于本文不涉及集成平臺支付服務器的設計,因

        此異步返回通知不在本文返回部分的設計范圍內。

        異步返回部分返回結果前,銀聯以同步的方式直接將結果返回給銀聯支付渠道接口,其返回的結果只有支付結果的最終狀態,我們將對結果進行解析,并將最終的結果通知給銀聯支付管理功能函數(返回的數據格式依然是xml)。因此我們是以這一部分進行研究和討論。表5為銀聯平臺支付結果返回列表。

      表5 為銀聯平臺支付結果返回列表

      為銀聯平臺支付結果返回列表

        PayReturnResultActivity()的功能是取出最終的支付結果,對簽名進行驗證,如正確進行與服務器二次確認,通知銀聯支付渠道的Unionpay模塊,返回最終結果。

        //取出最終的支付結果
        Bundle xmlData = getIntent().getExtras();
        String response = xmlData.getString("xml");
        //檢查簽名的正確,獲取RESP_CODE
        ResultChecker resultChecker = new ResultChecker(strRet,mkey);
        checksign();
        String respCode = result.get(UnionPayArgument.RESP_CODE);
        //與支付集成平臺的支付服務器進行確認
        CheckOrder.recheckOrderWithServer(mCPInfo,RESP_CODE);
        //通知銀聯支付渠道的Unionpay模塊,返回最終結果。
        Unionpay.getJPayManager().PayCallBack(RESP_CODE,PayManager.Union).

      關閉

      1.點擊下面按鈕復制微信號

      ***********

      2.打開微信→查找微信號

      加為好友 開始支付接入

      午夜福利在线永久视频
      <object id="vqvqa"></object>
    2. <th id="vqvqa"><video id="vqvqa"></video></th> <code id="vqvqa"></code>
      1. <big id="vqvqa"></big>

        <code id="vqvqa"><nobr id="vqvqa"></nobr></code>