天天看點

手機網站支付內建開發指南分享一、文檔位址 二、開發前準備工作 三、接口內建示例代碼四、注意事項五、顯示效果

本帖僅供參考,非官方demo

一、文檔位址

手機網站支付文檔位址:[url]https://docs.open.alipay.com/203[/url]

二、開發前準備工作

1、簽約:[url]https://openclub.alipay.com/read.php?tid=276&fid=72[/url]

2、建立應用:[url]https://openclub.alipay.com/read.php?tid=1606&fid=72[/url]

3、生成密鑰:[url]https://openclub.alipay.com/read.php?tid=1833&fid=69[/url]

4、下載下傳服務端sdk:

[url]https://docs.open.alipay.com/54/106370/[/url]

如何簽約以及簽約無法成功等相關簽約問題:[url]https://openclub.alipay.com/read.php?tid=276&fid=72[/url]

注意事項:1、支援沙箱測試;2、需簽約并添加功能;3、不支援第三方調用。

檢查調用appid的應用功能清單中是否添加“手機網站支付”并顯示已簽約。

手機網站支付內建開發指南分享一、文檔位址 二、開發前準備工作 三、接口內建示例代碼四、注意事項五、顯示效果

三、接口內建示例代碼

1、參數說明

(1)out_trade_no:商戶訂單号,由商戶自定義設定;

(2)subject:商品标題;

(3)product_code:固定産品碼值:QUICK_WAP_WAY;

(4)total_amount:交易訂單金額,精确到小數點後2位,最小設定為0.01;

2、JAVA版請求示例

(适用于jdk1.5以上)

//獲得初始化的AlipayClient	    AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.gatewayUrl, AlipayConfig.app_id, AlipayConfig.merchant_private_key, AlipayConfig.format, AlipayConfig.charset, AlipayConfig.alipay_public_key,AlipayConfig.sign_type);	    AlipayTradeWapPayRequest alipayRequest=new AlipayTradeWapPayRequest();	    //設定同步回調位址,用于支付成功後頁面跳轉				alipayRequest.setReturnUrl(AlipayConfig.return_url);		//設定異步回調位址,用于支付成功後post接收傳回的訂單資訊		alipayRequest.setNotifyUrl(AlipayConfig.notify_url);		AlipayTradeWapPayModel model = new  AlipayTradeWapPayModel();		model.setSubject("手機網站支付測試");		model.setTotalAmount("0.01");		//設定中途退出傳回按鈕,添加後h5支付收銀台會出現傳回按鈕,用于付款中途退出并傳回傳值頁面。注:該參數對支付寶錢包标準收銀台下的跳轉不生效。		model.setQuitUrl("https://docs.open.alipay.com/203/107090/");		model.setProductCode("QUICK_WAP_WAY");		//自定義參數請轉碼後傳入該參數内,可以傳值逗号,等号之類,但不能傳引号,否則會報錯,其他特殊符号是否報錯以實測為準		String passback_params	 = "{channelcode:alipay,instcode:alipay}";		String passback_params2 =URLEncoder.encode(passback_params,"UTF-8");		model.setPassbackParams(passback_params2);                //該筆訂單允許的最晚付款時間,逾期将關閉交易                model.setTimeoutExpress("1m");		alipayRequest.setBizModel(model);		/**		 *  BizContent傳值模式		alipayRequest.setBizContent("{\"out_trade_no\":\"2018092031012228432\"," 				+ "\"total_amount\":\"0.01\"," 				+ "\"subject\":\"手機網站支付測試\"," 				+ "\"quit_url\":\""+ quit_url +"\"," 				+ "\"passback_params\":\""+ passback_params2 +"\"," 				+ "\"product_code\":\"QUICK_WAP_WAY\"}");		**/		//get請求方式       AlipayTradeWapPayResponse response = alipayClient.pageExecute(alipayRequest,"get");		//post請求方式	//AlipayTradeWapPayResponse response = alipayClient.pageExecute(alipayRequest);		if(response.isSuccess()){			System.out.println("調用成功");		} else {			System.out.println("調用失敗");		}		System.out.println(response.getBody());           

