身份证二要素实名认证

适用于金融、保险、在线教育、电商、租赁、物流、旅游等需要实名认证场景。直连自公安部和银联中心接口,实时查询,权威可靠!通过输入姓名和身份证号,即可快速验证姓名与身份证号的真实性和一致性。查看详情

参数名 必填 描述 默认值
Content-Type true   application/json
  • 请求参数(body):
 参数名 类型 是否数组  必填  描述  默认值 
 idName string  否  是  身份证号码   
 userName string  否  是  身份证姓名   
  • 返回类型参数:
参数名 类型 是否数组 必填 描述
success boolean 请求是否成功
code int 返回码,参照返回码说明
message string 返回信息
  • 返回码(code)说明:
返回码 说明 错误信息
400423 请求处理时等待超时 UID Request Timeout
400431 身份证信息不匹配 User identity not match
400420 请求参数不合法 Parameter illegal
400422 请求处理时发生异常 UID Request Exception
  • Java示例

  1 import java.io.BufferedReader;
  2 import java.io.IOException;
  3 import java.io.InputStream;
  4 import java.io.InputStreamReader;
  5 import java.io.OutputStream;
  6 import java.io.UnsupportedEncodingException;
  7 import java.net.HttpURLConnection;
  8 import java.net.URL;
  9 import java.net.URLEncoder;
 10 import java.util.HashMap;
 11 import java.util.Map;
 12
 13 import javax.net.ssl.HostnameVerifier;
 14 import javax.net.ssl.HttpsURLConnection;
 15 import javax.net.ssl.SSLSession;
 16
 17 import org.json.JSONObject;//可根据需要导入jar
 18
 19 public class JavaDemo {
 20     public static final String DEF_CHATSET = "UTF-8";
 21     public static final int DEF_CONN_TIMEOUT = 30000;
 22     public static final int DEF_READ_TIMEOUT = 30000;
 23     public static String userAgent =  "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36";
 24
 25     public static final HostnameVerifier DO_NOT_VERIFY = new HostnameVerifier() {
 26         public boolean verify(String hostname, SSLSession session) {
 27             return true;
 28         }
 29     };
 30
 31     //配置您申请的KEY
 32     public static final String APICODE ="*************************";
 33
 34     //1.API方法
 35     public static void getRequest(){
 36         String result =null;
 37         String url ="https://api.yonyoucloud.com/apis/dst/matchIdentity/matchIdentity";//请求接口地址
 38         String method = "POST";
 39         String paramFormat = "form";
 40         Map<String, Object> params = new HashMap<String, Object>();//请求参数
 41         params.put("idNumber", "");
 42         params.put("userName", "");
 43
 44         Map<String, Object> headerParams = new HashMap<String, Object>();//请求头参数
 45         headerParams.put("apicode", APICODE);//APICODE
 46         headerParams.put("Content-Type", "application/json");
 47
 48         try {
 49             result = net(url, params, headerParams, method, paramFormat);
 50             System.out.println(result);
 51         } catch (Exception e) {
 52             e.printStackTrace();
 53         }
 54     }
 55
 56     /**
 57      *
 58      * @param strUrl 请求地址
 59      * @param params 请求参数
 60      * @param method 请求方法
 61      * @return  网络请求字符串
 62      * @throws Exception
 63      */
 64     public static String net(String strUrl, Map<String,Object> params, Map<String,Object> headerParams,String method, String paramFormat) throws Exception {
 65         HttpURLConnection conn = null;
 66         BufferedReader reader = null;
 67         String rs = null;
 68         try {
 69             String contentType = null;
 70             if(headerParams.containsKey("Content-Type"))
 71                 contentType = headerParams.get("Content-Type").toString();
 72
 73             StringBuffer sb = new StringBuffer();
 74             if(method==null || method.equals("GET")){
 75                 strUrl = strUrl+"?"+urlencode(params);
 76             }
 77
 78             trustAllHttpsCertificates();
 79             HttpsURLConnection.setDefaultHostnameVerifier(DO_NOT_VERIFY);
 80
 81             URL url = new URL(strUrl);
 82             conn = (HttpURLConnection) url.openConnection();
 83             if(method==null || method.equals("GET")){
 84                 conn.setRequestMethod("GET");
 85             }else{
 86                 conn.setRequestMethod("POST");
 87                 conn.setDoOutput(true);
 88             }
 89             conn.setRequestProperty("User-agent", userAgent);
 90             for (String i : headerParams.keySet()) {
 91                 conn.setRequestProperty(i, headerParams.get(i).toString());
 92             }
 93             if("form".equals(paramFormat) && !"application/x-www-form-urlencoded".equals(contentType) && !"application/xml".equals(contentType)) {
 94                 conn.setRequestProperty("Content-Type", "application/json;charset=utf-8");
 95             }
 96             conn.setUseCaches(false);
 97             conn.setConnectTimeout(DEF_CONN_TIMEOUT);
 98             conn.setReadTimeout(DEF_READ_TIMEOUT);
 99             conn.setInstanceFollowRedirects(false);
100             conn.connect();
101             if (params!= null && method.equals("POST")) {
102                 try {
103                     OutputStream out = conn.getOutputStream();
104                     if("form".equals(paramFormat)) {
105                         if("application/x-www-form-urlencoded".equals(contentType))
106                             out.write(urlencode(params).getBytes("utf-8"));
107                         else if("application/xml".equals(contentType))
108                             out.write(xmlencode(params).getBytes("utf-8"));
109                         else
110                             out.write(jsonencode(params).getBytes("utf-8"));
111                     } else
112                         out.write(params.toString().getBytes("utf-8"));
113
114                 } catch (Exception e) {
115                     e.printStackTrace();
116                 }
117             }
118             InputStream is = conn.getInputStream();
119             reader = new BufferedReader(new InputStreamReader(is, DEF_CHATSET));
120             String strRead = null;
121             while ((strRead = reader.readLine()) != null) {
122                 sb.append(strRead);
123             }
124             rs = sb.toString();
125         } catch (IOException e) {
126             e.printStackTrace();
127         } finally {
128             if (reader != null) {
129                 reader.close();
130             }
131             if (conn != null) {
132                 conn.disconnect();
133             }
134         }
135         return rs;
136     }
137
138     //将map型转为请求参数型
139     public static String urlencode(Map<String,Object>data) {
140         StringBuilder sb = new StringBuilder();
141         for (Map.Entry i : data.entrySet()) {
142             try {
143                 if(("").equals(i.getKey())) {
144                     sb.append(URLEncoder.encode(i.getValue()+"","UTF-8"));
145                 } else {
146                     sb.append(i.getKey()).append("=").append(URLEncoder.encode(i.getValue()+"","UTF-8")).append("&");
147                 }
148             } catch (UnsupportedEncodingException e) {
149                 e.printStackTrace();
150             }
151         }
152         return sb.toString();
153     }
154
155     //将map型转为请求参数型
156     public static String jsonencode(Map<String,Object>data) {
157         JSONObject jparam = new JSONObject();
158         for (Map.Entry i : data.entrySet())
159             jparam.put(i.getKey(), i.getValue());
160
161         return jparam.toString();
162     }
163
164     //将map型转为请求参数型
165     public static String xmlencode(Map<String,Object>data) {
166         StringBuffer xmlData = new StringBuffer();
167         xmlData.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
168         for (Map.Entry i : data.entrySet())
169              xmlData.append("<" + i.getKey() + ">" + i.getValue() + "</" + i.getKey() + ">");
170
171         return xmlData.toString();
172     }
173
174         static class miTM implements javax.net.ssl.TrustManager, javax.net.ssl.X509TrustManager {
175         public java.security.cert.X509Certificate[] getAcceptedIssuers() {
176             return null;
177         }
178
179         public boolean isServerTrusted(java.security.cert.X509Certificate[] certs) {
180             return true;
181         }
182
183         public boolean isClientTrusted(java.security.cert.X509Certificate[] certs) {
184             return true;
185         }
186
187         public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType)
188                 throws java.security.cert.CertificateException {
189             return;
190         }
191
192         public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType)
193                 throws java.security.cert.CertificateException {
194             return;
195         }
196     }
197
198     private static void trustAllHttpsCertificates() throws Exception {
199         javax.net.ssl.TrustManager[] trustAllCerts = new javax.net.ssl.TrustManager[1];
200         javax.net.ssl.TrustManager tm = new miTM();
201         trustAllCerts[0] = tm;
202         javax.net.ssl.SSLContext sc = javax.net.ssl.SSLContext.getInstance("SSL");
203         sc.init(null, trustAllCerts, null);
204         javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
205     }
206
207     public static void main(String[] args) {
208         getRequest();
209     }
210 }

  • PHP示例

 1 <?php
 2 header(‘Content-type:text/html;charset=utf-8‘);
 3 //配置您申请的appkey
 4 $apicode = "*********************";
 5
 6 $url = "https://api.yonyoucloud.com/apis/dst/matchIdentity/matchIdentity";
 7
 8 $method = "POST";
 9
