一网通账户

一网通账户钱包功能

开发须知

依赖于商户自己对签约开户时保留的协议号,要求商户方保证协议号的唯一性,映射为签约开户时的卡号。

名词解释

协议号: 卡号作为敏感信息不能直接提供给商户,因此在开户时由商户针对客户生成唯一协议号作为

要开通的一网通账户卡号的映射


一网通账户钱包功能

一网通账户钱包功能

功能说明:

钱包功能对应于一网通账户签约开户的后续账户管理功能,包括钱包总览、充值、提现

调用方式

 测试环境: https://virtualjump.csst.cmburl.cn/Jz9NgZAA?jsonRequestData=XXXXXX

 生产环境:https://t.cmbchina.com/8hNAEYAA?jsonRequestData=XXXXXX 


请求参数    (支持get和post两种传参方式)

参数

类型

必须字段

说明

备注

jsonRequestData

Json

M

参数详情

该字段是json格式的字符串进行encodeURIComponent编码

·       MODEL: jsonRequestData----必须字段M表示该字段必传

参数

类型

必须字段

说明

备注

version

String

M

版本

固定传2.0

charset

String

M

编码

固定UTF-8

sign

String

M

签名

reqData字段内容进行排序后得到排序结果再拼接上商户配置的秘钥,对组合成的结果字段串进行国密哈希加签

signType

String

M

签名算法

固定NationalDigest

reqData

Json

M

请求数据

Json格式请求数据,具体见reqData的内容

·       MODEL: reqData

参数

类型

必须字段

说明

备注

branchNo

String

M

分行号


merchantNo

String

M

商户号


dateTime

String

M

时间戳

判断系统时间范围内有效,防止重试

transSerialNo

String

O

商户端提供的交易流水

充值时透传给主机,全数字,长度不超过40,且保证唯一,需要查询充值结果的,该值必传

extendInfoEncrypType

String

M

敏感信息加密方式

NationalAES

extendInfo

String

M

敏感信息加密内容


copCode

String

M

合作方编码


title

String

O


暂无使用

rtnLink

String

O

结果页跳转

充值/提现成功结果页返回按钮链接或直接跳转链接,长度不能超过256。为空时,先取业务参数管理系统中配置的返回链接,都为空时回到钱包总览页

failRtnLinkStringO失败返回链接充值结果失败页返回按钮链接或直接失败链接,长度不能超过256。为空时,默认回到钱包总览页

chnType

String

M

渠道类型

风控字段,长度不能超过2

ip

String

M

IP地址

风控字段

networkAccess

String


网络接入方式

风控字段,长度不能超过4

appVersion

String


合作方APP版本号

风控字段,长度不能超过10

phyId

String


设备编号

风控字段,长度不能超过64

isTrustDevice

String


是否可信设备

风控字段,长度不能超过1

userAgent

String


用户代理(终端信息)

风控字段,长度不能超过256

mobileProducer

String


手机厂商

风控字段,长度不能超过64

mobileModel

String


手机型号

风控字段,长度不能超过64

romVolume

String


手机ROM最大容量

风控字段,长度不能超过16

ramVolume

String


手机RAM最大容量

风控字段,长度不能超过16

cpuModel

String


CPU型号

风控字段,长度不能超过64

phoneNum

String


设备上的手机号

风控字段

imsi

String


IMSI编号

风控字段,长度不能超过32

imeiIdfa

String


IMEIIDFA编号

风控字段,长度不能超过64

ssId

String


Wi-Fi名称

风控字段,长度不能超过40

bssId

String


Wi-FiMAC地址

分控字段,长度不能超过40

lon

String


经度

风控字段,长度不能超过20

lat

String


纬度

风控字段,长度不能超过20

sysVer

String


操作系统版本

风控字段,长度不能超过20

·       MODEL: reqData.extendInfo

参数

类型

必须字段

说明

备注

agrNo

String

M

协议号

对应开户时候的协议号,长度不超过40

walletType

String

O

类型

AccountView-总览TransIn-转入

transMoney

String

O

交易金额,11位整数2位小数的格式


hideTransInResult

String

O

隐藏充值成功结果页

Y或空,为Y时,rtnLink必须有值。


示例代码

签名请求示例

//生产签名字段的方法
public static string GenerateSign<T>(Object reqdata, string signType, string password) {
   string sortStr = SortParams<T>(reqdata);
   sortStr = sortStr + "&" + password;

   if (signType == "NationalDigest")
   {
       //国密
       return NationalCipher.Digest(sortStr);
   }
   else
   {
       throw new Exception("Error signType " + signType);
   }
}

//排序
public static string SortParams<T>(Object obj)
{
   PropertyInfo[] pis = obj.GetType().GetProperties();
   Array.Sort(pis, new PropertyInfoComparer());
   StringBuilder sb = new StringBuilder();
   int i = 0;
   foreach (PropertyInfo pi in pis)
   {
       if (pi.GetValue(obj, null) != null)
       {
           if (i == 0)
           {
               sb.Append(pi.Name + "=" + pi.GetValue(obj, null));
               i++;
           }
           else
           {
               sb.Append("&" + pi.Name + "=" + pi.GetValue(obj, null));
           }
       }
   }
   return sb.ToString();
}
//排序算法
private class PropertyInfoComparer : IComparer<PropertyInfo>
{
   public int Compare(PropertyInfo x, PropertyInfo y)
   {
       return x.Name.CompareTo(y.Name);
   }
}