# 服务端回调

服务端回调是指订单成功支付后,快手平台回调开发者提供的 http 接口,主动通知游戏开发者订单支付成功。服务端回调是可选配置,建议选用。游戏开发者需要提供支付回调的 http 接口和密钥(密钥用于生成签名)给到运营人员配置,后续支持开放平台填写。

# 回调接口定义

(接口参考,具体接口由开发者提供)

POST https://xxxgameserver.com/ksgame/pay/success/notify 

Content-type: x-www-form-urlencoded

Body

属性 类型 是否参与签名 说明
open_id string 游戏服务器通过 code2Session 接口换的用户唯一标识(参与签名)
app_id string 应用id
third_party_trade_no string 游戏开发者下单时填写的订单号
extension string 下单时有值参与签名,否则不参与 游戏开发者下单时传递的扩展字段
order_id string 快手平台支付订单号
sign string HMAC-SHA256 签名,签名规则

注意

服务器回调的返回数据请与客户端下单接口配合使用,调用不同下单接口,服务器回调的字段不同,生成的签名也不一样。

客户端调用旧的下单接口 ks.requestPayment (opens new window) ,则服务器回调数据中包含 game_user_id ,不包含 open_id ,此时 open_id 不参与签名, game_user_id 参与签名

客户端调用新的下单接口 ks.requestGamePayment ,则服务器回调数据中包含 open_id,不包含 game_user_id,此时 game_user_id 不参与签名,open_id 参与签名

Response

接口返回字符串 "success" 或者 "failed" 即可。

# 签名密钥

签名密钥由开发者自己生产和维护,支持在线更新,服务端回调的签名密钥和支付密钥不是同一个,在接入服务端回调时与服务端接口一同提供给快手平台的运营人员。

# 签名规则

签名逻辑与支付密钥生成类似,将所有参数按照字母顺序排序,并按照 key1=value&key2=value2... 的格式拼接得到签名字符串,对密钥使用 HMAC-SHA256 加密算法,得到签名。