10 $params = array(
11         "idNumber" => "",
12         "userName" => "",
13
14 );
15
16 $header = array();
17 $header[] = "apicode:".$apicode;
18 $header[] = "content-type:application/json";
19 $header[] = "Content-Type:application/json";
20
21
22 $content = linkcurl($url,$method,$params,$header);
23 $result = json_decode($content,true);
24 if($result){
25     if($result[‘error_code‘]==‘0‘){
26         print_r($result);
27     }else{
28         echo $result[‘error_code‘].":".$result[‘reason‘];
29     }
30 }else{
31     echo "请求失败";
32 }
33
34 /**
35  * 请求接口返回内容
36  * @param  string $url [请求的URL地址]
37  * @param  string $params [请求的参数]
38  * @param  int $ipost [是否采用POST形式]
39  * @return  string
40  */
41 function linkcurl($url,$method,$params=false,$header=false){
42     $httpInfo = array();
43     $ch = curl_init();
44
45     curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
46     curl_setopt($ch, CURLOPT_URL, $url);
47     curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
48     curl_setopt($ch, CURLOPT_FAILONERROR, false);
49     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
50
51     if (1 == strpos("$".$url, "https://"))
52     {
53         curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
54         curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
55     }
56     curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT , 60 );
57     curl_setopt( $ch, CURLOPT_TIMEOUT , 60);
58     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
59
60     if($method == "POST" ){
61         curl_setopt( $ch , CURLOPT_POST , true );
62         curl_setopt( $ch , CURLOPT_POSTFIELDS, json_encode($params) );
63     }else if($params){
64         curl_setopt( $ch , CURLOPT_URL , $url.‘?‘.http_build_query($params) );
65     }
66     $response = curl_exec( $ch );
67     if ($response === FALSE) {
68         //echo "cURL Error: " . curl_error($ch);
69         return false;
70     }
71     $httpCode = curl_getinfo( $ch , CURLINFO_HTTP_CODE );
72     $httpInfo = array_merge( $httpInfo , curl_getinfo( $ch ) );
73     curl_close( $ch );
74     return $response;
75 }
76 ?>

  • C#示例

  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Text;
  5 using System.Net;
  6 using System.IO;
  7 using System.Diagnostics;
  8 using System.Web;
  9
 10
 11 namespace ConsoleAPI
 12 {
 13     class Program
 14     {
 15         static void Main(string[] args)
 16         {
 17             string url ="https://api.yonyoucloud.com/apis/dst/matchIdentity/matchIdentity";//请求接口地址
 18             string method = "POST";
 19             string apicode = "*******************"; //配置您申请的appkey
 20
 21             var bodyParams = new Dictionary<string, string>();
 22             bodyParams.Add("idNumber", "");
 23             bodyParams.Add("userName", "");
 24
 25             var headerParams = new Dictionary<string, string>();
 26             headerParams.Add("apicode", apicode);
 27             headerParams.Add("Content-Type", "application/json");
 28
 29             string result1 = sendPost(url, bodyParams, headerParams, method);
 30
 31             JsonObject newObj1 = new JsonObject(result1);
 32             String errorCode1 = newObj1["error_code"].Value;
 33
 34             if (errorCode1 == "0")
 35             {
 36                 Debug.WriteLine("成功");
 37                 Debug.WriteLine(newObj1);
 38             }
 39             else
 40             {
 41                 //Debug.WriteLine("失败");
 42                 Debug.WriteLine(newObj1["error_code"].Value+":"+newObj1["reason"].Value);
 43             }
 44
 45
 46         }
 47
 48         /// <summary>
 49         /// Http (GET/POST)
 50         /// </summary>
 51         /// <param name="url">请求URL</param>
 52         /// <param name="bodyParams">请求体参数</param>
 53         /// <param name="headerParams">请求头参数</param>
 54         /// <param name="method">请求方法</param>
 55         /// <returns>响应内容</returns>
 56         static string sendPost(string url, IDictionary<string, string> bodyParams, IDictionary<string, string> headerParams, string method)
 57         {
 58             if (method.ToLower() == "post")
 59             {
 60                 HttpWebRequest req = null;
 61                 HttpWebResponse rsp = null;
 62                 System.IO.Stream reqStream = null;
 63                 try
 64                 {
 65                     req = (HttpWebRequest)WebRequest.Create(url);
 66                     req.Method = method;
 67                     req.KeepAlive = false;
 68                     req.ProtocolVersion = HttpVersion.Version10;
 69                     req.Timeout = 5000;
 70                     req.ContentType = "application/x-www-form-urlencoded;charset=utf-8";
 71                     BuildHeader(headerParams, req);
 72                     byte[] postData = Encoding.UTF8.GetBytes(BuildQuery(bodyParams, "utf8"));
 73                     reqStream = req.GetRequestStream();
 74                     reqStream.Write(postData, 0, postData.Length);
 75                     rsp = (HttpWebResponse)req.GetResponse();
 76                     Encoding encoding = Encoding.GetEncoding(rsp.CharacterSet);
 77                     return GetResponseAsString(rsp, encoding);
 78                 }
 79                 catch (Exception ex)
 80                 {
 81                     return ex.Message;
 82                 }
 83                 finally
 84                 {
 85                     if (reqStream != null) reqStream.Close();
 86                     if (rsp != null) rsp.Close();
 87                 }
 88             }
 89             else
 90             {
 91                 //创建请求
 92                 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url + "?" + BuildQuery(bodyParams, "utf8"));
 93
 94                 //GET请求
 95                 request.Method = "GET";
 96                 request.ReadWriteTimeout = 5000;
 97                 request.ContentType = "text/html;charset=UTF-8";
 98                 BuildHeader(headerParams, req);
 99                 HttpWebResponse response = (HttpWebResponse)request.GetResponse();
100                 Stream myResponseStream = response.GetResponseStream();
101                 StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
102
103                 //返回内容
104                 string retString = myStreamReader.ReadToEnd();
105                 return retString;
106             }
107         }
108
109         /// <summary>
110         /// 组装普通文本请求参数。
111         /// </summary>
112         /// <param name="parameters">Key-Value形式请求参数字典</param>
113         /// <returns>URL编码后的请求数据</returns>
114         static string BuildQuery(IDictionary<string, string> parameters, string encode)
115         {
116             StringBuilder postData = new StringBuilder();
117             bool hasParam = false;
118             IEnumerator<KeyValuePair<string, string>> dem = parameters.GetEnumerator();
119             while (dem.MoveNext())
120             {
121                 string name = dem.Current.Key;
122                 string value = dem.Current.Value;
123                 // 忽略参数名或参数值为空的参数
124                 if (!string.IsNullOrEmpty(name))//&& !string.IsNullOrEmpty(value)
125                 {
126                     if (hasParam)
127                     {
128                         postData.Append("&");
129                     }
130                     postData.Append(name);
131                     postData.Append("=");
132                     if (encode == "gb2312")
133                     {
134                         postData.Append(HttpUtility.UrlEncode(value, Encoding.GetEncoding("gb2312")));
135                     }
136                     else if (encode == "utf8")
137                     {
138                         postData.Append(HttpUtility.UrlEncode(value, Encoding.UTF8));
139                     }
140                     else
141                     {
142                         postData.Append(value);
143                     }
144                     hasParam = true;
145                 }
146             }
147             return postData.ToString();
148         }
149
150         /// <summary>
151         /// 组装请求头参数。
152         /// </summary>
153         /// <param name="headerParams">Key-Value形式请求参数字典</param>
154         /// <param name="req">web请求</param>
155         static void BuildHeader(IDictionary<string, string> headerParams, HttpWebRequest req)
156         {
157             IEnumerator<KeyValuePair<string, string>> dem = headerParams.GetEnumerator();
158             while (dem.MoveNext())
159             {
160                 req.Headers.Add(dem.Current.Key, dem.Current.value);
161             }
162         }
163
164         /// <summary>
165         /// 把响应流转换为文本。
166         /// </summary>
167         /// <param name="rsp">响应流对象</param>
168         /// <param name="encoding">编码方式</param>
169         /// <returns>响应文本</returns>
170         static string GetResponseAsString(HttpWebResponse rsp, Encoding encoding)
171         {
172             System.IO.Stream stream = null;
173             StreamReader reader = null;
174             try
175             {
176                 // 以字符流的方式读取HTTP响应
177                 stream = rsp.GetResponseStream();
178                 reader = new StreamReader(stream, encoding);
179                 return reader.ReadToEnd();
180             }
181             finally
182             {
183                 // 释放资源
184                 if (reader != null) reader.Close();
185                 if (stream != null) stream.Close();
186                 if (rsp != null) rsp.Close();
187             }
188         }
189     }
190 }

  • 请求参数示例:
{ "userName":"小明","idNumber":"120902199912135678"}

  • JSON正确返回示例
{
    "success": true,
    "code": 400100,
    "message": "成功"
}

  • 错误码说明

