隨著 HarmonyOS 的快速發(fā)展,支付寶也推出了支持 HarmonyOS 版本的 SDK。
具體的操作可以看支付寶官方文檔,地址為:
https://opendocs.alipay.com/open/01ysmx
集成第三方 SDK 是程序員的一個(gè)基本必備能力,特別是像支付寶這樣的官方文檔介紹都很明確,看 SDK 文檔是程序員的基本能力,本篇博客還是會(huì)概述下集成基本流程,然后重點(diǎn)梳理其中的問題。
首先訪問支付寶的官方平臺(tái)螞蟻金服開放平臺(tái),網(wǎng)址為:
https://open.alipay.com/platform/home.htm
然后用自己的支付寶登錄并認(rèn)證為開發(fā)者,認(rèn)證的時(shí)候要錄入自己的相關(guān)個(gè)人信息,這里不多說如何認(rèn)證,簡單的“下一步”傻瓜式操作。
接著在平臺(tái)首頁依次點(diǎn)擊“文檔中心”進(jìn)入查閱相關(guān)的 Android 集成的開發(fā)文檔,接著下載集成支付寶的 SDK 和 demo。
在進(jìn)行支付寶接入的時(shí)候,需要企業(yè)用戶(也就是說需要營業(yè)執(zhí)照,統(tǒng)一社會(huì)信用代碼等信息去進(jìn)行注冊(cè)),那么個(gè)人開發(fā)愛好者就沒法做正式支付寶的開發(fā)接入了。
但是支付寶后來推出了沙箱模式,一來可以方便項(xiàng)目開發(fā)期間進(jìn)行測試,二來個(gè)人用戶也可以熟練下支付寶繼承的操作。
非常遺憾的是,目前我在開發(fā)的時(shí)候發(fā)現(xiàn),鴻蒙版本的 SDK 并不支持沙箱模式(還不確認(rèn)是我自己的問題還是官方的問題,官方?jīng)]有找到是否支持沙箱的說明),該問題我還在想辦法給阿里和華為進(jìn)行反饋。
下面以沙箱環(huán)境開發(fā)進(jìn)行案例講解:
①登錄開發(fā)者平臺(tái)進(jìn)入沙箱頁面(前提是已經(jīng)完成開發(fā)者認(rèn)證):
https://open.alipay.com/platform/manageHome.htm
點(diǎn)擊紅色區(qū)域標(biāo)注的“沙箱”,進(jìn)入之后的界面如下:
這里有時(shí)會(huì)報(bào)個(gè)數(shù)據(jù)出錯(cuò),沙箱環(huán)境不是很穩(wěn)定,多刷新幾次,阿里會(huì)定期進(jìn)行維護(hù),實(shí)在不行過段時(shí)間再操作。
此時(shí),就可以獲得相應(yīng)的 APPID,商戶 ID 等信息,此時(shí)在沙箱環(huán)境下只用配置個(gè) RSA 秘鑰。
②RSA2(SHA256)密鑰生成方法
工具下載:
https://doc.open.alipay.com/docs/doc.htm?treeId=291&articleId=106097&docType=1
解壓后,WINDOWS 版本雙擊文件“RSA 簽名驗(yàn)簽工具 .bat”即可運(yùn)行工具;Mac 版本雙擊文件 “RSA 簽名驗(yàn)簽工具 .command”即可運(yùn)行工具。
生成密鑰:快速生成 RSA 私鑰公鑰。
選擇密鑰格式,選 PKCS1 格式生成的私鑰為非 Java 開發(fā)語言使用;選 PKCS8 格式生成的私鑰為 Java 開發(fā)語言使選擇密鑰長度,生成 2048 位的 RSA 私鑰。
設(shè)置 RSA2:點(diǎn)擊之后,如下:
將之前生成的公鑰復(fù)制進(jìn)來,然后點(diǎn)擊保存即可。
注意:公鑰私鑰不要頻繁用工具生成,每次生成都會(huì)不一樣,那么重新生成后請(qǐng)重新進(jìn)此頁面修改公鑰。公鑰和私鑰是一對(duì),一定要保持一致,后面會(huì)在服務(wù)端和 App 中使用到私鑰。
③下載沙箱版錢包 App,支付寶會(huì)提供測試賬號(hào),里面有余額
如下圖:
掃碼下載即可。
在手機(jī)上安裝好沙箱版支付寶之后,用上圖中的賬號(hào)密碼進(jìn)行登錄。
④官方 demo 下載
下載官方的 demo:
https://gw.alipayobjects.com/os/bmw-prod/2d42c098-ce3a-4819-9d83-1bfaa6c00a43.zip
下載的官方 demo 代碼結(jié)構(gòu)如下:
導(dǎo)入到 DevEco Studio 中,然后配置 app 簽名和密鑰等參數(shù)。
⑤代碼說明
我并沒有直接使用官方 demo,而是自己重新創(chuàng)建了一個(gè)工程,然后引入官方 demo 中的相關(guān)核心代碼。我的工程源碼可以在附件中進(jìn)行下載。
導(dǎo)入 SDK:
添加依賴:
implementation files(‘libs/alipaysdk-harmony-15.8.01-9adcf86.har’)
注意:雖然這里已經(jīng)引入了 libs 下的所有 har 庫,但是如果不單獨(dú)再引入支付寶 sdk 的依賴的話,在編寫代碼的時(shí)候會(huì)出現(xiàn) api 的標(biāo)紅,并且沒有 api 的聯(lián)想,盡管最后編譯運(yùn)行不會(huì)報(bào)錯(cuò)。
在真機(jī)上運(yùn)行調(diào)試,配置簽名信息,如果您希望在鴻蒙真機(jī)上運(yùn)行 Demo,則需要先在 Project 以及 Module 的 build.gradle 中配置調(diào)試簽名:
您也可以使用 IDE 自帶的簽名設(shè)置界面完成配置,請(qǐng)參考 HarmonyOS 文檔 - 使用真機(jī)進(jìn)行調(diào)試 :
https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ide_debug_device-0000001053822404#ZH-CN_TOPIC_0000001057215892__section837891802519
調(diào)試簽名的獲取流程,請(qǐng)參考 AppGallery 文檔 - 調(diào)試 HarmonyOS 應(yīng)用:
https://developer.huawei.com/consumer/cn/doc/distribution/app/agc-harmonyapp-debugharmonyapp
修改 PayDemoActivityC 中的 APPID 和 RSA2_PRIVATE:這個(gè) APPID 就是之前沙箱環(huán)境中的那個(gè) APPID(如果是正式的商業(yè)環(huán)境是自己創(chuàng)建的應(yīng)用 APP 的 APPID),RSA2_PRIVATE 就是自己之前用工具生成的私鑰。
正式環(huán)境中該私鑰一定不要放到app里面,而是通過服務(wù)器生成。
按照 Android 版本支付寶 SDK 在沙箱環(huán)境下的運(yùn)行做法,還需要添加如下代碼(商業(yè)環(huán)境千萬不要加)啟用沙箱環(huán)境,否則無法調(diào)起支付寶沙箱版本錢包。
此時(shí)問題來了,目前鴻蒙版本 sdk,如果加了這句代碼,那么無法調(diào)用起來支付寶沙箱版本錢包,也無法調(diào)用起來正式版本的支付寶 app。
而是直接提示報(bào)錯(cuò),報(bào)錯(cuò)截圖如下:
下圖是我在鴻蒙真機(jī)上安裝的各個(gè) app,快捷支付這個(gè)就是我開發(fā)的 demo,然后安裝了個(gè)正式版支付寶 app 和沙箱版 app。
如果去除掉 EnvUtils.setEnv(EnvUtils.EnvEnum.SANDBOX)這行代碼,那么是可以調(diào)起來正式版本的支付寶的。
那么此時(shí)就需要正式版的 APPID 和密鑰,這個(gè)是需要營業(yè)執(zhí)照去認(rèn)證的,由于本人沒有申請(qǐng)商用版本的密鑰,就沒有經(jīng)過后續(xù)測試了。
責(zé)任編輯:haq
-
鴻蒙系統(tǒng)
+關(guān)注
關(guān)注
183文章
2634瀏覽量
66224 -
HarmonyOS
+關(guān)注
關(guān)注
79文章
1967瀏覽量
30035
原文標(biāo)題:支付寶SDK適配鴻蒙系統(tǒng)!
文章出處:【微信號(hào):gh_834c4b3d87fe,微信公眾號(hào):OpenHarmony技術(shù)社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論