国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

集成qq支付時的簡便步驟和兩個深坑處理

2019-11-09 17:53:10
字體:
供稿:網(wǎng)友

1:大概步驟和官方文檔差不多(官方地址QQ錢包支付android路徑點擊此處),但是看官方肯定會感覺太繁瑣,只需簡單幾步就可集成,關(guān)鍵還是調(diào)試時的一些小坑。

2:不要太相信經(jīng)理給你的賬號和密碼設(shè)置,因為賬號不通的話會出現(xiàn)各種問題,你根本無從下手解決即使你的集成完全ok 例如:每次支付都會提示你你的appid和簽名不一致。不用想了,賬號問題,很可能你的賬號都沒通過呢,可能原因你們的簽名那一串數(shù)字其他地方用的時候要把中間冒號去掉,但是qq的不能,只能連冒號一起提交審核。

3:簡單的集成步驟 3.1添加jar包mqqopenpay.jar 3.2判斷是否支持qq是qq支付的版本最低版本,一般都支持(處理好null值即可) 調(diào)用isMobileQQSupportApi函數(shù)判斷手Q是否支持QQ錢包支付: boolean isSupport = openApi.isMobileQQSupportApi(OpenConstants.API_NAME_PAY); 3.3通過OpenApiFactory工廠類獲得開放Api實例: IOpenApi openApi = OpenApiFactory.getInstance(this, APP_ID); 3.4`PayApi api = new PayApi(); api.appId = APP_ID;(申請應(yīng)用的唯一標識) api.serialNumber =”” + paySerial++;(自增長的int值) api.callbackScheme = “qwallet100703379”;(固定格式+appid) api.tokenId = mJsonObject3.getString(“tokenId”);(相當于預(yù)支付訂單號,從后臺獲取) api.pubAcc = “”;(可不寫) api.pubAccHint = “”;(可不寫) api.nonce = mJsonObject3.getString(“nonce”);(隨機字符串) api.timeStamp = System.currentTimeMillis() / 1000; api.bargainorId = BARGAINOR_ID;(商戶號,申請時給定的) //api.sig = mJsonObject3.getString(“sign”); // 商戶Server下發(fā)的數(shù)字簽名,生成的簽名串,參看“數(shù)字簽名” //api.sigType = “HMAC-SHA1”; // 簽名時,使用的加密方式,默認為”HMAC-SHA1” try { signApi(api); }if (api.checkParams()) { mOpenApi.execApi(api); Log.e(“glkk”,”調(diào)起qq支付”); } 簽名代碼 3.4

/** * 簽名步驟建議不要在app上執(zhí)行,要放在服務(wù)器上執(zhí)行. */ public void signApi(PayApi api) throws Exception { // 按key排序 StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append("appId=").append(api.appId); stringBuilder.append("&bargainorId=").append(BARGAINOR_ID); stringBuilder.append("&nonce=").append(api.nonce); stringBuilder.append("&pubAcc=").append(""); stringBuilder.append("&tokenId=").append(api.tokenId); byte[] byteKey = (APP_KEY+"&").getBytes("UTF-8"); // 根據(jù)給定的字節(jié)數(shù)組構(gòu)造一個密鑰,第二參數(shù)指定一個密鑰算法的名稱 SecretKey secretKey = new SecretKeySpec(byteKey, "HmacSHA1"); // 生成一個指定 Mac 算法 的 Mac 對象 Mac mac = Mac.getInstance("HmacSHA1"); // 用給定密鑰初始化 Mac 對象 mac.init(secretKey); byte[] byteSrc = stringBuilder.toString().getBytes("UTF-8"); // 完成 Mac 操作 byte[] dst = mac.doFinal(byteSrc); // Base64 api.sig = Base64.encodeToString(dst, Base64.NO_WRAP); api.sigType = "HMAC-SHA1"; }

3.5:配置清單文件和回調(diào)的activity按開發(fā)文檔即可 appkey為后臺給你的那個32位的(千萬別用那個短的十位左右的,那個不行) 小結(jié),本來想把出現(xiàn)問題的那兩個黑框框簽名不對,和appkey不對應(yīng)的圖貼上,但是找不到了,如有問題可聯(lián)系我郵箱18792586740@163.com


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 巴塘县| 保德县| 聊城市| 阿勒泰市| 巴南区| 富民县| 肇庆市| 赤壁市| 黄龙县| 洛川县| 新余市| 襄樊市| 长兴县| 定边县| 梁平县| 宜兴市| 安仁县| 前郭尔| 高邑县| 醴陵市| 泸定县| 新泰市| 新建县| 友谊县| 肃宁县| 清涧县| 上思县| 怀来县| 德保县| 渭源县| 武宁县| 会宁县| 横峰县| 渭南市| 赤峰市| 西平县| 东阳市| 子长县| 绍兴县| 美姑县| 尚义县|