iOS 微信支付接入最新的完整流程

要完成手機APP跳轉到微信的APP進行微信支付,需要先進行如下操作:

1、先去微信的開放平臺(http://open.weixin.qq.com)進行微信開發者賬號的注冊(建議公司統一注冊,盡量不要使用私人郵箱)。

2、新建一個APP應用,然后填寫必填的信息提交審核,這里 一次性注冊iOS和安卓兩個版本的APP。

3、查看已創建好的APP應用,進行申請“ 獲得微信支付能力 ”的功能,需要提交公司真實的相關營業執照等信息證明。

提交申請后,經過一周左右,基本可以申請下來,沒有細節難點,應該都能搞定,實在不行,給你個機會,聯系客服妹子吧!

基本的對接流程 微信官網的有詳細的講解? (https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=8_1

一、服務器的接入

首先,這一部分后臺接入,我們只需要根據后臺提供的接口,調用即可。在進行服務端對接之前,需要用到如下信息:

/* 微信app key 這兩個就是我們上面申請的APP得到的*/

W_APP_ID

W_APP_SECRET

//商戶號

W_MCH_ID--這個也是需要登錄商戶平臺進行獲得

//API密鑰,在商戶平臺設置

W_API_KEY--這個需要登錄商戶平臺進行獲得

商戶平臺的登錄地址(https://pay.weixin.qq.com/index.php

一、.net服務端的對接:

1、直接上微信的SDK列表下載.net的SDK(https://pay.weixin.qq.com/wiki/doc/api/download/WxPayAPI_CS_v3.zip

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方法直接用,但是如果拷貝這個方法用的時候,會提示“無權限調用”。其實最根本的錯誤在于我們傳遞的trade_type為JSAPI導致的,所以拷貝過來使用的時候,需要做如下的更新:(為什么要這樣了,原因很簡單,這個方法的用途本來就是給JSAPI的,我們是要使用trade_type為APP進行調用,這些參數當然要變拉)


只要這些字段即可,其余的可有可無,都不影響,到了這點,你運行“統一下單”功能,就會返回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”里增加如下代碼:

請注意:未升級到微信6.2.5及以上版本的用戶,在iOS 9下使用到微信相關功能時,仍可能無法成功。4總結,希望此篇文章對正在做微信支付對接的哥們有幫助,也讓大家少走一些彎路,如果覺得合適,可以順手點個贊,以此鼓勵鼓勵。thanks

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 今日推薦 經常閱讀博客是個好習慣推薦鴻洋CSDN的博客 微信支付相關文章 詳細介紹Android開發集成微信支付(...
    MrQ_Android閱讀 6,203評論 9 52
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,284評論 25 708
  • 前言:本篇文章目的在于梳理知識,鞏固思想,學習總結。有什么好的建議,都可以留言。互相促進!總觀,微信支付,也沒心思...
    麥穗0615閱讀 10,087評論 8 70
  • 自己總結的微信支付寶支付流程和注意點: 準備工作: 需要公司的營業執照,稅務信息,等老板的身份證信息等,我記得,用...
    Www劉閱讀 18,588評論 2 50
  • 我用什么留住你? 想給你日暮的海風、 凌晨的街道、 擱淺游輪上熔金的日輝。 我給你一個久久守望歸帆者的寧靜。
    曄興閱讀 210評論 0 6