99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

QQ小游戲 小游戲支付

2020-07-16 15:51 更新

小游戲支付

小游戲支付提供玩家在小游戲中購(gòu)買(mǎi)道具的能力

# 業(yè)務(wù)流程

主要的流程: 1、小程序內(nèi)調(diào)用登錄接口,獲取到用戶的openid 2、開(kāi)發(fā)者 server調(diào)用下單接口 4、開(kāi)發(fā)者 server接收支付通知

開(kāi)通小游戲支付

# 上架道具

開(kāi)發(fā)者需要在QQ小程序開(kāi)發(fā)者管理端上架道具

預(yù)下單

本接口應(yīng)在服務(wù)器端調(diào)用,詳細(xì)說(shuō)明參見(jiàn)服務(wù)端API。

玩家購(gòu)買(mǎi)道具前,開(kāi)發(fā)者需要通過(guò)后臺(tái)接口進(jìn)行預(yù)下單

POST  https://api.q.qq.com/api/json/openApiPay/GamePrePay?access\_token=ACCESS\_TOKEN
請(qǐng)求參數(shù) 屬性 類(lèi)型 默認(rèn)值 必填 說(shuō)明
openid string 用戶唯一標(biāo)識(shí)符
appid string 小程序 appId
ts number UNIX 時(shí)間戳,單位是秒
zone_id string 游戲服務(wù)器大區(qū)id,zoneId ="1"
pf string 平臺(tái) 安卓:qq_m_qq-2001-android-2011
user_ip string 用戶外網(wǎng) IP, 不參與計(jì)算簽名
amt number 扣除游戲幣數(shù)量,不能為 0
bill_no string 訂單號(hào),業(yè)務(wù)需要保證全局唯一;相同的訂單號(hào)不會(huì)重復(fù)扣款。長(zhǎng)度不超過(guò)63,只能是數(shù)字、大小寫(xiě)字母_-
goodid string 在開(kāi)發(fā)者管理端上架道具的id
good_num int 要購(gòu)買(mǎi)的道具數(shù)量
app_remark string 備注信息,如果不為空,通知發(fā)貨是會(huì)回傳
sig string 以上參數(shù)("user_ip"字段除外,含可選最多11個(gè))+uri+session_key,用 HMAC-SHA256簽名
access_token string 接口調(diào)用憑證

返回值

Object

返回的 JSON 數(shù)據(jù)包

屬性 類(lèi)型 說(shuō)明
errcode number 錯(cuò)誤碼
errmsg string 錯(cuò)誤信息
prepayId string 訂單號(hào),有效期是 48 小時(shí)
errcode 的合法值 說(shuō)明
0 請(qǐng)求成功
-1 系統(tǒng)繁忙,此時(shí)請(qǐng)開(kāi)發(fā)者稍候再試
-3000 access_token 校驗(yàn)失敗,access_token需要放在url中
90011 sig簽名錯(cuò)誤
90012 訂單已存在
90017 沒(méi)有調(diào)用接口的權(quán)限
90018 參數(shù)錯(cuò)誤

POST 數(shù)據(jù)格式:JSON

{
    "openid":"55107C3B8501CD7CBD90AEE4626E6D17",
    "appid":"1107981003",
    "ts":1507530737,
    "zone_id":"1",
    "pf":"qq_m_qq-2001-android-2011",
    "amt":10,
    "goodid":"43",
    "good_num":1,
    "bill_no":"69ae13a3a87f2551109a2ed26bc704201f56d664",
    "app_remark":"xxxxx",
    "sig":"38181bd0acf24eda203655a3be9f2e42b62d4fcf1c1de61a98b0573d13531449"
}

計(jì)算簽名

1. 請(qǐng)求方法: POST 2. 下單url中的path(/api/json/openApiPay/GamePrePay)部分,做標(biāo)準(zhǔn)的url Encoding, 標(biāo)準(zhǔn)請(qǐng)參考《URL Encoding 》

3. 請(qǐng)求參數(shù)按字典排序,并用"&"拼接, 注意空字段不參與排序

amt=10&app_remark=xxxxx&appid=1107981003&bill_no=69ae13a3a87f2551109a2ed26bc704201f56d664&good_num=1&goodid=43&openid=55107C3B8501CD7CBD90AEE4626E6D17&pf=qq_m_qq-2001-android-2011&ts=1507530737&zone_id=1

4. 拼接session_key,用戶登錄時(shí)開(kāi)發(fā)者后臺(tái)可以通過(guò)code2session接口獲取到

session_key=VUNQZ0hRYURxNlZZbmNOZw==

5. 簽名前的字符串如下圖