调用方错误:

错误码 说明 错误信息
300001 请求header中没有设置apikey Missing apikey
300002 api不存在或url无法解析 URL cannot be resolved
300003 apikey不存在,请输入正确的apikey apicode does not exist
300004 服务剩余次数不足,请再次购买 Service overdue, please pay in time
300005 未设置ip白名单 not int white ip list
300006 IP白名单中不包含您的IP IP white list does not contain your IP
300007 系统繁忙稍候再试 Sorry,The system is busy. Please try again late
300008 访问次数超载 Request was denied due to api flow control
300009 未找到节流信息 not int apiservice paramer
300010 header参数中缺少需签名的参数值 request header do not contain param:
300011 缺少需验证的参数列表 no sign headers found!
300012 签名信息不匹配 Signature information mismatch
300013 header中缺少参数appkey appkey does not exist in the request header
300014 header中缺少参数appsecret appsecret does not exist
300015 api已过期,请另行购买 Your API has been expired!
300017 要求必填参数为不能为空 Requied parameter can not be null!
300018 api没有授权 The app key do not has the authorization of this api
  • 服务地址:身份证二要素实名认证
  • 数据来源:用友旗下中关村银行和第三方支付公司畅捷支付直连银联,通过银联接口实时核验,非缓存数据

特别提醒:选择实名认证接口时一定要仔细甄别,由于身份证实名制服务提供时间已久,很多数据提供商(实则是二

道贩子)利用缓存数据对外提供服务(这些历史缓存数据的源头有可能是NCIIC,这也是他们敢宣称“直连公安部接口”的

原因)。目前国内预计有8亿元的缓存量市场,由于缓存的数据并没有什么成本,所以这些鱼龙混杂的公司,在市面上

