100 精币
下面是财付通直通车的调用说明,用易语言 怎么调用?需要什么模块容易些?希望那位侠士给出源码学习学习。在此先谢过了。
3.1. 协议说明
协议采用HTTP协议,经销商将请求报文post到腾讯的财付通直通车站点的80端口:
bank.qq.com 80
3.1.1. 标准前端接口一
该接口适应于除【QQ飞车点券】,【CF点券】外的所有直通车接入产品
调用url为:
http://bank.qq.com/cgi-bin/pay/bank_ztc_entry.cgi?ServiceCode= ***&QQuin=***&ZtcQQuin=*** &BuyCount=***&comm1=***&comm2=***&sign=***
3.1.2. 标准前端接口二
该接口适应于产品:【QQ飞车点券】,【CF点券】
调用url为:
http://bank.qq.com/cgi-bin/pay/bank_ztc_entry_dq.cgi?ServiceCode= ***&QQuin=***&ZtcQQuin=*** &BuyCount=***&comm1=***&comm2=***&sign=***
3.2. 调用说明
参数说明:
输入参数 数据类型 说明 是否必填
ServiceCode varchar(20) 产品类型,如Q币 Y
QQuin varchar(10) 用户帐号(用户QQ号) Y
ZtcQQuin varchar(10) 财付通帐号 Y
BuyCount Int 充值数量 Y
comm1 varchar(255) 交易备注一,缺省为1 Y
comm2 varchar(255) 交易备注二,缺省为1 Y
sign char (32) 数字签名,字母是小写 Y
调用说明:
1. 所有字段中不能包含 “&” 和 “=”.
2. ServiceCode:表示产品类型
QQACCT_SAVE Q币
-QQPOINT Q点
LTMCLUB 会员
XXJZGW 黄钻
XXQGAME 蓝钻
XXQQF 红钻
PETVIP 粉钻
XXQQT QQ堂紫钻
XXZXYY 绿钻
XXLOVE 交友
QQR2BY QQ音速
DNFHZ DNF黑钻
QQFCZZ QQ飞车紫钻
QTD512M 512M网络硬盘
-XXYXLB QQ游戏欢乐大礼包
QQKDC QQ飞车点券
-DNFDQ DNF点券
-CFDQ CF点券
CFCLUB CF会员
3. QQuin:用户帐号,及收货号码,目前都是表示QQ号码
4. ZtcQQuin:财付通帐号,及支付号码,目前都是表示QQ号码
5. BuyCount:充值数量,它的意义和取值范围与ServiceCode产品类型有关
5.1若产品=Q币,则BuyCount表示个数,取值范围[1, 1000];
5.2若产品=Q点,则BuyCount表示点数,必须是10的整数倍,取值范围是[10, 10000];
5.3若产品=包月服务,则BuyCount表示月数,取值范围[1, 24];
5.4若产品=QQ飞车点券,则BuyCount表示点数,必须是100的整数倍,取值范围是[100, 100000];
5.5若产品=DNF点券,则BuyCount表示点数,必须是100的整数倍,取值范围是[100, 100000];
5.6若产品=CF点券,则BuyCount表示点数,必须是100的整数倍,取值范围是[1000, 100000]
6. comm1:备注一
6.1若产品=QQ飞车点券,则comm1表示玩家建立角色的大区,目前1为电信区,2为网通区,3为电信二区;
6.2若产品=CF点券,则comm1表示玩家建立角色的大区
CF点券玩家大区选择的参数获取方法如下:
a.在页面head中植入:
<script type="text/javascript" src="http://cf.qq.com/comm-htdocs/js/oss_base.js"></script>
<script type="text/javascript" src="http://cf.qq.com/comm-htdocs/js/game_area/cf_server_select.js"></script>
b.在页面body中植入:
<select name="cfareaid" id="cfserver" ></select>
<select name="areaid" id="gserver"></select>
<script>CFServerSelect.showzone([document.getElementById("cfserver"),document.getElementById("gserver")],[{t:"选择大区",v:"",opt_data_array:[{t:"选择服务器",v:""}]}]);</script>
c.取值
取出id="gserver"的值即可,作为玩家大区填入交易接口的comm1
7. sign为按顺序对交易信息的MD5加密签名的32位字符串:
sign=md5(ServiceCode=***&QQuin=***&ZtcQQuin=***&BuyCount=***&comm1=***&comm2=***||enc_key) ,其中enc_key为注册财付通直通车时生成的key
签名举例:
20030325的一笔交易,99999需要给用户123456充值1Q币,需要从socket读取返回结果,双方约定key为!@#$%^&123ABCfg,则签名算法为:
sign = Md5(“ServiceCode=QQACCT_SAVE&QQuin=123456&ZtcQQuin=99999&BuyCount=1 &comm1=1&comm2=1||!@#$%^&123ABCfg” )
最终的请求串为(假设最终的Md5加密结果是1e1cf8d9d57d48b96ad10bc2beead6ac)
http://bank.qq.com/cgi-bin/pay/b ... p;QQuin=123456& ZtcQQuin=99999&BuyCount=1&comm1=1&comm2=1&sign=1e1cf8d9d57d48b96ad10bc2beead6ac
3.3. 返回结果说明
返回结果是xml字符串
<?xml version="1.0" encoding="gb2312" ?>
<root>
<status>状态</status>
<msg>结果说明</msg>
<serialno>订单号</serialno>
</root>
参数说明:
1. status : =0,表示成功,
=其它,表示失败
2. msg :结果说明,可以查看成功消息或者失败提示
3. serialno :订单号,是直通车产生的唯一序列号,可以根据此订单号到http://bank.qq.com/ztcv2 查询
4. 注意事项及限制
1. 系统对同一IP的充值请求频次限制在20笔交易请求每20秒。如果商户的交易量超过该频次限制的话,切记不要把交易请求即调用直通车url的销售请求通过同一IP发送。
2. 系统对提交的充值请求只进行单次处理,如果交易过程出现错误,该笔交易被视为无效请求,系统不会再继续处理该交易请求(如已对商户财付通进行扣款的,系统会自动在当日或次日进行全额退款)。商户需根据自己的实际情况确定是否再次发起充值请求。
5. 接入常见问题
1. 返回错误码-2002,错误信息“IP[*.*.*.*]不是有效IP”
错误原因:发送请求的IP,和注册时配置的IP不符合
解决办法:登陆http://bank.qq.com/ztcv2/ 后在配置管理里添加新IP
2. 返回错误码-2003,错误信息“签名信息错误”
错误原因:Key值填写错误或请求字符串不符合要求
解决办法:正确填写key值,字符串按照接入文档的格式填写,区分大小写。
6. 常见的错误码
财付通直通车使用的错误码基本是-2001到-2007,-1000到-1007较少使用,其他可能透传上来的错误码可不用记录,只记录错误信息既可。
-2001:一般是取用户信息失败,对应充值接口中各个参数具体如下
取版本号失败
取产品代码失败
取用户号码失败
取直通车用户号码失败
取充值数量失败
取comm1失败
取comm2失败
取签名信息失败
取用户IP失败
-2002:这个是取直通车用户信息,是查找数据库出现的错误
-2003:这个是校验MD5签名的相关错误, 错误原因比较常见的是“签名信息错误”
-2004:一般是查询批价时的错误,这个错误信息都是透传的,这个环节出错的比较多,常见错误如下:
您已经开通无线会员服务,不能再开通此服务
业务号码已经开通服务
您已经开通手机游戏城服务,不能再开通此服务
您已经开通网典手机超级娱乐城服务,不能再开通此服务
iProvideUin[*****]is illegal //即充值的QQ号码[****]非法
您已经开通社区经典服务,不能再开通此服务
-2005:这个是发起扣款时的错误
-2006:是获取扣款结果时出错
-2007:代表发货环节失败
-1000 系统错误
-1001 缺少ServiceCode参数
-1002 缺少QQuin参数 或 QQ号码非法
-1003 缺少ZtcQQuin参数 或 直通车号码非法
-1004 缺少BuyCount参数 或 BuyCount非法 或 BuyCount取值非法
-1005 缺少sign参数
-1006 缺少comm1参数
-1007 缺少comm2参数
-1008 发送数据失败
-1009 订单处理超时
-1010 充值游戏点券时,玩家没有在对应的大区创建角色