<nav id="bmuro"><kbd id="bmuro"></kbd></nav>
<th id="bmuro"><pre id="bmuro"><sup id="bmuro"></sup></pre></th>
  • <s id="bmuro"><samp id="bmuro"></samp></s>
          1. <th id="bmuro"><track id="bmuro"></track></th>

            <tbody id="bmuro"><pre id="bmuro"></pre></tbody>
          2. 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. 注意事项

            蝴蝶中文谷娱乐网
            <nav id="bmuro"><kbd id="bmuro"></kbd></nav>
            <th id="bmuro"><pre id="bmuro"><sup id="bmuro"></sup></pre></th>
          3. <s id="bmuro"><samp id="bmuro"></samp></s>
                  1. <th id="bmuro"><track id="bmuro"></track></th>

                    <tbody id="bmuro"><pre id="bmuro"></pre></tbody>