iOS 微信支付接入最新的完整流程
前段時間,公司業務需要接入微信支付,博主就苦心鑽研了2天,終於搞通了,但最近 iOS 9 更新出來後,微信支付,又不可以使用了,具體解決方案我在後面會給出。當然,微信接入也有不少的坑啊 說多了全是淚,三巨頭的東西也不一定總是那麼好使!好了正題來了!
雖是基於iOS的,同時,安卓的接入也類似。
要完成手機APP跳轉到微信的APP進行微信支付,需要先進行如下操作:
1、先去微信的開放平臺()進行微信開發者賬號的註冊(建議公司統一註冊,儘量不要使用私人郵箱)。
2、新建一個APP應用,然後填寫必填的資訊提交稽核,這裡 一次性註冊iOS和安卓兩個版本的APP。
3、檢視已建立好的APP應用,進行申請“ 獲得微信支付能力 ”的功能,需要提交公司真實的相關營業執照等資訊證明。
提交申請後,經過一週左右,基本可以申請下來,沒有細節難點,應該都能搞定,實在不行,給你個機會,聯絡客服妹子吧!
一、伺服器的接入
首先,這一部分後臺接入,我們只需要根據後臺提供的介面,呼叫即可。在進行服務端對接之前,需要用到如下資訊:
/* 微信app key
這兩個就是我們上面申請的APP得到的*/
W_APP_ID
W_APP_SECRET
//商戶號
W_MCH_ID--這個也是需要登入商戶平臺進行獲得
//API金鑰,在商戶平臺設定
W_API_KEY--這個需要登入商戶平臺進行獲得
一、.net服務端的對接:
2、要先知道一點,下載回來的SDK是沒有具體包含“統一下單API”的,只包含了這個“刷卡支付、微信內網頁支付、掃碼支付”
3、下載回來的SDK中,第一次執行是執行不了的,需要對程式碼進行設定
1)對上面四個引數進行配置,具體在lib\Config.cs檔案中
2)遮蔽掉lib\HttpService.cs的代理訪問:(這東西基本可以不用使用到)
4、通過以上的幾步配置,基本可以運行了
5、還有一個點,我們點選Default.aspx頁面上的按鈕,連結過去的地址要注意一下,其實不是我們的測試工程,而是paysdk.weixin.qq.com的,這個需要改成是我們的測試功能才行(這個是比較吭的)。
6、如何對接“統一下單API”,最基本的做法就是開啟business\JsApiPay.cs檔案,然後拷貝GetUnifiedOrderResult方法直接用,但是如果拷貝這個方法用的時候,會提示“無許可權呼叫
只要這些欄位即可,其餘的可有可無,都不影響,到了這點,你執行“統一下單”功能,就會返回prepay_id了,也就是支付ID。
至此,通過這些設定,基本都可能成功。
二、iOS的對接
最常見的問題就是,我把官方的請求地址換成了自己之後,點選支付測試,跳轉到微信支付的頁面時,中間就只出現了一個“確定”按鈕,點選之後返回到原APP,提示“支付失敗,xxx -2”這樣的提示。
1、如果你有這些提示了,我可以很肯定的告訴你,你的sign錯了,而且是用錯了,你不應該直接用服務端返回的sign,這個根本不是一回事。
2、切記,客戶端的sign欄位,是要自己生成的,當然服務端哥們給力的話,也可以,記得協商好哈。
3、還要切記,服務端返回的那一串json,最有用而且最優價值的就唯一一個prepay_id,其餘的基本不需要。
4、官方的iOS SDK中,包含了兩個方法(sendpay_demo、sendpay),這也是最容易錯的,我們在對接的時候,選擇sendpay的方法,也就是這個:
這個方法的東西其實是不完整,最明顯,我們把網路請求改了之後,再把所用到的引數賦值,然後就沒有然後了,根本調不起來,壓根就沒反應,原因是缺少了package引數值,這個是固定的(Sign=WXPay)
5、改了第四點之後,肯定是能呼叫起來的了,但是確不能支付,sign錯誤導致的,至此,你應該把注意力集中到sendpay_demo的方法中去,不要再使用sendpay方法了
只需要把剛才獲取的prepay_id替換掉,立馬就能正常使用支付功能,如下位置的引數替換成我們網路請求返回的的就行了:
三、iOS9 白名單 微信支付提示未安裝微信 、支付寶不跳轉客戶端支付的解決方案
蘋果公司iOS 9系統策略更新,限制了http協議的訪問,此外應用需要在“Info.plist”中將要使用的URL Schemes列為白名單,才可正常檢查其他應用是否安裝。
受此影響,當你的應用在iOS 9中需要使用微信SDK的相關能力(分享、收藏、支付、登入等)時,需要在“Info.plist”裡增加如下程式碼:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>weixin</string>
<string>wechat</string>
<string>alipay</string>
</array>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
完成後需使用Xcode 7編譯。
請注意:未升級到微信6.2.5及以上版本的使用者,在iOS 9下使用到微信相關功能時,仍可能無法成功。4
總結,希望此篇文章對正在做微信支付對接的哥們有幫助,也讓大家少走一些彎路,如果覺得合適,可以順手點個贊,以此鼓勵鼓勵。thanks
相關推薦
iOS 微信支付接入最新的完整流程
前段時間,公司業務需要接入微信支付,博主就苦心鑽研了2天,終於搞通了,但最近 iOS 9 更新出來後,微信支付,又不可以使用了,具體解決方案我在後面會給出。當然,微信接入也有不少的坑啊 說多了全是淚,
iOS客戶端的微信支付接入
對於一個iOS的APP,如果有一些虛擬的商品或者服務需要通過線上支付來收費的話,一般有幾種主流的選擇。 如果是通過APP呼叫支付平臺APP的思路的話,一個是調起支付寶客戶端,一個則是調起微信支付。 實際上,從程式碼的角度,調起支付APP就是把一些關鍵的引數通過一定方式打包成為一個訂單,
java微信支付接入詳細流程
背景 由於專案是採用Java編寫的,微信包括微信支付大都是PHP相關,於是微信支付官方文件對java的支援就不是很友好,在網上找了很多文章,基本上沒有一篇是真正跑的通的,經過一番整理,先將java接入微信支付詳細流程總結出來以便後續使用。 步驟一 準備階段:已認證微訊號,且
支付寶微信支付接入詳細流程
隨著移動支付的普及,越來越多的App採用第三發支付,在這裡我們以支付寶為例,做一個快速整合! 1、首先,我們需要前往支付寶開放平臺,申請我們的支付功能:https://open.alipay.com/platform/home.htm 支付寶首頁 這裡 有兩個需要注意的
微信支付接入(Android/IOS(swift)/Java後臺)
除按照微信登入方式接入外還需進行如下操作: 建立 包名.wxapi.WXPayEntryActivity 檔案,保證內容如下(WechartUtils下面會給出): import android.app.Activity; import android.os.Bundle; imp
微信支付接入流程
微信支付是需要簽名的,跟支付寶一樣,可以在客戶端簽名,也可以在後臺簽名(當然,為了安全還是推薦在伺服器上做簽名,邏輯也比較好理解)時序圖:統一下單API、支付結果通知API和查詢訂單API等都涉及簽名過程,呼叫都必須在商戶伺服器端完成。商戶系統和微信支付系統主要互動說明:1.
iOS微信支付demo運行報錯解決如下
art llb readme ring -objc override 項目 技術 cep 要接入微信支付的小夥伴,首先要下載一份官方demo(APP微信支付官方Demo下載),然後打開工程,準備大幹一場。 1、編譯報錯 編譯的時候居然直接報錯了(orz) 錯誤提示:
Android app 第三方微信支付接入詳解
微信支付做了好幾遍了,都沒有出現什麼棘手的問題,下面一一為大家分享一下,歡迎吐槽。 還是老樣子,接入微信的支付要第一步新增微信支付官方的包libammsdk.jar 首先就處理略坑的一個問題,app應用簽名和包名的問題。 商戶在微信開放平臺申請開發應用後,微信開放平臺會生成APP的唯一標識AP
呼叫微信支付wx.chooseWXPay 詳細流程
第一步:配置微信基本配置 /* * 獲取微信配置 以下的引數後臺提供 這裡切記,經常會報錯, 因為頁面的url的問題, 我這裡是後臺寫死的,根據不同的環境配置不同url * */ initWxConfig () {
微信App 支付出現 IOS 微信 支付驗證簽名失敗 Android errCode =-1
遇到這個問題讓我很憂傷,排查了一下午 記得檢查 app_Key , 就是讓你自己寫的32位大小寫外加數字的那個,這個開始我自己亂寫的,後來查資料說可能會引起不能支付,這就很尷尬了。生成MD532 位,後來試了試,其實沒事,但是最好這樣吧,避免不必要的錯誤 公司可能申請了
iOS 微信支付SDK與微信友盟分享兩者同時整合時,出現的問題與解決之路。
這兩天改版一箇舊的APP,要舊貌換新顏,拿到app後進行編譯,一直報下面的錯誤。 報不認識的符號名PayReq錯誤。奇怪,啥也沒動就這樣,真不知道給的包是不是本來就是個報錯的工程。 不管怎樣,要對它修改就先要跑起來啊。 根據錯誤提示,判斷是libwec
iOS 微信支付SDK與微信友盟分享兩者同時集成時,出現的問題與解決之路。
說明 圖片 根據 red googl 包含 沒有 終端 手動添加 這兩天改版一個舊的APP,要舊貌換新顏,拿到app後進行編譯,一直報下面的錯誤。 報不認識的符號名PayReq錯誤。奇怪,啥也沒動就這樣,真不知道給的包是不是本來就是個報錯的工程。 不管怎樣,要對它修改就先要
PHP微信支付--接入支付SDK,生成訂單二維碼進行掃碼支付
在PHP開發微信支付中接入支付SDK,生成訂單二維碼進行掃碼支付,實際運用中做出一些整理,以便後期查閱。整體流程如下圖; 微信支付官方流程:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_5 1、當我們選擇使用掃碼支付,
Android app 第三方微信支付接入
微信支付做了好幾遍了,都沒有出現什麼棘手的問題,下面一一為大家分享一下,歡迎吐槽。 還是老樣子,接入微信的支付要第一步新增微信支付官方的包libammsdk.jar首先就處理略坑的一個問題,app應用簽名和包名的問題。商戶在微信開放平臺申請開發應用後,微信開放平臺會生成APP
iOS 微信支付,APPID未關聯PaySignKey
最近整合微信支付,iOS正常匯入庫,調起微信的時候出現這麼個情況 原因呢可能是因為後臺沒仔細看文件 prepayid這個欄位是訂單號,需要後臺調微信介面來獲取,正常應該長這個樣子prepayid=wx03162103469366a9464a766c37125
iOS微信支付開通具體申請步驟
本文章只記錄微信開放平臺註冊應用,稽核過程的具體步驟。接入微信支付SDK程式碼部分,參考微信開放平臺具體相關文件即可 2.建立移動應用:需要UI提供兩種尺寸的圖片 大概三個工作日左右,稽核通過,稽核通過之後就可以獲取應用的AppID,AppS
Android微信支付接入
前言:本文主要說明如何在Android專案中接入微信支付,介紹微信支付在專案中的配置,分析微信支付資料與其互動流程,分享個人遇到的坑,以幫助有需要的朋友能更快的在專案中進行微信支付的接入。 正文: 1,開發資質申請: 這個過程在本文中不詳細介紹,總的來說需要企業資質申請微信支
IOS-微信支付
今天博主有一個微信支付的需求,遇到了一些困難點,在此和大家分享,希望能夠共同進步. 1.申請AppID,匯入依賴庫,配置URL Scheme這裡就不深究了,各位看官請自行百度. 2.在AppDelegate中匯入標頭檔案,遵守WXApiDelegate,然後在launch裡註冊AppID. 3.在支付介面匯
微信支付接入完全解析之Android客戶端(2)
前段時間在一個App中接入了微信支付功能,想來也穩定執行快一個月了,回頭想想自己接入微信支付時候踩過的坑,決定寫一篇自己當初想要搜尋的文章,文章準備分3篇完成。 第一篇:微信支付前期準備 第二篇:微信支付接入客戶端部分(以Android為例
App微信支付接入(二)—— hbuilder前端程式碼
4、App接入微信支付,使用hbuilder中的支付 (2)在觸發支付事件中新增程式碼 // 獲取支付通道 plus.payment.getChannels(function(channels) { for (var i in channels) { v