要完成手機(jī)APP跳轉(zhuǎn)到微信的APP進(jìn)行微信支付,需要先進(jìn)行如下操作:
1、先去微信的開(kāi)放平臺(tái)(http://open.weixin.qq.com)進(jìn)行微信開(kāi)發(fā)者賬號(hào)的注冊(cè)(建議公司統(tǒng)一注冊(cè),盡量不要使用私人郵箱)。
2、新建一個(gè)APP應(yīng)用,然后填寫(xiě)必填的信息提交審核,這里 一次性注冊(cè)iOS和安卓?jī)蓚€(gè)版本的APP。
3、查看已創(chuàng)建好的APP應(yīng)用,進(jìn)行申請(qǐng)“ 獲得微信支付能力 ”的功能,需要提交公司真實(shí)的相關(guān)營(yíng)業(yè)執(zhí)照等信息證明。
提交申請(qǐng)后,經(jīng)過(guò)一周左右,基本可以申請(qǐng)下來(lái),沒(méi)有細(xì)節(jié)難點(diǎn),應(yīng)該都能搞定,實(shí)在不行,給你個(gè)機(jī)會(huì),聯(lián)系客服妹子吧!
基本的對(duì)接流程 微信官網(wǎng)的有詳細(xì)的講解? (https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=8_1)
一、服務(wù)器的接入
首先,這一部分后臺(tái)接入,我們只需要根據(jù)后臺(tái)提供的接口,調(diào)用即可。在進(jìn)行服務(wù)端對(duì)接之前,需要用到如下信息:
/* 微信app key 這兩個(gè)就是我們上面申請(qǐng)的APP得到的*/
W_APP_ID
W_APP_SECRET
//商戶(hù)號(hào)
W_MCH_ID--這個(gè)也是需要登錄商戶(hù)平臺(tái)進(jìn)行獲得
//API密鑰,在商戶(hù)平臺(tái)設(shè)置
W_API_KEY--這個(gè)需要登錄商戶(hù)平臺(tái)進(jìn)行獲得
商戶(hù)平臺(tái)的登錄地址(https://pay.weixin.qq.com/index.php)
一、.net服務(wù)端的對(duì)接:
1、直接上微信的SDK列表下載.net的SDK(https://pay.weixin.qq.com/wiki/doc/api/download/WxPayAPI_CS_v3.zip)
2、要先知道一點(diǎn),下載回來(lái)的SDK是沒(méi)有具體包含“統(tǒng)一下單API”的,只包含了這個(gè)“刷卡支付、微信內(nèi)網(wǎng)頁(yè)支付、掃碼支付”
3、下載回來(lái)的SDK中,第一次運(yùn)行是運(yùn)行不了的,需要對(duì)代碼進(jìn)行設(shè)置
1)對(duì)上面四個(gè)參數(shù)進(jìn)行配置,具體在lib\Config.cs文件中
2)屏蔽掉lib\HttpService.cs的代理訪(fǎng)問(wèn):(這東西基本可以不用使用到)
技術(shù)分享
4、通過(guò)以上的幾步配置,基本可以運(yùn)行了
5、還有一個(gè)點(diǎn),我們點(diǎn)擊Default.aspx頁(yè)面上的按鈕,鏈接過(guò)去的地址要注意一下,其實(shí)不是我們的測(cè)試工程,而是paysdk.weixin.qq.com的,這個(gè)需要改成是我們的測(cè)試功能才行(這個(gè)是比較吭的)。
6、如何對(duì)接“統(tǒng)一下單API”,最基本的做法就是打開(kāi)business\JsApiPay.cs文件,然后拷貝GetUnifiedOrderResult方法直接用,但是如果拷貝這個(gè)方法用的時(shí)候,會(huì)提示“無(wú)權(quán)限調(diào)用”。其實(shí)最根本的錯(cuò)誤在于我們傳遞的trade_type為JSAPI導(dǎo)致的,所以拷貝過(guò)來(lái)使用的時(shí)候,需要做如下的更新:(為什么要這樣了,原因很簡(jiǎn)單,這個(gè)方法的用途本來(lái)就是給JSAPI的,我們是要使用trade_type為APP進(jìn)行調(diào)用,這些參數(shù)當(dāng)然要變拉)

