<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的支付集成提供了嵌入式的集成渠道接口,因此總體來說我們依然可以借助財付通的接入規則文檔和財付通集成接口以及一定的修改完成我們對財付通/微信支付接口的集成。

        財付通/微信支付渠道接口分兩個模塊:第一個為Tenpay負責啟動與返回結果,第二個部分TenpayAction,就是我們集成的部分,為財付通/微信支付渠道接口的整體設計。整體設計分為三部分,即接入、支付與返回。

        本文并不涉及支付服務器,因此本接口設計只討論設計流程圖中如何發送關鍵參數以及接收與處理同步返回的結果。

        1、Tenpay模塊

        財付通/微信支付渠道接口的整體設計模塊主要功能函數,payRequest()和JPayManager getJPayManager()。

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

        2、TenpayAction模塊

        TenpayAction模塊是使用財付通集成接入的模塊,在借助其幫助的同時,我們需要對它進行一定的修改;

        使其能夠匹配我們第三方集成支付平臺的需要,在接支付結果入部分payRequest()、requestPrePayInfo()和PayCallBack()是我們后期增加,為了向集成平臺服務器請求、獲取財付通/微信支付前獲取tokenId信息的功能;在返回部分也需要增加將支付結果通知集成平臺的功能,對TenpayHandler()進行了少許修改。

        1. 接入部分

        接入部分需要獲取調用財付通接口時根據業務規則需要傳遞tokenId的請求參數,表1是財付通/微信支付請求接口參數列表,調用接口開始支付。

      表1 財付通/微信支付請求接口參數列表

      財付通/微信支付請求接口參數列表

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

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

        requestPrePayInfo()實現的是在調用財付通/微信支付平臺支付前,向財付通平臺服務器獲取tokenId必要的財付通請求參數。表2為財付通前期支付請求參數表。

      表2 財付通前期支付準備請求參數表

      財付通前期支付準備請求參數表

        主要功能代碼如下:

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

        PayCallBack()從集成平臺支付服務器獲取返回的請求tokenId的關鍵數,數據從支付服務器數據返回時,使用的是Json數據格式,表3是財付通前期支付請求返回參數表。

      表3 財付通前期支付請求返回參數表

      財付通前期支付請求返回參數表

        主要功能代碼如下:

        //驗證簽名
        Checksign();
        //將返回的Json格式結果進行解析,獲取bargainid,key,notiyfyurl
        JSONObject jo;
        jo = new JSONObject (response);
        String message = jo.getString("secret");
        jo = new JSONObject (message);
        mbargainorid = jo.getString ("bargainor_id");
        mKey = jo.getString ("key");
        mNotifyUrl = jo.getString ("Notify_Url");
        //檢查判斷返回的是不是有空值
        Check message();
        //開始進入請求TokenId的步驟
        requestTokenId (mCPInfo).

        requestTokenId()將支付訂單信息完整獲取并組裝后,使用MD5進行簽名發送,向財付通/微信支付平臺請求tokenId,請求發送的參數如表4請求tokenId參數orderInfo列表所示。

      表4 請求tokenId參數orderInfo列表

      請求tokenId參數orderInfo列表

        核心代碼如下:

        //按照文檔標準獲取支付參數
        String orderInfo = orderInfo + sign + time;
        //向財付通/微信支付平臺請求獲取tokenId
        payReq.tokenIdRequest (orderInfo).

        tokenIdRequest()從集成支付平臺獲取到tokenId。

        //驗證簽名
        Checksign();
        //獲取返回值
        Return tokenId.

        2. 支付部分

        TENPAY_TOKEN_ID_RESPONSE()將tokenId以請求參數的形式發送,調用財付通/微信支付接口開始支付。

        //將tokenId傳遞給財付通/微信支付接口,調用該接口開始支付
        TenpayServiceHelper tenpayHelper = new TenpayServiceHelper(mContext);
        tenpay.pay (tokenId, mTenpayHandler, MSG_PAY_RESULT).

        3. 返回部分

        返回部分分為異步通知和同步返回兩部分,首先進行的是異步返回,通過notify_url直接與集成支付平臺的支付服務器進行互動,同時向財付通/微信支付平臺發送結果通知查詢請求,但是由于本文不涉及集成平臺支付服務器的設計,因此異步返回通知不在本文返回部分的設計范圍內。

        支付渠道接口部分獲得的支付結果是集成平臺服務器在得到異步返回的參數后將支付結果通知返回給財付通,財付通服務器將最終的結果通知給財付通支付管理功能函數。因此我們是以這一部分進行研究和討論。表5為財付通平臺支付結果返回列表。

      表5 財付通/微信支付返回接口參數列表

      財付通/微信支付返回接口參數列表

        TenpayHandler()的功能是取出最終的支付結果,對簽名檢驗,如沒有問題與服務器二次確認,通知財付通/微信支付渠道的Tenpay模塊,返回最終結果,返回的數據格式為Json。

        //取出最終的支付結果
        JSONObject jo;
        //檢查簽名是否正確后獲取Statuscode
        checksign();
        Statuscode = jo.getString ("Statuscode");
        //與支付集成平臺的支付服務器進行確認
        CheckOrder.recheckOrderWithServer(mCPInfo, Statuscode);
        //通知財付通/微信支付渠道的Tenpay模塊,返回最終結果。
        Tenpay.getJPayManager().PayCallBack(Statuscode,JPayManager.Tenpay).

      關閉

      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>