摘要:應(yīng)用即應(yīng)用部署在騰訊服務(wù)器上發(fā)貨只需協(xié)議即可,不需要使用安全協(xié)議。返回建議在發(fā)貨接口中記錄被調(diào)用的,用于查看是否發(fā)貨回調(diào)接口能夠被騰訊支付服務(wù)器回調(diào),發(fā)起一筆支付請(qǐng)求,查看發(fā)貨回調(diào)接口是否有被調(diào)用。
騰訊開放平臺(tái)的接入是非常麻煩的,文檔各種不清不楚的,有些東西文檔根本沒有寫,如果不跟騰訊的技術(shù)人員對(duì)接的話,你都可能做不出來(lái)。雖然他們也沒有幫到什么
申請(qǐng)過程就不贅述(申請(qǐng)過程很蛋疼),直接開始接入。根據(jù)項(xiàng)目需求,我采用的是【米大師道具直購(gòu)模式】,官方文檔,這了提一點(diǎn),在后面騰訊客服發(fā)了個(gè)新的米大師文檔,這個(gè)文檔才比較詳細(xì)。
一、下單下單有兩種,一種服務(wù)器下單,一種APP下單,我采用的服務(wù)器下單
建議使用官方的SDK來(lái)進(jìn)行簽名,自己來(lái)簽名可能會(huì)失?。ㄎ宜教耍㏒DK下載
( ) + | & = * ^-等特殊字符,支持下劃線_) $data["pf"] = "qq_m_qq-2001-android-2011-xxxx"; $data["pfkey"] = "ASDFGHJ123456"; //游戲服務(wù)器大區(qū)id,游戲不分大區(qū)則默認(rèn)zoneId ="1",String類型。如過應(yīng)用選擇支持角色,則角色I(xiàn)D接在分區(qū)ID號(hào)后用"_"連接。 $data["zoneid"] = "1"; //使用x*p*num的格式,x表示物品ID,p表示單價(jià)(以Q點(diǎn)為單位,1Q幣=10Q點(diǎn),單價(jià)的制定需遵循騰訊定價(jià)規(guī)范),num表示默認(rèn)的購(gòu)買數(shù)量。 $data["payitem"] = "1*10*1"; //商品描述 $data["goodsmeta"] = "充值*金幣充值"; //商品圖片 $data["goodsurl"] = "http://www.xxx.com/img.jpg"; //(可選)道具總價(jià)格。(amt必須等于所有物品:?jiǎn)蝺r(jià)*建議數(shù)量的總和 單位為1Q點(diǎn)) $data["amt"] = "10"; //可選 用戶可購(gòu)買的道具數(shù)量的最大值 //$data["max_num"] = ""; //(可選)1表示用戶不可以修改物品數(shù)量,2 表示用戶可以選擇購(gòu)買物品的數(shù)量。默 認(rèn)2(注:批量購(gòu)買的時(shí)候,必須等于1) $data["appmode"] = "1"; //如果你不傳的話回調(diào)里面也會(huì)沒有,傳了回調(diào)會(huì)加上此參數(shù),并改名為【appmeta】,且格式為【商戶自己定義的參數(shù)*支付方式*平臺(tái)渠道】 $data["app_metadata"] = "訂單類型*訂單編號(hào)"; $data["userip"] = "127.0.0.1"; $data["format"] = "json"; //簽名,這里直接調(diào)用SDK的方法,不要自己去寫,會(huì)有很多坑,我之前就是不想用SDK想自己寫結(jié)果按照文檔流程簽名死活不對(duì),這里注意 秘鑰后面跟了一個(gè)【&】 $data["sig"] = SnsSigCheck::makeSig("GET","/v3/r/mpay/buy_goods_m",$data,"你的秘鑰&"); //設(shè)置cookie,微信與QQ的不一樣,我也不知道為什么要設(shè)置cookie if ($login_type == "qq") { $cookie_data = [ "session_id" => "openid", "session_type" => "kp_actoken", "org_loc" => rawurlencode("/v3/r/mpay/buy_goods_m"), ]; } elseif ($login_type == "wx") { $cookie_data = [ "session_id" => "hy_gameid", "session_type" => "wc_actoken", "org_loc" => rawurlencode("/v3/r/mpay/buy_goods_m"), ]; } //下單 $result = SnsNetwork::makeRequest("https://ysdktest.qq.com/mpay/buy_goods_m", $data, $cookie_data, "get");
$result 格式為(我轉(zhuǎn)成了JSON,原本是數(shù)組)
{ "result": true, "msg": "{"ret":0,"token":"842C2C19D11B7780D0E9B4D8E73ED80531721","url_params":"/v1/sx8/1106694898/mobile_goods_info?token_id=842C2C19D11B7780D0E9B4D8E73ED80531721","attach":""}" }
返回參數(shù)說(shuō)明
ret
返回碼 0 :成功,
>=1000:失敗
msg ret不為 0 的時(shí)候,錯(cuò)誤信息(utf-8編碼)
token ret為0的時(shí)候,開發(fā)者需要保留。后續(xù)扣費(fèi)成功后調(diào)用第三方發(fā)貨時(shí),會(huì)再傳給開發(fā)者,作為本次交易的標(biāo)識(shí),有效期5分鐘
url_params
ret為0的時(shí)候,返回真正購(gòu)買物品的url的參數(shù),開發(fā)者需要把該參數(shù)
傳給sdk跳轉(zhuǎn)到相關(guān)頁(yè)面使用戶完成真正的購(gòu)買動(dòng)作。
將msg里面的url_params與token返回給APP即可調(diào)用支付
二、應(yīng)用發(fā)貨回調(diào)1.首先去后臺(tái)配置回調(diào)地址,我這里是https,默認(rèn)是http,可以用ip,如果用域名的話需要用https,但是你填寫的時(shí)候他只會(huì)提示你要切換https,但是又不告訴你在哪里切。問了客服才知道,要他們來(lái)切換。我也是醉了
2.配置好了之后下載證書
hosting應(yīng)用on CVM(即應(yīng)用部署在騰訊CVM服務(wù)器上):
-發(fā)貨URL只需HTTP協(xié)議即可,不需要使用SSL安全協(xié)議。
-必須使用9001端口(內(nèi)網(wǎng)端口,需開發(fā)者主動(dòng)啟用,用apache iis或nginx做一個(gè)web監(jiān)聽,端口改成9001)。
hosting應(yīng)用on CEE_V2(即應(yīng)用部署在騰訊CEE_V2服務(wù)器上):
-發(fā)貨URL只需HTTP協(xié)議即可,不需要使用SSL安全協(xié)議。
-必須使用9001端口(內(nèi)網(wǎng)端口,需開發(fā)者主動(dòng)啟用,用apache iis或nginx做一個(gè)web監(jiān)聽,端口改成9001)。
-路徑必須以ceecloudpay開頭,即支付相關(guān)代碼必須都放到應(yīng)用根目錄下的“ceecloudpay”目錄下。
-對(duì)于CEE其發(fā)貨URL的IP只能填寫為10.142.11.27或者10.142.52.17(詳見:CEE_V2訪問云支付)。
non-hosting應(yīng)用(即應(yīng)用部署在開發(fā)者自己的服務(wù)器上)
-發(fā)貨URL必須使用HTTPS協(xié)議。
-必須使用443端口(外網(wǎng)端口)。
注:我用的不是騰訊的服務(wù)器所以證書采用的是non-hosting應(yīng)用
linux服務(wù)器證書配置
將下載的證書里面的
ca.crt , xxxxxxxx.crt xxxxx.key 3個(gè)文件上傳到linux服務(wù)器,一般放在項(xiàng)目的私有目錄
nginx你項(xiàng)目的配置里面加上
server{ listen 443; server_name 你的網(wǎng)站; index index.php; root 網(wǎng)站目錄; ssl on; ssl_certificate 服務(wù)器存放的地址/xxxxxxxx.crt; ssl_certificate_key 服務(wù)器存放的地址/xxxxxxxx.key; ssl_verify_client off; ssl_session_timeout 5m; ssl_protocols SSLv2 SSLv3 TLSv1; ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; ssl_prefer_server_ciphers on; ssl_client_certificate 服務(wù)器存放的地址/ca.crt; ssl_verify_depth 1; #其他配置 ... }
重啟服務(wù)器
手動(dòng)訪問一下看下是否能夠訪問,能夠訪問則配置成功
3.回調(diào)邏輯,你用get提交的請(qǐng)求,騰訊也用的get回調(diào)
回調(diào)參數(shù) json_encode($_GET):
{ "amt": "1", "appid": "123456789", "appmeta": "(參考上面下單)訂單類型*訂單編號(hào)*qqwallet*qq", "billno": "流水號(hào)", "cftid": "財(cái)付通訂單號(hào)", "channel_id": "00000000-android-00000000-869782022252681-ysdkwater-qq", "clientver": "android", "ebazinga": "1", "openid": "123123123123123", "payamt_coins": "0", "paychannelsubid": "1", "payitem": "3*0.1*1", "providetype": "5", "pubacct_payamt_coins": "", "token": "123123123123123", "ts": "1518081937", "version": "v3", "zoneid": "1", "sig": "H0jsNEOnf1mKIXgZ4mM0pnuk7BQ=" }
這里說(shuō)是要驗(yàn)證簽名,但是我用他的SDK沒有驗(yàn)證出來(lái) 就放棄了o(╥﹏╥)o
0, "msg" => "ok", ]); exit;
騰訊的文檔太坑爹了
[參考]
http://canann.iteye.com/blog/...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/28239.html
摘要:騰訊云怎么樣,騰訊云好不好,騰訊云目前有輕量應(yīng)用服務(wù)器首購(gòu)特惠活動(dòng),核內(nèi)存盤月流量帶寬首年僅元,高性價(jià)比,助力輕松上云機(jī)房可選海北京成都廣州,產(chǎn)品新用戶可享不限個(gè)人企業(yè)用戶。騰訊云怎么樣,騰訊云好不好,騰訊云目前有輕量應(yīng)用服務(wù)器Lighthouse首購(gòu)特惠活動(dòng),1核2G內(nèi)存50GB SSD盤500GB月流量@5M帶寬首年僅50元,高性價(jià)比,助力輕松上云!機(jī)房可選海/北京/成都/廣州,產(chǎn)品新用...
摘要:騰訊云怎么樣目前,騰訊云有輕量應(yīng)用服務(wù)器首購(gòu)特惠活動(dòng),核內(nèi)存,高性價(jià)比,助力輕松上云機(jī)房可選海北京成都廣州,核首年元,輕量應(yīng)用服務(wù)器是新推出的以及開發(fā)者和中小企業(yè)使用為目的的云服務(wù)器產(chǎn)品,適用于支撐小型網(wǎng)站應(yīng)用博客論壇云端開發(fā)測(cè)試學(xué)習(xí)環(huán)境等騰訊云怎么樣?目前,騰訊云有輕量應(yīng)用服務(wù)器Lighthouse首購(gòu)特惠活動(dòng),1核2G內(nèi)存50GB [email protected],高性價(jià)比,助力輕松上...
閱讀 2306·2021-11-23 10:09
閱讀 2885·2021-10-12 10:11
閱讀 2594·2021-09-29 09:35
閱讀 1337·2019-08-30 15:53
閱讀 2261·2019-08-30 11:15
閱讀 2904·2019-08-29 13:01
閱讀 2290·2019-08-28 18:15
閱讀 3363·2019-08-26 12:13