帮助文档

1     消费记录同步接口

消费记录同步接口 消费记录同步是由CP服务器实现的,接收用户付费结果的回调接口。

1.1 基本流程

户端发起计费请求,易接服务器处理支付请求,完成后,易接服务器会同步支付结果给CP服务器,如果CP服务器没有正确接收,易接服务器会根据一定的策略进 行多次重试,如果一直都是失败,那么此条消费记录将不会被同步。此外,支付完成后,CP方应当根据付费结果在自身业务服务器上做相应的处理。

1.2 同步接口

目前易接服务器向CP服务器通知支付成功情况以及接收CP服务器确认是一个HTTP接口。由CP服务器提供通知URL,易接服务器会在需要同步结果时(包括重新同步)主动调用CP服务器提供的通知URL

同步接口的基本形式如下:

http://service.cp.host.domain/path/?app=1234567890ABCDEF&cbi=CBI123456&ct=1376578903&fee=100&pt=1376577801&ssid=123456&st=1&tcd=137657AVDEDFS&uid=1234&ver=1&sign=xxxxxxxxxxx

 

通知接口请求时的详细参数定义如下:

(本协议中所有字符串要求UTF-8字符串)

参数名

类型

必须

示例

说明

app

 String

1234567890ABCDEF

十六进制字符串形式的应用ID

cbi

 String

CIB123456

在客户端由CP应用指定的额外参数,比如可以传游戏中的道具ID、游戏中的用户ID

ct

long

1376578903

支付完成时间

fee

int

100

金额(分)

pt

long

1376577801

付费时间,订单创建服务器UTC时间戳(毫秒)

sdk

String

09CE2B99C22E6D06

渠道在易接服务器的ID

ssid

String

123456

订单在渠道平台上的流水号

st

int

1

是否成功标志,1标示成功,其余都表示失败

 tcd

 String

 

 137657AVDEDFS

订单在易接服务器上的订单号

uid

String

1234

付费用户在渠道平台上的唯一标记

ver

String

1

协议版本号

sign

String

f67893489267ea3

上述内容的数字签名,方法在下文会说明

CP服务器在接收到通知后,必须在HTTP正文中响应返回”SUCCESS”,否则视为错误,而会重发。

: CP服务器根据tcd字段做排重处理,防止多次发放道具.如果重复的订单,返回SUCCESS

1.3 同步参数签名

签名可以让CP服务器确认得到的数据来自于支付服务器而不是恶意第三方。签名方法为共享密钥+MD5方式,算法如下:

定义:

共享密钥:双方共享一个字符串形的密钥

待签名串:协议参数(对支付服务器是构成URL的参数,对CP服务器是接收的请求参数)中除了sign以外的所有参数,

按字典序由小到大排列 参数名=值,并在中间加入 “&”,构成比如如下的子串:

app=1234567890ABCDEF&cbi=CBI123456&ct=1376578903&fee=100&pt=1376577801&sdk=09CE2B99C22E6D06&ssid=123456&st=1&tcd=137657AVDEDFS&uid=1234&ver=1

支付服务器方签名:

签名=MD5(待签名串+共享密钥)

然后构成

CP服务器同步URL+待签名串+”&sign=”+签名

来进行请求

CP服务器验证:

待验证的签名=MD5(待签名串+共享密钥)

然后把待验证的签名sign的子串进行比较,如果相同就说明一致。

1.4 同步失败的重传机制

无论是HTTP连接失败还是CP服务器端没有返回”SUCCESS”,支付服务器都会负责进行重传 ,服务器会按照一定的时间间隔重传同步记录.