提供的接口调用价格甚至低至0.1元/次。实际上不仅其数据更新的及时性远远无法达到NCIIC的标准,而且留存用户信

息的行为本身就是违法的,更不要说用于商业目的。这些服务商随时都面临着被查封的风险,一旦接入这种服务,如

果服务商挂了,给使用接口的单位带来的损失或将是无法估量的。。。

原文地址:https://www.cnblogs.com/loutai/p/10450013.html

时间: 2024-11-05 15:55:09

身份证二要素实名认证的相关文章

手机号二要素实名认证

详情链接:http://www.haoservice.com/docs/137 支持格式: JSON/XML 请求方式: GET/POST 请求示例: http://apis.haoservice.com/efficient/cellphone/phonetwoelementscheck?mobile=15801528130&name=郭子&key=您申请的APPKEY 明文方式请求参数:   名称 类型 必填 说明   key string 是 API KEY   mobile Stri

Heroku创始人Adam Wiggins发布十二要素应用宣言

Heroku是业内知名的云应用平台,从对外提供服务以来,他们已经有上百万应用的托管和运营经验.前不久,创始人Adam Wiggins根据这些经验,发布了一个“十二要素应用宣言(The Twelve-Factor App)”,该宣言由国内工作于安居客的程序员梁山将其翻译为中文,InfoQ中文站摘录如下. 十二要素应用宣言 简介: 如今,软件通常会作为一种服务来交付,它们被称为网络应用程序,或“软件即服务”(SaaS).“十二要素应用程序”(12-Factor App)为构建如下的SaaS应用提供了