注:timeout_express是訂單建立之後才開始計時生效的,而不是接口調用成功開始生效!!!

3、PHP版請求示例

(适用于ph5.5以上環境) 

<?php/** *  * 手機網站支付文檔位址:[url]https://docs.open.alipay.com/203/107090/[/url] */require_once 'AopSdk.php';$aop = new AopClient ();$aop->appId = '填寫您的appid';$aop->rsaPrivateKey = '填寫您的私鑰';$aop->alipayrsaPublicKey='填寫您的支付寶公鑰';$aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do';$aop->apiVersion = '1.0';$aop->postCharset='utf-8';$aop->format='json';$aop->signType = 'RSA2';//生成随機訂單号$date=date("YmdHis");$arr=range(1000,9999);shuffle($arr);$request = new AlipayTradeWapPayRequest ();//收款方賬戶類型為:ALIPAY_LOGONID:支付寶登入号,支援郵箱和手機号格式。$request->setBizContent("{" .    "\"out_trade_no\":\"".$date.$arr[0]."\"," .    "\"total_amount\":\"0.1\"," .	"\"subject\":\"tets\"," .    "\"product_code\":\"QUICK_WAP_WAY\"" .    "}");//get請求,傳回連結$result = $aop->pageExecute($request,"get");//post請求,傳回表單//$result = $aop->pageExecute($request);print_r(htmlspecialchars($result));?>           

4、.NET版請求參數

适用于Visual studio 2010及以上版本、Framework3.5 SP1及以上版本的開發環境

注:适用于Visual studio 2010及以上版本、Framework3.5 SP1及以上版本的開發環境

IAopClient client = new DefaultAopClient("https://openapi.alipaydev.com/gateway.do", Com.Alipay.Config.appId, Com.Alipay.Config.merchant_private_key, "json", "1.0", "RSA2", Com.Alipay.Config.alipay_public_key, "GBK", false);            AlipayTradeWapPayRequest alipayRequest = new AlipayTradeWapPayRequest();//建立API對應的request            AlipayTradeWapPayModel model = new AlipayTradeWapPayModel();            model.OutTradeNo = "2018092815181234561223434123";            model.Subject = "手機網站支付測試";            model.TotalAmount = "0.01";            model.ProductCode = "QUICK_WAP_WAY";            alipayRequest.SetBizModel(model);            //預設請求方式為post,傳回form表單           // AlipayTradeWapPayResponse response = client.pageExecute(alipayRequest);            //傳入GET,傳回http連結            AlipayTradeWapPayResponse response = client.pageExecute(alipayRequest, "", "GET");            //post請求,傳回form表單           // AlipayTradeWapPayResponse response = client.pageExecute(alipayRequest);            Console.WriteLine("手機網站支付傳回資訊:" + response.Body);           

get請求傳回結果

[url]https://openapi.alipaydev.com/gateway.do?alipay_sdk=alipay-sdk-java-3.3.1&app_id=2016101800718925&biz_content=%7B%22out_trade_no%22%3A%222018110510414153215%22%2C%22passback_params%22%3A%22%257Bchannelcode%253Aalipay%252Cinstcode%253Aalipay%257D%22%2C%22product_code%22%3A%22QUICK_WAP_WAY%22%2C%22quit_url%22%3A%22https%3A%5C%2F%5C%2Fdocs.open.alipay.com%5C%2F203%5C%2F107090%5C%2F%22%2C%22subject%22%3A%22%E6%89%8B%E6%9C%BA%E7%BD%91%E7%AB%99%E6%94%AF%E4%BB%98%E6%B5%8B%E8%AF%95%22%2C%22total_amount%22%3A%220.01%22%7D&charset=utf-8&format=JSON&method=alipay.trade.wap.pay&notify_url=http%3A%2F%2F106.14.187.178%2Fopendevtools%2Fnotify%2Fdo%2Fa9bed896-0fc0-4b05-ba55-6a2550cacd36&return_url=https%3A%2F%2Fwww.baidu.com%2F&sign=f1acmfoP8oMJDX2ctxQcu%2BJHXsauURqmoEQzaStDpiXz9P1pSbOieaHSLwERSUGsk9wKyMpyiNmyOKbeMQsVNVWJHyHB%2FZiRGvFDec3keXc8dv%2BFrhEU%2BsZDPB%2FznK8jpHseX6ClWrKMWUoCmznO51Hfp7VNjeTQOSnsHodPDK3G6Sp55N7v0rxAybgnuQRBkdA7Y4Woj4ewX7w9zTGE9SEKJgoQY%2FOamrYfsrJVaHuA%2Fjj%2Be4r%2B8Eue%2BCTQ%2B7Wx4VUYtktgKoLKWKWJtkrsj%2FGk3IKVfiATfFQ5r4NW6gvv0kR83fjSMVD%2FZze913nCUbqlARkLh0x%2FeMv2PPntHg%3D%3D&sign_type=RSA2&timestamp=2018-11-06+10%3A41%3A23&version=1.0[/url]           

