微信支付(APP)集成時碰到的問題(.net提示“無權限”、iOS跳轉到微信支付頁面中間只有一個“確定”按鈕)


直入主題之前,請容我吐槽一下微*的官方東西:ASDFQ%#$%$#$%^FG@#$%DSFQ#$%.......;吐槽玩了!大家心照就好。

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

1、先去微信的開放平台(http://open.weixin.qq.com)進行開發者賬號的注冊。

2、新建一個APP應用,然后填寫必填信息提交審核。

3、進入APP應用,在接口信息中,進行申請“獲得微信支付能力”的功能,期間會提交相關的公司營業信息證明等。

通過以上三點,然后經過漫長的等待之后,基本都可以申請下來的,這里不細說申請細節了,講個大概,基本都能應付。

基本的對接流程在這里有細說(https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=8_3

在進行服務端對接之前,需要用到如下信息:

/* 微信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”這樣的提示。

0、前言,先下載iOS SDK(https://pay.weixin.qq.com/wiki/doc/api/download/wechat_sdk_sample_ios_v3_pay.zip

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替換掉,立馬就能正常使用支付功能,如下位置的參數替換成我們網絡請求返回的的就行了:

總結,希望此篇文章對正在做微信支付對接的哥們有幫助,也讓大家少走一些彎路,如果覺得合適,可以順手點個贊,以此鼓勵鼓勵。thanks


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM