1. 程式人生 > >[支付寶]手機網站支付快速接入

[支付寶]手機網站支付快速接入

tps alt wke mba resp pan 新版 字符 手機網站支付

參考開發文檔:https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.FjX7f6&treeId=193&articleId=105285&docType=1#s0

文檔中其它地方還好理解,倒是第三步有點容易讓人誤會,下面是第三步中的一張表,紅色字體解釋了讓人容易誤會的地方:

配置通用接入參數:

參數名稱參數說明
APP_ID 開放平臺應用的APPID,詳見創建應用並獲取APPID,應用審核上線後生成的一個appid
APP_PRIVATE_KEY 開發者應用私鑰,詳見配置密鑰,註意:這個私鑰是secret_key_tools工具生成的pkcs8結尾的私鑰文件
CHARSET 請求和簽名使用的字符編碼格式,支持GBK和UTF-8
ALIPAY_PUBLIC_KEY 支付寶公鑰,詳見配置密鑰,配置應用公鑰後生成的支付寶公鑰

即時交易開發文檔:https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.xXBAjT&treeId=62&articleId=104743&docType=1,不知道為什麽新版本開發文檔中找不到即時交易,並且沙箱模式不支持即時交易。

下面代碼是我使用支付寶沙箱模式做的一個demo:

技術分享
 1 /**
 2  * 阿裏支付平臺接入參數配置類
 3  * @author gaojunming
 4  *
 5  */
 6 public class Config {
 7     //商戶UID
 8     public static final String SELLER_ID="2088102169470215";
 9     /*以下為通用接入參數*/
10     //開放平臺應用的APPID
11     public static final String APP_ID="2016080100142192";
12     //請求和簽名使用的字符編碼格式
13     public static final String CHARSET="UTF-8";
14     //支付寶公鑰
15     public static final String ALIPAY_PUBLIC_KEY="MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDIgHnOn7LLILlKETd6BFRJ0GqgS2Y3mn1wMQmyh9zEyWlz5p1zrahRahbXAfCfSqshSNfqOmAQzSHRVjCqjsAw1jyqrXaPdKBmr90DIpIxmIyKXv4GGAkPyJ/6FTFY99uhpiq0qadD/uSzQsefWo0aTvP/65zi3eof7TcZ32oWpwIDAQAB";
16     //開發者應用私鑰
17     public static final String APP_PRIVATE_KEY="MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAN2tw80/8XA6vE6qLwIKlFCo8yEZ3+YMvwbWJJK/2QX+oTcriMC26XOGrMlXRIGPTWgS6UPLwArd8H1R4oHHBhx6teHjLyN0NBPBd5Zdzf9e4I9sKQNXOF4siury0eJVUWAQOps5s5k06vdpsBzjX+Sh3Zi3BANgBX6Wq4LszY8lAgMBAAECgYAPf6Se5weUVybvQQrEU8UG1qkY+VwkE2QPsE0iTXN47dKLrumCv8cWoqXV9dn+TOyWiCvy533nxJiZym3RsP6GQeEczEzcqCUMOtRamxU3HVoVz8oevnJjv4ieXLhMqCXCAWtreW4SJMlqid637PM8i9Oh1yzquvyrvq6nf7NpwQJBAPbPl/8OYt29KhrPK2Rth8Hjq5Lpq5MRbrE8maoOImJmmJ+lM1FgcFXF1hseSrhHbv9BuYfyiqcRDfznTnwhMI0CQQDl7qGkHnbINL2htWlUWC/0hrbS4ckKX80RzSZplGf7uLXUn9wSQNucPIWUOeRJ+6iHq0+NACgpgxfNXmXr/C75AkAtOMw4x4IF7usQDnV86TS+qeB+AqKVR9RoVRoytnRGY1YDqllEx87NaHpabapzKWOFEZ3U8vPEuLM/a4JN7CbhAkEAxKaygn43kwVghlR0kFmYMiehZ30KB6Bl8GqoBraRtH2GriJHAymLafVtPZfBwvDEc7w1nl9a+h4Plmq8+vbFaQJBAIzz0mA55/pkdIMUruAm8bsRmCeWhktMemyJPGjqs3wRz2y67V4DpVkh0vVI1osEw44/MfRIykAsZrItr/eIYYQ=";
18     //支付寶網關
19     public static final String URL="https://openapi.alipaydev.com/gateway.do";//註意沙箱模式的支付寶網關和正式支付寶網關是不同的
20 }
技術分享 技術分享
 1 /**
 2  * 阿裏支付平臺功能類
 3  * 
 4  * @author gaojunming
 5  *
 6  */
 7 public class Alipay {
 8     // 初始化alipayClient對象
 9     public static AlipayClient alipayClient = new DefaultAlipayClient(
10             Config.URL, Config.APP_ID, Config.APP_PRIVATE_KEY, "json",
11             Config.CHARSET, Config.ALIPAY_PUBLIC_KEY);
12 
13     /**
14      * wap支付
15      * 
16      * @return
17      * @throws AlipayApiException
18      */
19     public static AlipayTradeWapPayResponse pay(String content) throws AlipayApiException {
20         // 創建API對應的request
21         AlipayTradeWapPayRequest alipayRequest = new AlipayTradeWapPayRequest();
22         // 在公共參數中設置回跳和通知地址(應用提供給支付寶的請求路徑),沙箱模式中不起作用(不知道是不是這個原因,支付寶技術客服告訴我正式上線後就沒問題)
23         alipayRequest.setReturnUrl("http://xxx.com/xxx");
24         alipayRequest.setNotifyUrl("http://xxx.com/xxx");
25         // 填充業務參數
26         alipayRequest.setBizContent(content);
27         AlipayTradeWapPayResponse alipayResponse = alipayClient
28                 .pageExecute(alipayRequest);
29         return alipayResponse;
30     }
31 }
技術分享 技術分享
 1 /**
 2      * 移動端網頁支付
 3      * @param content    業務參數
 4      * @throws IOException
 5      * @throws AlipayApiException
 6      */
 7     @RequestMapping(value="wab/pay",method=RequestMethod.POST)
 8     public void wapPay(@RequestParam(value = "content", required = true) String content) throws IOException, AlipayApiException {
 9         //設置將發送到客戶端的響應的內容類型
10         response.setContentType("text/html;charset="+Config.CHARSET);
11         AlipayTradeWapPayResponse alipayResponse= Alipay.pay(content);
12         String from= alipayResponse.getBody();
13         System.out.println(from);
14         //輸出支付寶返回的表單頁面
15         printHtml(from);
16     }
技術分享

支付寶開放平臺支持中心:https://support.open.alipay.com/alipay/support/index.htm

[支付寶]手機網站支付快速接入