post傳回結果

四、注意事項

1、如何檢視沙箱買家賬号

位址:[url]https://openhome.alipay.com/platform/appDaily.htm?tab=account[/url]

手機網站支付內建開發指南分享一、文檔位址 二、開發前準備工作 三、接口內建示例代碼四、注意事項五、顯示效果

2、輔助接口

alipay.trade.query(統一收單線下交易查詢)內建流程:[url]https://openclub.alipay.com/read.php?tid=13842&fid=56[/url]

alipay.trade.refund(統一收單交易退款接口) 內建流程:[url]https://openclub.alipay.com/read.php?tid=13853&fid=56[/url]

alipay.trade.fastpay.refund.query(統一收單交易退款查詢) :[url]https://openclub.alipay.com/read.php?tid=13962&fid=56[/url]

alipay.trade.close(統收單交易關閉接口)內建流程:[url]https://openclub.alipay.com/read.php?tid=13963&fid=56[/url]

alipay.data.dataservice.bill.downloadurl.query(查詢對賬單下載下傳位址):[url]https://openclub.alipay.com/read.php?tid=14016&fid=56[/url]

五、顯示效果

将傳回結果傳到前端,顯示效果如下:

将沙箱傳回連結放入手機浏覽器中通路,如果手機中裝有支付寶,則會彈出在浏覽器上彈出收銀台(如圖三),正式環境則是直接跳轉到支付寶錢包喚起收銀台(如圖四)

手機網站支付內建開發指南分享一、文檔位址 二、開發前準備工作 三、接口內建示例代碼四、注意事項五、顯示效果
手機網站支付內建開發指南分享一、文檔位址 二、開發前準備工作 三、接口內建示例代碼四、注意事項五、顯示效果
手機網站支付內建開發指南分享一、文檔位址 二、開發前準備工作 三、接口內建示例代碼四、注意事項五、顯示效果
手機網站支付內建開發指南分享一、文檔位址 二、開發前準備工作 三、接口內建示例代碼四、注意事項五、顯示效果

如果沒有安裝支付寶錢包,則點選繼續支付,輸入賬号密碼進行登入支付

注意:沙箱不支援手機号碼登入!!!!必須使用沙箱賬号登入

手機網站支付內建開發指南分享一、文檔位址 二、開發前準備工作 三、接口內建示例代碼四、注意事項五、顯示效果
手機網站支付內建開發指南分享一、文檔位址 二、開發前準備工作 三、接口內建示例代碼四、注意事項五、顯示效果
手機網站支付內建開發指南分享一、文檔位址 二、開發前準備工作 三、接口內建示例代碼四、注意事項五、顯示效果

注意:未輸入密碼之前,支付寶訂單還是為建立狀态,隻有輸入密碼之後,才會生成支付寶訂單,是以這個時候用查詢接口查詢會報錯“訂單不存在” 

 如有疑問,歡迎大家留言提問或者吐槽,謝謝大家!!!!