騰訊MSDK支付接入記錄

登入問題

遊戲進行手Q登陸受權的是提示「該應用非官方正版應用,請去應用寶下載後進行QQ登陸。(錯誤碼100044)微信

查到是 客戶端和管理端的簽名不一致app

還有網上其它人說的工具

clipboard.png
須要有後臺確認下簽名問題和測試問題測試

簽名問題

=> {"ret"=>1001, "err_code"=>"1001-1001-0", "msg"=>"請求參數錯誤(sig error)"}

簽名ruby版

參考 https://github.com/zires/open_qq/blob/master/lib/open_qq/signature.rb

def make_source(http_method, url, params)
    escape_opt = params.sort_by{|k,v| k.to_s}.map{|kv| "#{kv.first}=#{kv.last}" }.join('&')
    "#{http_method}&#{url_escape(url)}&#{url_escape(escape_opt)}"
  end

  def get_sign(platform, http_method, url, sign_params)
    if platform == 'qq'
      key = "#{qq_app_key}&"
    else
      key = "#{wx_app_key}&"
    end
    signature(key, make_source(http_method, url, sign_params))
  end

關於回調

騰訊是讓這樣驗證訂單是否成功的

開發者可根據get_balance_m接口去查詢用戶的累計充值金額來判斷用戶的充值變化信息。

切換到release環境


切換到release環境後須要申請一下正式環境的審覈

1.Android assets/msdkconfig.ini 設置 MSDK_URL=http://msdk.qq.com;其餘未使用域名用;註釋掉。
2.支付客戶端調用setEnv方法,設置成release
3.IOS MSDK_URL=http://msdk.qq.com  
4.後臺全部接口使用http://msdk.qq.com

pay_token

get_balance_m 這個api 微信是要留空的

requires :pay_token, type: String, allow_blank: true, desc: '手Q登陸時從手Q登陸態中獲取的pay_token的值,使用MSDK登陸後獲取到的eToken_QQ_Pay返回內容就是pay_token; 微信登陸時特別注意該參數傳空。'

openkey

sdk 這邊取qqtoken是手q的,wxToken經過getAccessToken獲取

if(loginRet.flag == 0){
    for (TokenRet tr : loginRet.token) {
        switch (tr.type) {
        case TokenType.eToken_QQ_Pay:
            qqToken = tr.value;
            break;
        default:
            break;
        }
    }
}

wxToken = loginRet.getAccessToken();

微信的appid appkey

支付的時候若是平臺是weixin也要用手q的appid和appkey

審覈

只接1, 2就能夠提交審覈

支付服務端延遲問題

騰訊的支付是有延遲的,意味着你去請求get_balance_m 這個 api的時候,結果能夠是一直不變的,
比較玩家是銀行卡支付的。通常大約兩三分鐘

解決方案是,對於get_balance_m 返回不變的狀況,加劇試邏輯,能夠20-30秒重試一次,重試兩到三分鐘

還有就是騰訊的支付參數,其中有些是有失效時間的,遇到有重試過程當中,參數失效的狀況。如今沒好的解決方案,只能手動補單了

相關文章
相關標籤/搜索