要完成手機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