uni-app調用支付寶、微信支付

項目中要用到支付功能,如今來看支付寶、微信應該是必選的兩個方式了。javascript

uni-app 文檔中要求:APP端 微信 和 支付寶的 orderInfo 必須是 字符串。html

調用支付寶時,支付寶直接返回的 orderInfo 就是拼接好的字符串,拿來用便可。很順利的完成調起,支付。java

調用微信遇到了問題。json

微信返回的是加密後的 簽名,也就是 sign 這個字段。總體的 orderInfo 字符串是 須要後臺本身來拼接的。微信

一、是拼接的相似 支付寶的 字符串行不通,貌似是 uni-app 微信時 不支持這種格式。app

二、而後拼成了 json 經過 JSON.stringify() 這個方法來轉換成字符串。能夠成功。後來看到官方  安卓微信支付-100(-1)錯誤排除指導 工具

看到這樣一句 微信支付

'{"appid":"wx0411fa6a39d61297","noncestr":"71maVjWiEAvU85Wk","package":"Sign=WXPay","partnerid":"1230636401","prepayid":"wx03141004900988e2c281e3170042244847","timestamp":1535955004,"sign":"2AE06EF08E54B47659C79149CD9C284C"}'

而後就在想是否是須要 再加個 單引號 ??事實上是不須要的。加密

三、後臺 返回來的是這樣的spa

"data": "{\"appid\":\"wxd666666666666\",\"noncestr\":\"7yS9jZFgTq5ej6XH\",\"package\":\"Sign=WXPay\",\"partnerid\":\"22222222\",\"prepayid\":\"wx66666666666666666666666\",\"sign\":\"222222222FFFFFFFFAAAA\",\"timestamp\":\"1562838993\"}"

 

直接拿 data 做爲orderInfo 就能夠了。

 

還有一個問題 重要重要重要重要重要重要

在 微信平臺建立應用的時候 有一項填寫 安卓 應用包名和簽名,以下圖:

能在官方找的必定要在官方找。這是 填寫平臺信息的 客戶讓我看的 例子,那個應用簽名 不該該是這個 MD5,

而應該是一個加密後的 32 位字符串。

去官方 下載 一個 簽名獲取工具

或者 官方安卓資源下載 最下面有工具下載。

 

每過一個坑,都會漲點兒記性。

此次的就是 多看官方文檔 多看官方文檔 多看官方文檔 多看官方文檔 多看官方文檔 多看官方文檔 多看官方文檔

 

相關文章
相關標籤/搜索