只要這些字段即可,其余的可有可無(wú),都不影響,到了這點(diǎn),你運(yùn)行“統(tǒng)一下單”功能,就會(huì)返回prepay_id了,也就是支付ID。
至此,通過(guò)這些設(shè)置,基本都可能成功。
二、iOS的對(duì)接
最常見(jiàn)的問(wèn)題就是,我把官方的請(qǐng)求地址換成了自己之后,點(diǎn)擊支付測(cè)試,跳轉(zhuǎn)到微信支付的頁(yè)面時(shí),中間就只出現(xiàn)了一個(gè)“確定”按鈕,點(diǎn)擊之后返回到原APP,提示“支付失敗,xxx -2”這樣的提示。
1、如果你有這些提示了,我可以很肯定的告訴你,你的sign錯(cuò)了,而且是用錯(cuò)了,你不應(yīng)該直接用服務(wù)端返回的sign,這個(gè)根本不是一回事。
2、切記,客戶(hù)端的sign字段,是要自己生成的,當(dāng)然服務(wù)端哥們給力的話(huà),也可以,記得協(xié)商好哈。
3、還要切記,服務(wù)端返回的那一串json,最有用而且最優(yōu)價(jià)值的就唯一一個(gè)prepay_id,其余的基本不需要。
4、官方的iOS SDK中,包含了兩個(gè)方法(sendpay_demo、sendpay),這也是最容易錯(cuò)的,我們?cè)趯?duì)接的時(shí)候,選擇sendpay的方法,也就是這個(gè):

這個(gè)方法的東西其實(shí)是不完整,最明顯,我們把網(wǎng)絡(luò)請(qǐng)求改了之后,再把所用到的參數(shù)賦值,然后就沒(méi)有然后了,根本調(diào)不起來(lái),壓根就沒(méi)反應(yīng),原因是缺少了package參數(shù)值,這個(gè)是固定的(Sign=WXPay)

5、改了第四點(diǎn)之后,肯定是能調(diào)用起來(lái)的了,但是確不能支付,sign錯(cuò)誤導(dǎo)致的,至此,你應(yīng)該把注意力集中到sendpay_demo的方法中去,不要再使用sendpay方法了
只需要把剛才獲取的prepay_id替換掉,立馬就能正常使用支付功能,如下位置的參數(shù)替換成我們網(wǎng)絡(luò)請(qǐng)求返回的的就行了:

三、iOS9 白名單 微信支付提示未安裝微信 、支付寶不跳轉(zhuǎn)客戶(hù)端支付的解決方案蘋(píng)果公司iOS 9系統(tǒng)策略更新,限制了http協(xié)議的訪(fǎng)問(wèn),此外應(yīng)用需要在“Info.plist”中將要使用的URL Schemes列為白名單,才可正常檢查其他應(yīng)用是否安裝。受此影響,當(dāng)你的應(yīng)用在iOS 9中需要使用微信SDK的相關(guān)能力(分享、收藏、支付、登錄等)時(shí),需要在“Info.plist”里增加如下代碼:

請(qǐng)注意:未升級(jí)到微信6.2.5及以上版本的用戶(hù),在iOS 9下使用到微信相關(guān)功能時(shí),仍可能無(wú)法成功。4總結(jié),希望此篇文章對(duì)正在做微信支付對(duì)接的哥們有幫助,也讓大家少走一些彎路,如果覺(jué)得合適,可以順手點(diǎn)個(gè)贊,以此鼓勵(lì)鼓勵(lì)。thanks