Android微信支付回調區(qū)分

在集成微信支付時才發(fā)現(xiàn)微信的開發(fā)文檔果然有些坑云石,本文主要是記錄我在區(qū)分微信支付回調問題的處理。也讓遇到同樣問題的小伙伴們找到處理方法淋硝。若您知道此問題的解決辦法宽菜,請不要噴我铅乡,您可以選擇點擊關閉此瀏覽器標簽,謝謝犬庇。

問題

我所遇到的需求是APP里有兩處涉及到微信支付侨嘀,訂單支付和充值支付,且支付完成后需要通知后臺做其他操作(后臺收到的支付結果通知是異步的欢峰,服務器是被動的)涨共,而微信支付的結果回調都在一個WXPayEntryActivity里面,而且此類微信官方規(guī)定的懊直。我想要區(qū)分我的支付結果是屬于訂單支付還是充值支付火鼻,以便做出相應的操作,該怎么辦呢融撞?

思路

剛開始有些懵逼尝偎,畢竟不熟悉微信支付。所以最開始選擇了用一個全局變量來保存當前的操作類型值致扯,收到支付回調后判斷此類型值,做出不同的操作急前。但總覺得這樣做有些不妥。又想想微信這樣的設計肯定不是沒有考慮到這方面啊瀑构,所以就在調用微信支付SDK的地方來找方法裆针。果不其然在PayReq里找到了這樣一個方法:
調起微信支付SDK的地方

光找到傳入數(shù)據(jù)的地方還不行,所有又去了回調頁面WXPayEntryActivity里找接收數(shù)據(jù)的地方:
WXPayEntryActivity

阿西吧寺晌!居然沒有關于接收數(shù)據(jù)的方法...
又把PayResp拿來試試世吨,果然功夫不負有心人:
PayResp resp = (PayResp) baseResp;
String payType = resp.extData;

那這樣一來就好辦了呀,我就說嘛呻征,微信這樣設計肯定是考慮了這個問題的耘婚。

代碼

還是把具體代碼貼一下吧

1.生成加密串。

加密操作放在后臺的陆赋,所以只需要傳入相應的標題沐祷、本地訂單號攒岛、價格給后臺赖临,后臺會返給我調用微信支付SDK的相應參數(shù),這里要注意一下灾锯,傳給后臺的價格必須是乘以100兢榨,比如支付價格為1元,那就得傳100給后臺顺饮,當然后臺做處理也是可以的吵聪,還有價格不能為0,包括支付寶也是一樣的兼雄。收到后臺的數(shù)據(jù)如下:

{
    "msg": 1,
    "data": {
        "appid": "wxf6a28d9fa0e4a5e7",
        "partnerid": "1482680562",
        "prepayid": "wx201711161536297ca36c8ab20902031739",
        "package": "Sign=WXPay",
        "noncestr": "cd98f00b204e9800998ecf8427e",
        "timestamp": 1510817789,
        "sign": "D1262473FD0AFD56E24E59248756666D"
    },
}

2.調起微信支付吟逝。

這里是將后臺返回的數(shù)據(jù)都裝在了一個JavaBean里面

public void wxPay(WxPayStringBean.DataBean bean) {
        PayReq request = new PayReq();
        IWXAPI api = mModel.wxPay();
        api.registerApp(Constants.KEY.WeChat.APP_ID);
        request.appId = bean.getAppid();
        request.partnerId = bean.getPartnerid();
        request.prepayId = bean.getPrepayid();
        request.packageValue = bean.getPackageX();
        request.nonceStr = bean.getNoncestr();
        request.timeStamp = bean.getTimestamp() + "";
        //傳入一個標識,以便區(qū)分回調
        request.extData = "RechargePay";
        request.sign = bean.getSign();
        api.sendReq(request);
    }
@Data
public class WxPayStringBean {
    private int msg;
    private String error;
    private DataBean data;
    private int hc;

    @Data
    public static class DataBean {
        private String appid;
        private String partnerid;
        private String prepayid;
        @SerializedName("package")
        private String packageX;
        private String noncestr;
        private int timestamp;
        private String sign;
    }
}

在上門的wxPay方法中赦肋,可以看到傳入一個參數(shù)

request.extData = "RechargePay";

3.在收到支付回調的頁面做判斷

@Override
    public void onResp(BaseResp baseResp) {
        PayResp resp = (PayResp) baseResp;
        String payType = resp.extData;
        switch (payType) {
            case "OrderPay":        //訂單支付的回調
                // TODO: doSomething 
                break;
            case "RechargePay":     //充值支付的回調
                // TODO: doSomething
                break;
        }
    }

End

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末澎办,一起剝皮案震驚了整個濱河市嘲碱,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌局蚀,老刑警劉巖麦锯,帶你破解...
    沈念sama閱讀 222,627評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異琅绅,居然都是意外死亡扶欣,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評論 3 399
  • 文/潘曉璐 我一進店門千扶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來料祠,“玉大人,你說我怎么就攤上這事澎羞∷枵溃” “怎么了?”我有些...
    開封第一講書人閱讀 169,346評論 0 362
  • 文/不壞的土叔 我叫張陵妆绞,是天一觀的道長顺呕。 經常有香客問我,道長括饶,這世上最難降的妖魔是什么株茶? 我笑而不...
    開封第一講書人閱讀 60,097評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮图焰,結果婚禮上启盛,老公的妹妹穿的比我還像新娘。我一直安慰自己技羔,他們只是感情好僵闯,可當我...
    茶點故事閱讀 69,100評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著藤滥,像睡著了一般棍厂。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上超陆,一...
    開封第一講書人閱讀 52,696評論 1 312
  • 那天牺弹,我揣著相機與錄音,去河邊找鬼时呀。 笑死张漂,一個胖子當著我的面吹牛,可吹牛的內容都是我干的谨娜。 我是一名探鬼主播航攒,決...
    沈念sama閱讀 41,165評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼趴梢!你這毒婦竟也來了漠畜?” 一聲冷哼從身側響起币他,我...
    開封第一講書人閱讀 40,108評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎憔狞,沒想到半個月后蝴悉,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 46,646評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡瘾敢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,709評論 3 342
  • 正文 我和宋清朗相戀三年拍冠,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片簇抵。...
    茶點故事閱讀 40,861評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡庆杜,死狀恐怖,靈堂內的尸體忽然破棺而出碟摆,到底是詐尸還是另有隱情晃财,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布典蜕,位于F島的核電站断盛,受9級特大地震影響,放射性物質發(fā)生泄漏嘉裤。R本人自食惡果不足惜郑临,卻給世界環(huán)境...
    茶點故事閱讀 42,196評論 3 336
  • 文/蒙蒙 一栖博、第九天 我趴在偏房一處隱蔽的房頂上張望屑宠。 院中可真熱鬧,春花似錦仇让、人聲如沸典奉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽卫玖。三九已至,卻和暖如春踊淳,著一層夾襖步出監(jiān)牢的瞬間假瞬,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評論 1 274
  • 我被黑心中介騙來泰國打工迂尝, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留脱茉,地道東北人。 一個月前我還...
    沈念sama閱讀 49,287評論 3 379
  • 正文 我出身青樓垄开,卻偏偏與公主長得像琴许,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子溉躲,可洞房花燭夜當晚...
    茶點故事閱讀 45,860評論 2 361

推薦閱讀更多精彩內容