云计算时代应用设计十二要素

云计算时代应用设计十二要素 在云计算时代.应用的整个生命周期将在数据中心里度过.这跟传统软件模式极大不同. 云应用实际上意味着:代码 + 配置 + 执行时环境. 什么样的软件才是可用性和可维护性好的软件? 什么样的代码才干避免兴许开发的上手障碍? 什么样的实施才干可靠的执行在分布式的环境中? Heroku (一家 PaaS 服务提供者.2010 年被 Salesforce 收购)平台创始人 Adam Winggins 提出了推荐的应用十二风格,对我们设计和实现云时代(特别是 PaaS 和 Saa

微服务-十二要素

前言 今天看"如何实现现代应用的快速落地"公开课,提到十二要素,之前文章也提到多次,这里统一汇总下: 十二要素 如今,软件通常会作为一种服务来交付,它们被称为网络应用程序,或"软件即服务"(SaaS)."十二要素应用程序"(12-Factor App)为构建如下的SaaS应用提供了方法论: 使用标准化流程自动配置,从而使新的开发者花费最少的学习成本加入这个项目: 和操作系统之间尽可能的划清界限,在各个系统中提供最大的可移植性: 适合部署在现代的云

现代&ldquo;十二要素应用&rdquo;与 Kubernetes

"十二要素应用"为开发SaaS应用提供了方法上的指导,而Docker能够提供打包依赖,解耦后端服务等特性,使得两者非常吻合.这篇文章介绍了Docker特性怎样满足了开发"十二要素应用"的对应要点. "十二要素应用"为构建SaaS应用提供了方法论,是由知名PaaS云计算平台Heroku的创始人Adam Wiggins提出的.请参考这篇 Heroku 创始人 Adam Wiggins 发布十二要素应用宣言. Dockerfile 与k8s/helm

解构企业实名认证的几大「名场面」

"实名认证"是对用户资料真实性和合规性进行验证审核的方式.面对互联网和电子商务等领域的虚拟性和复杂性,采取有效的措施防范和化解风险,维护企业及个人用户的利益安全.目前,国家已对诸多行业明确提出实名认证合规性要求,如金融.贷款.担保.法律.O2O.物流.旅游.保险.电商.人力资源.租赁.游戏等行业. 实名认证主要通过对×××.手机号.银行卡的多维度多要素认证校验来实现,其中银行卡认证在起到"实名"作用的同时,也是用户提现的信息基础. 在这种背景下,如何快速准确地对大量

Arcgis engine 要素集的复制和删除

一. 要素集的删除 1.对于一般的要素类删除 可直接用IDataset.Delete()方法进行删除 2.对于无网络的要素集删除 可用IFeatureDataset.Delete()方法进行删除 3.对有网络的要素集删除时,需用IFeatureWorkspaceManage.DeleteByName(IDatasetName name)方法删除 二.要素集的复制 IGeoDBDataTansfer接口用于实现要素集的复制,注意的是从gdb将要素集复制到sde,且gdb要素集中含有网络时,用此接口

虚拟信用卡 全球付, 工商银行国际E卡, Bancore, Entropay, Payoneer

虚拟信用卡 海外网购.购买国外域名空间.ebay等一些国外网站账号的激活这些情况都需要用到国际信用卡, 如果没有信用卡或者有信用卡但是对于安全性有所顾虑怎么办? 其实有一种东西叫做虚拟信用卡,正规银行发行,绝对合法,手续简单,几分钟便能拿到卡, 海外购物的话可以购买特定面值的虚拟信用卡进行一次性消费, 而且此卡属于不可透支信用卡,有效的避免了他人恶意透支和私人信息泄露. 一.办理方便快捷,客户申请办理此卡,没有复杂的程序,不用长时间的等待,少则几分钟至多十几分钟即可拿到卡.二.使用安全放心,此卡

数据集和JSON相互转换

使用DELPHI原生类实现数据集和JSON相互转换 JSON二要素:数组和对象.对象可以包含数组,数组可以包含对象.无层数限制.OLEVARIANT也类似,OLEVARIANT的一个元素又可以是OLEVARIANT,且无层数限制.XML亦类似.这也是它们能序列一切对象的奥秒所在.JSON就是字符串,定义好序列后的字符串格式,甚至都不需要啥JSON类库,就可以自行组装JSON字符串和解析JSON字串获取数据. USES System.JSON 1)数据集转换为JSON字符串: function T