国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

支付寶小程序開發(fā)踩坑筆記(支付寶、學(xué)習(xí)強(qiáng)國小程序)

這篇具有很好參考價(jià)值的文章主要介紹了支付寶小程序開發(fā)踩坑筆記(支付寶、學(xué)習(xí)強(qiáng)國小程序)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1、接口請求安卓端回調(diào) success,IOS 端回調(diào) fail

原因:dataType 設(shè)置不對,默認(rèn)是 json 格式,對返回?cái)?shù)據(jù)會進(jìn)行 json 解析,如果解析失敗,就會回調(diào) fail 。加密傳輸一般是 text 格式。

啟動支付寶小程序后,運(yùn)行frida_main.py,筆記,學(xué)習(xí),小程序

2、input 禁止輸入空格

input、textarea 組件默認(rèn)不會雙向綁定,需要借助 setData 進(jìn)行中轉(zhuǎn)。

  <textarea value="{{valueTextarea}}" onInput="handleTextarea" ></textarea>
  <input value="{{valueInput}}" onInput="handleInput" />
  Page({
  data: {
    valueTextarea: '',
    valueInput: ''
  },
  // textarea
  handleTextarea: function(e) {
    this.setData({
      valueTextarea: e.detail.value,
    });
  },
  // input
  handleInput: function(e) {
    this.setData({
      valueInput: e.detail.value,
    });
  },
});

如果僅是這樣,只能實(shí)現(xiàn)雙向綁定,無法達(dá)到禁止輸入空格的預(yù)期,所以需要對數(shù)據(jù)進(jìn)行處理。

this.setData({
  value: e.detail.value.replace(/\s+/g, ''),
});

輸入時對輸入的值進(jìn)行替換,將空格過濾掉??上н@樣也只能實(shí)現(xiàn)一半,與預(yù)期還是有出入,因?yàn)殡m然 data 中的值沒有空格了,但是頁面展示中依然會有空格。神奇的是,打印出來的結(jié)果也是沒有空格的。所以還需要更進(jìn)一步處理,其實(shí)這一點(diǎn)官方文檔中是有提到的,只需將下面的屬性改為 true 即可。

啟動支付寶小程序后,運(yùn)行frida_main.py,筆記,學(xué)習(xí),小程序

3、點(diǎn)擊 tabBar 頁面不更新

需要注意頁面棧深度。正常使用 my.switchTab 跳轉(zhuǎn)時可以觸發(fā)頁面更新的。

啟動支付寶小程序后,運(yùn)行frida_main.py,筆記,學(xué)習(xí),小程序
但是如果點(diǎn)擊底部按鈕切換,不會觸發(fā)更新,不過官方提供了一個 API onTabItemTap ,這是小程序自帶的事件處理函數(shù),可以監(jiān)聽到 tabBar 被點(diǎn)擊事件。

官方文檔-頁面運(yùn)行機(jī)制

啟動支付寶小程序后,運(yùn)行frida_main.py,筆記,學(xué)習(xí),小程序

4、加密算法

官方提供了一個API my.rsa,不過能力很弱,僅支持 RSA 加解密能力,如需更多加解密的能力,建議使用 crypto-js 。

使用方法如下:

# 安裝
npm install crypto-js

示例 AES 加密:

const CryptoJS = require("crypto-js")

/**
 * @description 加密
 * @param word 加密內(nèi)容
 * @param key 密鑰
 */
export function encrypt(word, key) {
  const keyStr = CryptoJS.enc.Utf8.parse(key);
  const srcs = CryptoJS.enc.Utf8.parse(word);
  const encrypted = CryptoJS.AES.encrypt(srcs, keyStr, {
    mode: CryptoJS.mode.ECB,
    padding: CryptoJS.pad.Pkcs7,
  });
  return encrypted.toString();
}

/**
 * @description 解密
 * @param word 解密內(nèi)容
 * @param key 密鑰
*/
export function decrypt(word, key) {
  const keyStr = CryptoJS.enc.Utf8.parse(key);
  const base64 = CryptoJS.enc.Base64.parse(word);
  const src = CryptoJS.enc.Base64.stringify(base64);
  const decrypt = CryptoJS.AES.decrypt(src, keyStr, {
    mode: CryptoJS.mode.ECB,
    padding: CryptoJS.pad.Pkcs7,
  });
  return decrypt.toString(CryptoJS.enc.Utf8);
}

官方文檔-my.rsa

5、網(wǎng)絡(luò)請求封裝

小程序因?yàn)橐米詭У腁PI my.request,請求的格式需要按照要求去寫。