POST&%2Fapi%2Fjson%2FopenApiPay%2FGamePrePay&amt=10&app_remark=xxxxx&appid=1107981003&bill_no=69ae13a3a87f2551109a2ed26bc704201f56d664&good_num=1&goodid=43&openid=55107C3B8501CD7CBD90AEE4626E6D17&pf=qq_m_qq-2001-android-2011&ts=1507530737&zone_id=1&session_key=VUNQZ0hRYURxNlZZbmNOZw==

6.HMAC-SHA256得到的簽名結(jié)果 $h = hash_hmac('sha256', 'POST&%2Fapi%2Fjson%2FopenApiPay%2FGamePrePay&amt=10&app_remark=xxxxx&appid=1107981003&bill_no=69ae13a3a87f2551109a2ed26bc704201f56d664&good_num=1&goodid=43&openid=55107C3B8501CD7CBD90AEE4626E6D17&pf=qq_m_qq-2001-android-2011&ts=1507530737&zone_id=1&session_key=VUNQZ0hRYURxNlZZbmNOZw==', 'VUNQZ0hRYURxNlZZbmNOZw==', true); var_dump(bin2hex($h));

簽名: 38181bd0acf24eda203655a3be9f2e42b62d4fcf1c1de61a98b0573d13531449

請(qǐng)求參數(shù)

屬性 類(lèi)型 默認(rèn)值 必填 說(shuō)明
openid string 用戶唯一標(biāo)識(shí)符
bill_no string 訂單號(hào),業(yè)務(wù)需要保證全局唯一;相同的訂單號(hào)不會(huì)重復(fù)扣款。長(zhǎng)度不超過(guò)63,只能是數(shù)字、大小寫(xiě)字母
amt number 扣除游戲幣數(shù)量,不能為 0
ts number UNIX 時(shí)間戳,單位是秒
app_remark string 備注信息,如果為空,不參與計(jì)算簽名
sig string 以上所有參數(shù)(含可選最多11個(gè))+appsecret HMAC-SHA256簽名

回調(diào)地址 這里的回調(diào)地址是示例,以開(kāi)發(fā)者在管理端 配置的為準(zhǔn) http://test.com/pay/callback 1

POST 數(shù)據(jù)格式:JSON

app_remark字段為空時(shí),回調(diào)消息如下:

{
  "openid": "55107C3B8501CD7CBD90AEE4626E6D17",
  "bill_no":"BillNo_123",
  "amt":123,
  "ts":1553322984,
  "sig": "1d7d3b724601a0b55a43e03f140ce55322401fedd359b1ea1dfc96a02f6e6f36"
}

app_remark字段不空時(shí),回調(diào)消息如下:

{
  "openid": "55107C3B8501CD7CBD90AEE4626E6D17",
  "bill_no":"BillNo_123",
  "amt":123,
  "ts":1553322984,
  "app_remark":"xxxxx",
  "sig": "1d7d3b724601a0b55a43e03f140ce55322401fedd359b1ea1dfc96a02f6e6f36"
}

簽名

為了確保,QQ會(huì)對(duì)明文數(shù)據(jù)進(jìn)行簽名。開(kāi)發(fā)者可以根據(jù)業(yè)務(wù)需要對(duì)數(shù)據(jù)包進(jìn)行簽名校驗(yàn),確保數(shù)據(jù)的完整性。

  1. 用戶的 AppSecret: HyVFkGl5F5OQWJZZaNzBBg==

  1. 用于簽名的字符串為: 對(duì)開(kāi)發(fā)者在管理端 配置回調(diào)url中的path部分,做標(biāo)準(zhǔn)的url Encoding, 標(biāo)準(zhǔn)請(qǐng)參考《URL Encoding 》
    strPath=url.QueryEscape("/pay/callback")   // 這里要替換成開(kāi)發(fā)者在管理端配置的鏈接

3.計(jì)算簽名時(shí),沒(méi)有值的參數(shù)不參與簽名,所有參與簽名的參數(shù)按字典序排序,這里以app_remark為空時(shí)的回調(diào)簽名為例,app_remark不空時(shí),需要參與簽名

strData="POST&"+strPath+"&amt=123&bill_no=BillNo_123&openid=55107C3B8501CD7CBD90AEE4626E6D17&ts=1553322984&AppSecret=HyVFkGl5F5OQWJZZaNzBBg=="

// 計(jì)算簽名前的字符串:
POST&%2Fpay%2Fcallback&amt=123&bill_no=BillNo_123&openid=55107C3B8501CD7CBD90AEE4626E6D17&ts=1553322984&AppSecret=HyVFkGl5F5OQWJZZaNzBBg==

4.hmac使用sha256算法得到的結(jié)果為

