支付寶沙箱環境相關配置
本篇博客主要介紹支付寶沙箱環境和后端Alipay.config配置文件的配置,因開發人員使用正式環境進行開發時,需要企業進行注冊審核相關資料,准備資料和時間比較久,支付寶為此提供了沙箱環境,大大減輕了開發流程。
(一)准備沙箱環境
1.進入沙箱應用:
鏈接地址:https://openhome.alipay.com/platform/appDaily.htm?tab=info
2.生成RSA非對稱密鑰對
在設置秘鑰之前需要下載支付寶開發平台開發助手軟件進行生成RSA不對稱秘鑰。
鏈接地址:https://opendocs.alipay.com/open/291/105971
3.設置RSA2(SHA256)秘鑰
點擊RSA2密鑰后面的設置按鈕,粘貼上一步生成的公鑰,如下:
4、設置商戶私鑰
即上方支付寶開發平台開發助手生成的密鑰對中的私鑰
(二)后台Alipay.config文件配置
1.設置配置文件中的支付寶公鑰
配置文件如下:
package com.yjlc.api.pay.impl.alipay.config; import java.io.FileWriter; import java.io.IOException; /** * @Description: 支付寶支付配置文件 * @author: cyb * @Date 2020-07-14 */ public class AlipayConfig { /** 應用ID,您的APPID,收款賬號既是您的APPID對應支付寶賬號(此處用的是沙箱環境) */ public static String APP_ID = "2016092700611035"; /** 商戶私鑰,您的PKCS8格式RSA2私鑰,這些就是我們剛才設置的 */ public static String MERCHANT_PRIVATE_KEY = "替換成支付寶開放平台助手生成的密鑰"; /** 支付寶公鑰,查看地址:對應APPID下的支付寶公鑰。,這些就是我們剛才設置的 */ public static String ALIPAY_PUBLIC_KEY ="替換成沙箱環境《RSA2(SHA256)密鑰(推薦)》中的支付寶公鑰"; /**異步通知,再這里我們設計自己的后台代碼*/ public static String notify_url = "http://chenyuanbo.natapp1.cc/asynCallback?channelId=ali_pay"; /** 頁面跳轉同步通知頁面路徑(自定義后端路徑) 需http://格式的完整路徑,不能加?id=123這類自定義參數,必須外網可以正常訪問*/ public static String return_url = "http://chenyuanbo.natapp1.cc/ACPSample_B2C/backRcvResponse"; /** 簽名方式*/ public static String SIGN_TYPE = "RSA2"; /** 字符編碼格式*/ public static String CHARSET = "utf-8"; /** 支付寶網關*/ public static String GATEWAYURL = "https://openapi.alipaydev.com/gateway.do"; /** 日志輸出路徑*/ public static String LOG_PATH = "C:\\"; }
下圖對應上方的支付寶公鑰
注意:上方chenyuanbo.natapp1.cc為我用的內網穿透設置的域名,對應本地ip 127.0.0.1:8080,大家在使用的時候切換成自己的內網穿透或者真實的訪問域名。
Natapp上付費隧道配置如下:
(三)本地host文件配置:
Host文件路徑如下:
C:\Windows\System32\drivers\etc
增加以下配置:
127.0.0.1 http://chenyuanbo.natapp1.cc
(四)更改生成付款二維碼鏈接方法
//設置請求參數 AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest(); alipayRequest.setReturnUrl(AlipayConfig.return_url); alipayRequest.setNotifyUrl(AlipayConfig.notify_url); //商戶訂單號,商戶網站訂單系統中唯一訂單號,必填 String out_trade_no = new String(request.getParameter("WIDout_trade_no").getBytes("ISO-8859-1"), "UTF-8"); //付款金額,必填 String total_amount = new String(request.getParameter("WIDtotal_amount").getBytes("ISO-8859-1"), "UTF-8"); //訂單名稱,必填 String subject = new String(request.getParameter("WIDsubject").getBytes("ISO-8859-1"), "UTF-8"); subject = "yjlcPay"; //商品描述,可空 String body = new String(request.getParameter("WIDbody").getBytes("ISO-8859-1"), "UTF-8"); alipayRequest.setBizContent("{\"out_trade_no\":\"" + out_trade_no + "\"," + "\"total_amount\":\"" + total_amount + "\"," + "\"subject\":\"" + subject + "\"," + "\"body\":\"" + body + "\"," + "\"product_code\":\"FAST_INSTANT_TRADE_PAY\"}"); //請求 String result = alipayClient.pageExecute(alipayRequest).getBody(); //輸出付款二維碼 response.getWriter().println(result);
以上即為支付寶支付需要更改的配置,若對以上配置有疑問的可以留言討論,轉載請說明出處,博客地址:https://www.cnblogs.com/chenyuanbo/