my.request({
  url: 'https://httpbin.org/post',
  method: 'POST',
  data: {
    from: '支付寶',
    production: 'AlipayJSAPI',
  },
  headers: {
    'content-type': 'application/json', //默認(rèn)值
  },
  dataType: 'json',
  success: function (res) {
    my.alert({ content: 'success' });
  },
  fail: function (error) {
    console.error('fail: ', JSON.stringify(error));
  },
  complete: function (res) {
    my.hideLoading();
    my.alert({ content: 'complete' });
  },
});

如果每次請求都要完整的寫一遍上面的內(nèi)容,那真的很令人絕望,尤其是需要改變服務(wù)器地址時,每次都全局替換,也絕對不是一個好的方式。

以下為請求封裝示例(僅供參考,實(shí)際場景要比示例復(fù)雜很多):

/**
  * @description 接口封裝
  * @param url 接口路徑
  * @param params 接口數(shù)據(jù)
  * @param method 請求類型 GET、POST...
  * @param type content-type,默認(rèn)application/json
*/
export function request(url, params, method, type = 'application/json') {
	return new Promise((resolve, reject) => {
		my.request({
		  url: `https://****{url}`,
		  headers: {
		    'content-type': type
		  },
		  method: method,
		  dataType: 'text',
		  data: params,
		  success: (res) => resolve(res.data),
		  fail: (err) => resolve(err),
		});
	}
}

6、base64編解碼

小程序不是瀏覽器,btoa()atob() 這樣的寫法在低版本中未必支持,且即使不支持,小程序也不會提示,因此在遇到不支持的語法時,很難定位問題。

百度可以搜索到自己寫的 base64 編解碼函數(shù),不幸的是,與 btoa(),atob() 對某些字符的編碼未必一致,所以未必可用。幸運(yùn)的是,小程序提供了 base64 編解碼的API,但也有其限制,僅支持 ArrayBufferbase64 之間編解碼。

基礎(chǔ)庫 2.7.3 或更高版本支持

// 將 Base64 字符串轉(zhuǎn)成 ArrayBuffer 對象
my.base64ToArrayBuffer()

// 將 ArrayBuffer 對象轉(zhuǎn)成 Base64 字符串
my.arrayBufferToBase64()

遇到再更,如有不同看法或需要作者補(bǔ)充,歡迎在評論區(qū)留言,看到會及時補(bǔ)充。

WAIT…文章來源地址http://www.zghlxwxcb.cn/news/detail-822630.html

到了這里,關(guān)于支付寶小程序開發(fā)踩坑筆記(支付寶、學(xué)習(xí)強(qiáng)國小程序)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 微信小程序開發(fā)學(xué)習(xí)筆記

    微信小程序開發(fā)學(xué)習(xí)筆記

    Color: red Color: rgb(255, 99, 71) Color: rgba(red, green, blue, alpha) Color: #ff6347 background-color:指定元素的背景色 opacity:指定元素的透明度,取值在0~1之間 background-image:指定元素的背景圖像,在水平和垂直方向上都會重復(fù)圖像 background-repeat:配合background-image使用,指定圖像重復(fù)方向或者

    2024年02月09日
    瀏覽(26)
  • 微信小程序開發(fā)學(xué)習(xí)筆記《8》tabBar

    微信小程序開發(fā)學(xué)習(xí)筆記《8》tabBar

    博主正在學(xué)習(xí)微信小程序開發(fā),希望記錄自己學(xué)習(xí)過程同時與廣大網(wǎng)友共同學(xué)習(xí)討論。tabBar官方文檔 tabBar這一節(jié)還是相當(dāng)重要的。 tabBar是移動端應(yīng)用常見的頁面效果, 用于實(shí)現(xiàn)多頁面的快速切換 。小程序中通常將其分為: 底部 tabBar 頂部 tabBar 注意: tabBar中只能配置最少2個、

    2024年02月02日
    瀏覽(33)
  • 我的學(xué)習(xí)筆記——微信小程序開發(fā)“渲染層錯誤”

    我的學(xué)習(xí)筆記——微信小程序開發(fā)“渲染層錯誤”

    報(bào)錯信息 [渲染層錯誤] Framework inner error (expect FLOW_CREATE_NODE but get another)(env: Windows,mp,1.06.2209190; lib: 2.25.4) [渲染層錯誤] Error: Framework inner error (expect FLOW_CREATE_NODE but get another) ? ? at ln (http://127.0.0.1:38316/__pageframe__/__dev__/WAWebview.js?t=wechats=1667714729240v=2.25.4:1:2018909) ? ? at sn (http:/

    2024年02月09日
    瀏覽(18)
  • 小程序入門筆記(一) 黑馬程序員前端微信小程序開發(fā)教程

    小程序入門筆記(一) 黑馬程序員前端微信小程序開發(fā)教程

    微信小程序基本介紹 小程序和普通網(wǎng)頁有以下幾點(diǎn)區(qū)別: 運(yùn)行環(huán)境:小程序可以在手機(jī)的操作系統(tǒng)上直接運(yùn)行,如微信、支付寶等;而普通網(wǎng)頁需要在瀏覽器中打開才能運(yùn)行。 開發(fā)技術(shù):小程序采用前端技術(shù)進(jìn)行開發(fā),如HTML、CSS、JavaScript等;而普通網(wǎng)頁也是使用類似的前

    2024年02月08日
    瀏覽(94)
  • 小程序開發(fā)安卓/ios兼容踩坑合集

    時間格式時IOS不兼容的問題 原因:iOS系統(tǒng)不能識別XXXX-XX-XX(2020-05-20 12:00:00)格式的,需要將格式轉(zhuǎn)換成 2020/05/20 12:00:00 解決: margin在IOS真機(jī)中失效 情境:在頁面中元素使用margin值,在某些IOS設(shè)備下會出現(xiàn)失效的情況,而安卓機(jī)則正常顯示。 解決:此問題暫無直接的解決方

    2024年02月09日
    瀏覽(23)
  • 抖音小程序開發(fā),收銀臺支付回調(diào)通知

    抖音小程序開發(fā),收銀臺支付回調(diào)通知

    大家好,我是小悟 關(guān)于抖音小程序收銀臺支付,可閱讀【抖音小程序開發(fā),喚起收銀臺,包括抖音支付、支付寶支付、微信支付】。 做支付功能最重要的一步就是異步回調(diào)通知,所謂回調(diào)通知就是喚起收銀臺支付,支付成功后,平臺會通過提前設(shè)置好的回調(diào)地址,將用戶支

    2024年02月13日
    瀏覽(14)
  • 微信小程序支付踩坑notify_url(支付回調(diào))

    最近做了微信小程序支付,支付成功之后發(fā)現(xiàn)notify_url回調(diào)地址竟然沒有訪問。 檢查了無數(shù)次代碼,下單結(jié)果里面的回調(diào)地址看了又看,都沒有錯啊。 把回調(diào)地址復(fù)制出來到瀏覽器上面,外網(wǎng)也是可以訪問的啊。 然后我再分析,為什么以前公眾號支付都沒有出現(xiàn)這種類型的錯

    2024年02月11日
    瀏覽(16)
  • 微信小程序開發(fā)學(xué)習(xí)筆記——2.11navigator頁面鏈接導(dǎo)航

    微信小程序開發(fā)學(xué)習(xí)筆記——2.11navigator頁面鏈接導(dǎo)航

    跟著b站up主“咸蝦米_”學(xué)習(xí)微信小程序開發(fā)中,把學(xué)習(xí)記錄存到這方便后續(xù)查找。 課程連接:?https://www.bilibili.com/video/BV19G4y1K74d?p=14 https://developers.weixin.qq.com/miniprogram/dev/component/navigator.html 屬性之一? ????????navigate可以記錄上一個緩存頁,點(diǎn)擊左上角返回按鈕可以跳轉(zhuǎn)回

    2024年02月22日
    瀏覽(15)
  • 微信小程序開發(fā)實(shí)戰(zhàn)11_1 微信支付下單

    微信小程序開發(fā)實(shí)戰(zhàn)11_1 微信支付下單

    微信支付存在多個業(yè)務(wù)流程,包括微信支付流程、退款流程等。本章節(jié)主要介紹微信的支付下單流程,圖12-1是微信支付流程的交互圖: 重點(diǎn)環(huán)節(jié)說明 步驟1:小程序端用戶向商戶服務(wù)器發(fā)起支付請求,重點(diǎn)是提供用戶信息、商品信息、支付金額等參數(shù)。 步驟3:商戶服務(wù)器調(diào)

    2024年02月09日
    瀏覽(22)
  • 微信小程序開發(fā)學(xué)習(xí)筆記——3.4for循環(huán)列表渲染的用法

    微信小程序開發(fā)學(xué)習(xí)筆記——3.4for循環(huán)列表渲染的用法

    跟著b站up主“咸蝦米_”學(xué)習(xí)微信小程序開發(fā)中,把學(xué)習(xí)記錄存到這方便后續(xù)查找。 課程連接:https://www.bilibili.com/video/BV19G4y1K74d?p=18vd_source=9b149469177ab5fdc47515e14cf3cf74 https://developers.weixin.qq.com/miniprogram/dev/reference/wxml/list.html data.js文件的data部分:? data.wxml文件中添加如下代碼:

    2024年02月22日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包