• <table id="4yaya"><noscript id="4yaya"></noscript></table>
  • NAVNavbar
    Java PHP C# Python Node.js Go Ruby Android Objective-C

    接入指引

    一、用戶注冊登錄

    用戶首先需完成 用戶注冊
    已注冊商戶可以直接 商戶登錄
    已注冊渠道可以直接 渠道登錄

    1.引言

    更新時間

    更新內容

    版本號

    2017.11.1

    新增退款接口

    2.1.7

    2018.1.15

    修改了部分錯誤,修正了部分文字描述

    2.1.8

    1.1 文檔說明

    一、訂單規范

      本文件是i聚合為商戶接入i聚合支付平臺,提供的解決方案。

      供內部開發人員或者與平臺服務方技術相關的人員參考使用。

      文檔從交互模式,簽名,注意事項等方面對i聚合平臺的對接,做了相關的說明和工作模式。

    1.2 閱讀對象

      供商戶開發人員與商戶平臺服務方技術或業務人員參考和查詢。

    1.3 測試數據

      測試公眾號的openid請關注“i聚合支付”發送openid,識別圖片獲得。

    測試商戶號

    測試秘鑰

    公眾號APPID

    掃碼appid

    1635

    0iUvmz8xXckxLD7NMFr9eXlBMvnYJNqo

    wx15100945b8d2b322

    微信:1

    1635

    0iUvmz8xXckxLD7NMFr9eXlBMvnYJNqo

    wx15100945b8d2b322

    支付寶: 2

    1.4 支付流程

              

    1.5 加密安全

      平臺數據統一使用 md5_32進行初級加密,數據在i聚合平臺會進行二次加密并上傳相關通道,保證服務商戶數據在平臺的安全和數據的完整。

    2. 統一網關支付接口規范

    2.1 網關地址

      網關地址:https://ijuhepay.cn/GateWay/ReceiveOrder.aspx

    2.2上傳網關參數

    參數

    參數說明

    參與簽名

    類型

    備注

    P_UserId

    商戶ID

    整形數字

    必須(由i聚合平臺提供)

    P_OrderId

    商戶訂單號

    字符串,最長32位

    必須,在商戶系統中保持唯一

    P_CardId

    卡號

    字符串,最長20位

    1.代付請填寫出金銀行卡號????
    ?2.微信wap請填寫應用類型
    ?否則可為空

    P_CardPass

    卡密

    字符串,最長20位

    卡類業務時必須,否則可為空

    P_FaceValue

    面值

    float,保留2位小數

    必須(實際價格)

    P_Price

    代付金額

    float,保留2位小數

    必須,可傳0(價格標簽)

    P_FaceType

    幣種

    字符串,最長3位

    固定值CNY

    P_ChannelId

    支付類型

    整型數字

    必須(支付類型)

    P_Subject

    名稱

    字符串,最常20位

    代付請填寫用戶姓名???
    ???否則可為空

    P_Quantity

    產品數量

    字符串,最長100位

    必須?通常為“1”

    P_Description

    產品描述

    字符串,最長100位

    為方便查單,建議為空(此參數內容會顯示在支付憑證中)

    P_Notic

    用戶附加信息

    字符串,最長50位

    微信WAP請填寫應用名稱

    P_Result_URL

    支付狀態通知地址

    字符串,最長100位

    必須異步通知地址

    P_Notify_URL

    支付后網頁跳轉地址

    字符串,最長100位

    可為空(跳回)同步

    P_PostKey

    簽名認證串

    字符串

    必須

    P_APPID?????(或最終支付網址)

    申請提交的appid

    字符串,最長100位

    必須(掃碼,wap用戶請填寫最終支付網址)

    P_OpenID

    openid

    字符串,最長128位

    1.公眾號、APP對接時需要,為必填項???2.?微信WAP請填寫應用標識

    2.3 提交網關驗簽說明

    
    <!--
     引入頭文件:
    import
     com.umf.api.service.UmfService
     ;
    import 
    com.umf.api.service.UmfServiceImpl
    ;
    -->
    *************
    調用示例
    ****************
    //初始化UmfService類,傳入商戶號和商戶私鑰路徑 
    UmfService
     instance 
    = 
    new 
    UmfServiceImpl
    ("60000100"
    ,"G:/60000100_.key.p8"
    );
    
    
    //增加商戶私鑰保存方法            
    Map 
    reqMap 
    = 
    prepareSaveCertMap
    ();                      
    public 
    static 
    Map 
    prepareSaveCertMap(){
    Map 
    reqMap 
    = 
    new 
    HashMap
    ();
    reqMap
    .
    put
    (
    "60000102.mer.prikey.path"
    ,
    "G:/60000102_.key.p8"
    ); 
    //傳入私鑰名(商戶號.mer.prikey.path)和路徑 
    return 
    reqMap
    ;
    }
    service.
    addMerPrivateCertMap
    (reqMap
    );   
    
    /**
     * 增加商戶私鑰保存方法
     */
    public void test_addMerPrivateCertMap(){
        UmfService service = new UmfService();
        Hashtable ht = new Hashtable() {
             { "60000100",@"D:\cert\60000100_.key.der" }
        };
        service.addMerPrivateCertMap(ht);
    }
    
    import os
    
    import umfpayservice
    import umf_service_test
    
    umfpayservice.umf_config.set_log_path('./logs')
    umfpayservice.umf_config.add_private_keys([('60000100', 'G:/60000100_.key.pem'), ])
    try:
        umf_service_test.test_reconciliation_download()
    except Exception as e:
    print(e.message)
    
    var umfUtil = require('../utils/UmfUtils')
    var service = require('../service/umfService')
    var testMer2Umf = new TestMer2Umf()
    var umfService = new service()
    var umfService1 = new service()
    umfService.umfService("60000100", "G:/60000100_.key.pem")
    umfService1.umfService("60000101", "G:/60000101_.key.pem")
    
    //Go代碼示例
    var (
        mer_id, privateKey = "60000100", GetKey("D:/key/60000100_.key.pem")
        //mer_id,privateKey ="60038402_", GetKey("D:/key/60038402_.key.pem")
    )
    
    //Ruby代碼示例
     def test_addMerPrivateCertMap
        UmfService.addMerPrivateCertMap("60000100","C:/60000100_.key.pem")
        UmfService.addMerPrivateCertMap("60038402","C:/60038402_.key.pem")
        puts $privateKeyPath
     end
    
       ? 簽名認證postKey的生成:必須按照“參與簽名”狀態為“是”的參數按其順序用“|”組合,最后加上用戶密鑰,然后進行32位的md5編碼,

       如:P_PostKey=md5_32(P_UserId| P_OrderId| P_CardId| P_CardPass |P_FaceValue| P_FaceType| P_ChannelId|SalfStr)

       SalfStr是您在設置信息的時候,填寫的安全碼(如何獲取安全碼?登錄商戶平臺,接口配置-->支付通道接口下載-->密鑰,這里自己設置安全密鑰)

       ? Result_URL必須填寫,而且是http://開頭的絕對網絡地址,否則支付成功后,您將得不到狀態地址。

       ? 接口提交示例:

    https://ijuhepay.cn/GateWay/ReceiveOrder.aspx?P_UserId=2000&P_OrderId=90898089890we8r098erewr&P_CardId=S0989899809342343443&P_CardPass=908932849
    &P_FaceValue=10.00&P_FaceType=CNY&P_ChannelId=3&P_Subject=MyPay&P_Price=10.00&P_Quantity
    =1&P_Description=MyPay&P_Notic=sometext&P_PostKey=SDFS098KLJLKSJDFSKLJLKKLSF&P_AppID=
    wxxxxxxxxxxxxx&P_Result_url=http://www.yousite.com/result.asp&P_Notify_URL=http://www.yousite.com/notify.asp

       ? 注意:因為P_Description參數要顯示在支付憑證中,所以建議使用GB2312編碼格式上傳。 或者使用urlencode編碼對此字段進行轉換。
    參考地址:http://blog.csdn.net/w938706428/article/details/45076003

    3. 同步異步參數

      支付狀態回調:用戶通過本平臺網關支付后,本平臺接收到支付報告狀態時,立即向您在提交網關參數中的P_Result_URL(支付狀態回調地址)
      傳遞支付報告,您根據這個支付報告的狀態,決定是否給用戶服務;

    3.1 異步參數規范

    參數

    參數說明

    參與簽名

    類型

    備注

    P_UserId

    商戶ID

    整型數字

    商戶在平臺的商戶號

    P_OrderId

    商戶訂單號

    字符串,最長32位

    商戶自己定義的訂單號

    P_CardId

    卡類充值時的卡號

    字符串,最長20位

    返回上傳的值

    P_CardPass

    卡類充值時的卡密

    字符串,最長20位

    返回上傳的值

    P_FaceValue

    面值

    float,保留2位小數

    返回上傳的值

    P_ChannelId

    支付銀行類型

    字符串

    銀行返回

    P_OrderId_out

    平臺訂單號

    字符串,最長32位

    平臺返回平臺訂單號

    P_PayMoney

    充值的產品金額

    float,保留2位小數

    返回上傳的值

    P_Subject

    產品名稱

    字符串,最常20位

    返回上傳的值

    P_Price

    產品價格

    float,保留2位小數

    返回上傳的值

    P_Quantity

    產品數量

    整型數字

    返回上傳的值

    P_Descripton

    產品描述

    字符串,最常100位

    返回上傳的值

    P_Notic

    用戶附加信息

    字符串,最常50位

    返回上傳的值

    P_ErrCode

    錯誤代碼

    整型數字

    返回信息(信息代碼詳見附錄

    P_ErrMsg

    錯誤描述

    字符串

    報錯信息描述

    P_PostKey

    簽名認證串

    字符串

    Md5加密簽

    3.2 回調驗簽說明

    //java代碼示例
    public static void runOneQuickPayGetSMSDemo(){
        //模擬一鍵支付獲取短信請求參數
        Map reqMap = prepareGetSmsMap();
        Map respMap = MerCallServiceSingleton.getInstancei().getSMSMap(reqMap);
        printResult(respMap);
    }
        //一鍵支付獲取短信請求參數
    public static Map prepareGetSmsMap(){
        Map reqMap = new HashMap();
        reqMap.put("mer_id",mer_id);  
        reqMap.put("trade_no","3801261003248915");
        reqMap.put("media_id","13333333333");
        reqMap.put("amount","1");
        return reqMap;
    }
    
       ? 簽名認證postKey的生成:必須按照“參與簽名”狀態為“是”的參數按其順序用“|”組合,最后加上用戶密鑰,然后進行32位的md5編碼,

       比如:P_PostKey=md5_32(P_UserId| P_OrderId| P_CardId| P_CardPass| P_FaceValue| P_ChannelId| P_OrderId_out |SalfStr),

       SalfStr是商戶后臺的秘鑰,填寫的秘鑰。

       ? P_ErrCode=0表示支付成功。

       ? 通過后臺接收返回時,接收到數據后,請返回errCode=0,不要其它任何字符及html代碼。

       ? 回調參數以key=value的形式下發給客戶。

       ? 在對接的時候,接收到異步通知,驗簽成功后在修改訂單狀態,防止惡意刷單。

    3.3 同步參數列表

    參數

    參數說明

    參與簽名

    類型

    備注

    P_UserId

    商戶ID

    整型數字

    商戶在平臺的商戶號

    P_OrderId

    商戶訂單號

    字符串,最長32位

    返回上傳的值

    P_FaceValue

    面值

    float,保留2位小數

    返回上傳的值

    P_ChannelId

    支付銀行類型

    字符串

    返回上傳的值

    P_OrderId_out

    平臺訂單號

    字符串,最長32位

    平臺返回平臺訂單號

    P_PayMoney

    充值的產品金額

    float,保留2位小數

    返回上傳的值

    P_Subject

    產品名稱

    字符串,最常20位

    返回上傳的值

    4 補單機制

       補單,是指訂單實際已經支付成功,但是由于各方面原因,系統沒有收到訂單成功返回或返回超時,

       i聚合平臺判定失敗并下發通知,在訂單狀態顯示失敗。因為此訂單是成功訂單,不影響商戶資金結算。i聚合平臺管理員,

       確認此單真實有效后,可將該訂單由失敗狀態修改為成功狀態并重新下發,即補單。

    5. 附錄

    5.1 錯誤代碼

    錯誤碼

    錯誤原因

    0

    提交或者是支付成功

    -1

    微信簽名或包名錯誤,appid未注冊等原因

    -2

    用戶取消支付

    處理失敗2

    鏈接通道失敗,檢查appid,秘鑰等原因

    非法子商戶號

    一般為appid沒成功綁定或綁定出現問題

    sub_mch_id與sub_appid不匹配

    可能appid未完成微信認證

    110|加密串postKey錯誤

    加密錯誤,請嚴格按照加密樣式進行加密

    受理機構必須傳入sub_mch_id

    受理機構傳入值錯誤(一般為銀行方面問題)

    未創建應用或應用未開通

    請檢查是否綁定了應用或者開通了商戶號,或者相關數據是否正確

    113

    未開通此通道或者業務

    199

    同步跳轉

    5.2 支付類型

    1000

    掃碼支付

    1010

    微信APP

    1020

    微信公眾號

    1030

    手機網頁

    6. 對接詳情

    6.1 公眾號

    6.1.1 公眾號demo體驗

       請關注:i聚合 或者 i聚合支付(微信號:ijuhe-pay),或者掃一掃下面二維碼,進入公眾號內,點擊支付體驗菜單進行測試

              

    6.1.2 開發

       商戶在自己微信公眾號H5商城中,集成微信支付功能。用戶通過關注公眾號,使用公眾號完成下單支付的流程。

    6.1.3 提交參數見網關規范

       Appid為申請支付時提交的appid。Openid需客戶根據官方文檔自行獲取。

       參考文檔連接:https://pay.weixin.qq.com/wiki/doc/api/index.html

       參考文檔連接:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842

       按照文檔上傳后平臺會返回如下參數:

    https://ijuhepay.cn/GateWay/ReceiveOrder.aspx?P_UserId=1635&P_OrderId=i20170526100341170305&P_CardId=&P_CardPass=&P_FaceValue=0.01&P_ChannelId=1000&P_Subject=GamePay&P_Price=1&P_Quantit
    y=1&P_Description=GamePay&P_Notic=parmas&P_AppID=wx15100945b8d2b322&P_Result_url=異步通知地址&P_Notify_url=成功跳轉地址&P_PostKey=d30b4411040788815e260528562362f4&P_OpenID=獲取到的openid
    商戶接收支付鏈接然后跳轉這個地址就可以調起支付頁。 也可返回json,商戶根據官方文檔自行調起支付https://pay.weixin.qq.com/wiki/doc/api/jsapi_sl.php?chapter=7_7&index=6。

    6.2掃碼支付

      掃碼提交參數以及加密方式見統一網關規范

      唯一網址請填寫支付申請的唯一網址,否則系統無法判斷您的業務。

      提交成功后系統直接返回二維碼頁面或者字符串

    6.3 微信app支付

    提交參數以及加密方式請參考統一網關規范

    上傳參數后平臺會下一個json {"appid":"商戶提交審核上傳的Appid","partnerid":"31531796","prepayid":"wx20170623100942872d3c50c80912354355","timestamp":"1498183782","noncestr":"201706231009421498183782493285","package":"Sign=WXPay","sign":"3D15F4FA3E7B49A1B1CBD34F7623F648"}

    商戶根據下發的json自行調起支付 參考文檔:

    https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_5 https://pay.weixin.qq.com/wiki/doc/api/jsapi_sl.php?chapter=7_7&index=6
    Sdk : https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=11_1

    6.4 WAP支付



    6.4.1 QQWAP支付

    參照掃碼支付提交參數后平臺會返回支付調起連接 示例如下:

    https://myun.tenpay.com/mqq/pay/index.shtml?t=5V25dd4d61fafc95ad4240a8cd8be6d8
    打開這個支付既調起支付

    6.4.2 微信WAP支付

    由于微信wap比較特殊,需要上傳需要上傳應用類型,應用名稱,應用標識等。

    詳情如下:

    1.應用類型:

    如果是用于蘋果 app 應用里值為 iOS_SDK;如 果是用于安卓 app 應用里值為 AND_SDK;如果 是用于手機網站,值為 iOS_WAP 或 AND_WAP 均可。

    2.應用名稱:

    WAP請填寫應用名如果是用于蘋果或安卓 app 應用中,傳分別 對應在 AppStore 和安桌分發市場中的應用名 (如:王者榮耀)

    3.應用標識:

    WAP時請填寫應用標識 (蘋果傳 IOS 應 用 唯 一 標 識 ( 如 : com.tencent.wzryIOS) 安卓傳包名(如:com.tencent.tmgp.sgame) 如果是用于手機網站,傳網站首頁 URL 地址, 必 須 保 證 公 網 能 正 常 訪 問 ( 如 : https://m.jd.com))

    返回參數如下:

    ttps://statecheck.swiftpass.cn/pay/wappay?token_id=29d0a92af3bdbbde57b18bb3b42801cc8&service=pay.weixin.wappayv2

    7.訂單狀態查詢

    WAP時請填寫應用標識 (蘋果傳 IOS 應 用 唯 一 標 識 ( 如 : com.tencent.wzryIOS) 安卓傳包名(如:com.tencent.tmgp.sgame) 如果是用于手機網站,傳網站首頁 URL 地址, 必 須 保 證 公 網 能 正 常 訪 問 ( 如 : https://m.jd.com))

    訂單查詢接口提交參數:

    參數名稱

    參數名稱

    是否必填

    參數長度

    參數說明

    p0_Cmd

    業務類型

    20

    固定值“QueryOrdDetail”

    p1_MerId

    商戶編號

    11

    商戶在平臺的商戶號

    p2_Order

    商戶訂單號

    50

    商戶平臺的訂單號

    hmac

    Md5

     

     

    加密后的數據

    數據加密:hmac=p0_Cmd+p1_MerId+p2_Order+商戶秘鑰

    加密示例:

    加密前:

    QueryOrdDetail1635i20170731042858209869pSHPKEKeYpR8UwKzG2mB6tphO3AEtwSy

    加密后:

    加密前:


    提交參數示例:

    https://ijuhepay.cn/GateWay/ReceiveOrderSelect.aspx?p0_Cmd=QueryOrdDetail&p1_MerId=1635&p2_Order=i20170731042858209869&hmac=e9a1c4effbc5b5bae4d139e41eb7cf70

    平臺返回參數如下:

    參數名稱

    參數名稱

    參數長度

    參數說明

    r0_Cmd

    支付結果

     

    固定值“QueryOrdDetail”

    r1_Code

    平臺交易號

    50

    “1”, 代表支付成功.
    “0”,提交參數錯誤
    “10”,簽名錯誤
    “11”,商戶未開通
    “50”,訂單不存在

    r2_TrxId

    交易流水號

    50

    平臺產生的交易流水號,每筆訂單唯一

    r3_Amt

    支付金額

    20

    單位:元,精確到分. 商戶收到該返回數據后,一定用自己數據庫中存儲的金額與該金額進行比較

    r4_Cur

    交易幣種

    10

    返回時是“RMB”

    r5_Pid

    商品名稱

    20

    返回商戶設置的商品名稱.
    此參數如用到中文,請注意轉碼

    r6_Order

    商戶訂單號

    50

    返回商戶訂單號

    r8_MP

    商戶擴展信息

    20

    此參數如用到中文,請注意轉碼

    rb_PayStatus

    支付狀態

    10

    為“SUCCESS”: 支付成功;
    ? 為“INIT”: 未支付.

    hmac

    MD5

     

    加密后的值

    加密參數示例:

    加密前:

    md5=QueryOrdDetail+r1_Code+r2_TrxId+r3_Amt+?r4_Cur+r5_Pid+r6_Order+?r8_MP+rb_PayStatus+商戶秘鑰

    加密前:

    hmac=e831ed1dffde5d4ae5d2e571b13cdc3b

    平臺返回json如下::

    {"r0_Cmd":"QueryOrdDetail","r1_Code":"1","r2_TrxId":"201707311628589355","r3_Amt":"0.10","r4_Cur":"RMB","r5_Pid":"","r6_Order":"i20170731042858209869","r8_MP":"","rb_PayStatus":"SUCCESS","hmac":"e831ed1dffde5d4ae5d2e571b13cdc3b"}

    8.退款接口

    請求地址:https://ijuhepay.cn/GateWay/ReceiveOrderRefund.asp

    請求參數如下:

    參數名稱

    參數名稱

    是否必填

    參數長度

    參數說明

    p0_Cmd

    業務類型

    20

    固定值“RefundOrdDetail”

    p1_MerchantId

    商戶編號

    11

    商戶在平臺的商戶號

    p2_UsrOrderId

    商戶訂單號

    50

    要退款的商戶平臺的訂單號

    hmac

    MD5

     

     

    加密后的數據

    數據加密:hmac=p0_Cmd+p1_MerchantId+p2_UsrOrderId+商戶秘鑰

    加密示例:

    加密前:

    RefundOrdDetail1635i201711020209571170550iUvmz8xXckxLD7NMFr9eXlBMvnYJNqo

    加密后:

    cc65c6da74969545839309e2e65511b9

    提交連接示例

    _MerchantId=1635&p2_UsrOrderId=i20171102020957117055&hmac=cc65c6da74969545839309e2e65511b9

    返回參數

    參數名稱

    參數名稱

    參數長度

    參數說明

    r0_Cmd

    業務類型

    _____

    固定值“RefundOrdDetail”

    r1_Code

    提交結果

    50

    “success”, 代表退款申請成功.
    “fail”,代表退款申請失敗.
    ? “0”,提交參數錯誤.
    “10”,簽名錯誤.
    “11”,商戶未開通.
    “50”,訂單不存在(只有支付成功的訂單才支持退款操作)

    r2_OrderId

    交易流水號

    50

    平臺產生的交易流水號,每筆訂單唯一

    r3_Money

    支付金額

    20

    單位:元,精確到分. 商戶收到該返回數據后,一定用自己數據庫中存儲的金額與該金額進行比較

    r4_PayType

    交易幣種

    10

    返回時是“RMB”

    r6_UsrOrderId

    商戶訂單號

    50

    返回商戶訂單號

    r7_Msg

    返回信息

    20

    提交信息(不參與簽名)

    hmac

    MD5

     

    加密后的值

    返回結果示例

    {"r0_Cmd":"RefundOrdDetail","r1_Code":"success","r2_OrderId":"201711021409569421","r3_Money":"0.01","r4_PayType":"RMB","r6_UsrOrderId":"i20171102020957117055","r7_Msg":"提交退款申請成功,請查看處理結果!","hmac":"ba1764bb3ac7a1eb5efc94f348ff93a5"}

    9. 注意事項

    男女性高爱潮,男人如虎在线播放www,午夜剧院18免进在线观看免费
  • <table id="4yaya"><noscript id="4yaya"></noscript></table>