微信公眾號調用支付寶手機網站支付

該文僅對于中間這種支付方式有參考價值喲


為了更準確地描述業務,標題有點繞,相信多念兩次就通順了。為什么不是微信公眾號支付寶支付了,因為支付寶的支付方式有很多種,手機網站支付這個接口剛好適用于微信公眾號支付的場景,為什么不是支付寶手機網站支付了,因為微信公眾號端和web端調用又有不同,會增加一點邏輯處理。在微信商城里,同學們對如下兩幅圖還有印象吧,沒印象的多半就是所逛的微信商城只有微信支付一種方式,對于商家來說,顧客選擇哪種方式都不重要,因為他們向平臺付的手續費比例都差不多,那為什么不提供支付寶支付呢,或者為什么搞得如此煩瑣非要重新用瀏覽器打開再進行支付了,這就需要把微信叫過來問問你干嘛要屏蔽支付寶,說好的和諧社會,和平共處呢?

如果你的產品經理很倔,剛好又9要求在微信公眾號號中就是要調用支付寶支付,怎么gai,希望以下工作筆記對你有用,

一、準備工作

在支付寶開放平臺創建一個應用(https://openhome.alipay.com/platform/appCreate.htm)

創建成功后,從應用列表進入應用詳情,為該應用添加手機網站支付功能,既申請該接口

在申請過程中需要提供你系統的url, 支付寶的要求是系統需商品信息完整且達到接入該接口的標準,這要求迷惑我好久,所以我的申請被打回n次,如果你也遇到這種情況,不要急,支付寶在線客服(https://cschannel.alipay.com/newPortal.htm?scene=mysjpt)可以幫到你

配置回調url和通知url:

二,開發步驟

這里的步驟是通過瀏覽器調用接口時的步驟,后面補充通過微信端調用時的情況

step1. 按照慣例,先找接口文檔,會手把手教你接入該接口,接入成功后找到集成文檔. 阿里做的都是良心接口,提供了demo給大家參考,新版的調用方式更是直接把工具類封裝成sdk , 集成好sdk后再也不用擔心怎么樣去發送http請求等。
老版demo新版demo,目前新版demo只有php方式和RSA簽名方式;

step2. 傳遞參數,以下代碼在demo中都有現在的,只是需要理解每個參數的意義

這里調用成功后生成如下頁面,如果將app_pay參數設置為Y,會彈出是否打開支付寶app的請求窗口。

當跳轉到這個頁面,你就大可放心了,支付寶已經接手,

step3.處理返回結果

密碼輸入成功后,交易也成功,這里又輪到我們上場了。交易完成有兩個事情要做:
1.根據交易狀態異步處理訂單狀態,即我們在準備工作中所配置的異步回調url:ALI_NOTIFY_URL = http://XXX/order/modify_order_status_alipay.html,這個方法中做了兩件事,首先將解析支付寶返回的參數,再根據處理狀態對訂單進行處理即對系統數據庫進行操作

/**

* 支付寶支付成功回調

*@return

*/

@RequestMapping("modify_order_status_alipay.html")

public voidmodifyOrderStatusAlipay(HttpServletRequest request,HttpServletResponse response)throwsIOException {

System.out.println("i am in modify_order_status_alipay");

Map> orderMap = com.hj.custsys.wechat.common.SystemCache.getInstance().getOrderList();

System.out.println("orderMap=="+ orderMap);

ModelAndView modelAndView =newModelAndView();

//獲取支付寶POST過來反饋信息

Map params =newHashMap();

Map requestParams = request.getParameterMap();

for(Iterator iter = requestParams.keySet().iterator();iter.hasNext();) {

String name = (String) iter.next();

String[] values = (String[]) requestParams.get(name);

String valueStr ="";

for(inti =0;i < values.length;i++) {

valueStr = (i == values.length-1) ? valueStr + values[i]

: valueStr + values[i] +",";

}

valueStr =newString(valueStr.getBytes("ISO-8859-1"),"gbk");

params.put(name,valueStr);

}

//獲取支付寶的通知返回參數

//公司Id

String companyIdStr =newString(request.getParameter("body").getBytes("ISO-8859-1"),"UTF-8");

Integer companyId = Integer.parseInt(companyIdStr);

//商戶訂單號

String orderId =newString(request.getParameter("out_trade_no").getBytes("ISO-8859-1"),"UTF-8");

//支付寶交易號

String trade_no =newString(request.getParameter("trade_no").getBytes("ISO-8859-1"),"UTF-8");

//交易狀態

String trade_status =newString(request.getParameter("trade_status").getBytes("ISO-8859-1"),"UTF-8");

System.out.println("out_trade_no::"+ orderId);

System.out.println("trade_status::"+ trade_status);

String sHtmlText ="";

// ? if(AlipayNotify.verify(params)){//驗證成功

if(trade_status.equals("TRADE_FINISHED")) {

}else if(trade_status.equals("TRADE_SUCCESS")) {

//處理你的訂單狀態

}

System.out.println("狀態修改成功 end");

}

System.out.println("success");

response.getWriter().println("success");

sHtmlText ="success";

/*}else{//驗證失敗

System.out.println("fail");

response.getWriter().println("fail");

sHtmlText= "fail";

}*/

}

2.是否進行頁面跳轉,如以下圖片是我配置的RETURN_URL =http://XXX/order_result.html處理后的結果

三、微信端調用

前兩步不用看或者只研究支付寶官方文檔就可以成功將錢送給支付寶。

為什么微信端調用支付寶會單獨寫一節了,前面就提到過,因為微信把支付寶屏蔽了,屏蔽了。上有政策,下有對策,難不到互聯網界的精兵奇才們。需要做的就是先判斷客戶端是否為微信,如果是微信提示用瀏覽器打開,大家應該對下圖面熟吧,


干貨在這里,

<%@pagelanguage="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" %>

<%@taglibprefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

<%@taglibprefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

支付寶支付

正在進行支付寶支付...

請點擊右上角"在瀏覽器中打開"

在瀏覽器中完成支付

請在菜單中選擇"瀏覽器中打開"

在瀏覽器中完成支付

是否已完成付款?

請確保支付完成后,點擊

href="${pageContext.request.contextPath}/order/payment_verify.html?companyId=${companyId}&orderId=${orderId}">完成付款

varcontextPath ="${pageContext.request.contextPath}";

varua =navigator.userAgent.toLowerCase();

if(ua.match(/MicroMessenger/i) =="micromessenger") {

$(".container").css("display","block");

if(ua.indexOf('iphone') != -1|| ua.indexOf('ipad') != -1|| ua.indexOf('ipod') != -1) {

$(".weixin-tip-img-iphone").css("display","block");

$(".weixin-tip-img-android").css("display","none");

}else{

$(".weixin-tip-img-iphone").css("display","none");

$(".weixin-tip-img-android").css("display","block");

}

}else{

self.location.href= contextPath +"/order/ali_payment.html?companyId=${companyId}&orderId=${orderId}";}

原理就是一直判斷客戶端是否為支付寶支持的客戶端, 直到滿足條件為止,滿足條件后操作流程就回到了上一步 。?

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,702評論 6 534
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,615評論 3 419
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,606評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,044評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,826評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,227評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,307評論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,447評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,992評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,807評論 3 355
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,001評論 1 370
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,550評論 5 361
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,243評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,667評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,930評論 1 287
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,709評論 3 393
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,996評論 2 374

推薦閱讀更多精彩內容