計(jì)算得到的簽名: 
f749f67b751fa80f27ddc0b7c8d2821aeda162ea22b323cd64a2c8056c2736f0

5.PHP示例

$h = hash_hmac('sha256', 'POST&%2Fpay%2Fcallback&amt=123&bill_no=BillNo_123&openid=55107C3B8501CD7CBD90AEE4626E6D17&ts=1553322984&AppSecret=HyVFkGl5F5OQWJZZaNzBBg==', 'HyVFkGl5F5OQWJZZaNzBBg==', true);
var_dump(bin2hex($h));

返回值

回調(diào)接口需要返回一個(gè)json

屬性 類(lèi)型 默認(rèn)值 必填 說(shuō)明
code number code等于0,表示成功,其他是失敗
msg string 錯(cuò)誤描述

{
  "code":0,
  "msg":""
}

查詢支付狀態(tài) 本接口應(yīng)在服務(wù)器端調(diào)用,詳細(xì)說(shuō)明參見(jiàn)服務(wù)端API。 玩家下單購(gòu)買(mǎi)道具后,如果開(kāi)發(fā)商沒(méi)有收到支付支付通知,可以通過(guò)這個(gè)接口查詢支付結(jié)果

POST
https://api.q.qq.com/api/json/openApiPay/CheckGamePay?access_token=ACCESS_TOKEN

查詢余額 本接口應(yīng)在服務(wù)器端調(diào)用,詳細(xì)說(shuō)明參見(jiàn)服務(wù)端API。 POST https://api.q.qq.com/api/json/openApiPay/GetBalance?access_token=ACCESS_TOK

請(qǐng)求參數(shù)

屬性 類(lèi)型 默認(rèn)值 必填 說(shuō)明
openid string 用戶唯一標(biāo)識(shí)符
appid string 小程序 appId
sig string 以上參數(shù)("user_ip"字段除外,含可選最多11個(gè))+uri+session_key,用 HMAC-SHA256簽名
access_token string 接口調(diào)用憑證

返回值

Object

返回的 JSON 數(shù)據(jù)包

屬性 類(lèi)型 說(shuō)明
errcode number 錯(cuò)誤碼
errmsg string 錯(cuò)誤信息
remainder number 金幣余額

errcode 的合法值

說(shuō)明
0 請(qǐng)求成功
-1 系統(tǒng)繁忙,此時(shí)請(qǐng)開(kāi)發(fā)者稍候再試
-3000 access_token 校驗(yàn)失敗,access_token需要放在url中
90011 sig簽名錯(cuò)誤

POST 數(shù)據(jù)格式:JSON

{
    "openid":"55107C3B8501CD7CBD90AEE4626E6D17",
    "appid":"1107981003",
    "sig":"9a721574bbf7fbfc68f15edd7e9cc355d6a95e2d946ecd4e04b708c4206665b4",
}

計(jì)算簽名

1.請(qǐng)求方法: POST 2.下單url中的path(/api/json/openApiPay/GetBalance)部分,做標(biāo)準(zhǔn)的url Encoding, 標(biāo)準(zhǔn)請(qǐng)參考《URL Encoding 》 3.請(qǐng)求參數(shù)按字典排序,并用"&"拼接, 注意空字段不參與排序

appid=1107981003&openid=55107C3B8501CD7CBD90AEE4626E6D17```


4.拼接session_key,用戶登錄時(shí)開(kāi)發(fā)者后臺(tái)可以通過(guò)code2session接口獲取到

session_key=VUNQZ0hRYURxNlZZbmNOZw==



5.簽名前的字符串如下圖

POST&%2Fapi%2Fjson%2FopenApiPay%2FCheckGamePay&appid=1107981003&bill_no=69ae13a3a87f2551109a2ed26bc704201f56d664&openid=55107C3B8501CD7CBD90AEE4626E6D17&prepay_id=beaf257883b098007ca821e1c59f7f7a&session_key=VUNQZ0hRYURxNlZZbmNOZw==```

6.HMAC-SHA256得到的簽名結(jié)果

$h = hash_hmac('sha256', 'POST&%2Fapi%2Fjson%2FopenApiPay%2FCheckGamePay&appid=1107981003&bill_no=69ae13a3a87f2551109a2ed26bc704201f56d664&openid=55107C3B8501CD7CBD90AEE4626E6D17&prepay_id=beaf257883b098007ca821e1c59f7f7a&session_key=VUNQZ0hRYURxNlZZbmNOZw==')


var_dump(bin2hex($h));


簽名:


9a721574bbf7fbfc68f15edd7e9cc355d6a95e2d946ecd4e04b708c4206665b4
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)