一网通账户

一网通账户钱包功能

开发须知

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

名词解释

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

一网通账户钱包功能

一网通账户钱包功能

功能说明:

钱包功能对应于一网通账户签约开户的后续账户管理功能

调用方式

  • TYPE: HTTPS

  • URI: /Igateway/jump.aspx?funcid={funcid}

  • METHOD: POST

请求参数

  • MODEL: path

参数类型必须字段说明备注
funcidStringM功能ID写死6021062
  • MODEL: request

参数类型必须字段说明备注
jsonRequestDataJsonM参数详情该字段是json格式的字符串进行encodeURIComponent编码
  • MODEL: jsonRequestData

参数类型必须字段说明备注
versionStringM版本2.0-敏感信息加密
charsetStringM编码固定为UTF-8
signStringM签名对reqData字段内容进行排序后得到排序结果再拼接上商户配置的秘钥,对组合成的结果字段串进行国密哈希加签
signTypeStringM签名算法NationalDigest - 国密的哈希
reqDataJsonM请求数据Json格式请求数据,具体见reqData_V2.0的内容
  • MODEL: reqData_V2.0

参数类型必须字段说明备注
branchNoStringM分行号
merchantNoStringM商户号
dateTimeStringM时间戳判断系统时间范围内有效,防止重试
extendInfoEncrypTypeStringM敏感信息加密方式NationalAES
extendInfoStringM敏感信息加密内容
copCodeStringM合作方编码
titleString

暂无使用
rtnLinkString
结果页跳转首页返回、转入转出结果返回按钮连接,长度不能超过256
chnTypeStringMCHN_TYPE风控字段,长度不能超过2
networkAccessString
NET_WORK_ACCESS风控字段,长度不能超过4
ipStringMIP风控字段
appVersionString
VERSION风控字段,长度不能超过10
phyIdString
PHY_ID风控字段,长度不能超过64
isTrustDeviceString
IS_TRUST_DEVICE风控字段,长度不能超过1
userAgentString
USER_AGENT风控字段,长度不能超过256
mobileProducerString
mobileProducer风控字段,长度不能超过64
mobileModelString
mobileModel风控字段,长度不能超过64
romVolumeString
romVolume风控字段,长度不能超过16
ramVolumeString
ramVolume风控字段,长度不能超过16
cpuModelString
cpuModel风控字段,长度不能超过64
phoneNumString
phoneNum风控字段
imsiString
imsi风控字段,长度不能超过32
imeiIdfaString
imeiIdfa风控字段,长度不能超过64
ssIdString
ssId风控字段,长度不能超过40
bssIdString
bssId分控字段,长度不能超过40
lonString
lon风控字段,长度不能超过20
latString
lat风控字段,长度不能超过20
sysVerString
sysVer风控字段,长度不能超过20
  • MODEL: reqData.extendInfo_V2.0

参数类型必须字段说明备注
agrNoStringM协议号对应卡号映射,商户生成,必须为纯数字,且保证其唯一性
walletTypeStringOAccountView-总览TransIn-转入TransOut-转出(暂不支持转出)
transMoneyStringO11位整数2位小数的格式
transSerialNoStringO商户端提供的交易流水充值时透传给主机
  • MODEL: reqData_V1.1--历史版本,不建议使用

参数类型必须字段说明备注
branchNoStringM分行号
merchantNoStringM商户号
customerNoStringM协议号
dateTimeStringM时间戳判断系统时间范围内有效,防止重试
copCodeString
合作方编码暂无使用
titleString

暂无使用
rtnLinkString
结果页跳转首页返回、转入转出结果返回按钮连接
chnTypeString
CHN_TYPE风控字段
networkAccessString
NET_WORK_ACCESS风控字段
ipString
IP风控字段
appVersionString
VERSION风控字段
phyIdString
PHY_ID风控字段
isTrustDeviceString
IS_TRUST_DEVICE风控字段
userAgentString
USER_AGENT风控字段
mobileProducerString
mobileProducer风控字段
mobileModelString
mobileModel风控字段
romVolumeString
romVolume风控字段
ramVolumeString
ramVolume风控字段
cpuModelString
cpuModel风控字段
phoneNumString
phoneNum风控字段
imsiString
imsi风控字段
imeiIdfaString
imeiIdfa风控字段
ssIdString
ssId风控字段
bssIdString
bssId分控字段
lonString
lon风控字段
latString
lat风控字段
sysVerString
sysVer风控字段

示例代码

签名请求示例

复制//生产签名字段的方法
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);
   }
}