Эта статья разделяет конкретный код для Java с использованием Alipay для сканирования кода для оплаты, для вашей ссылки конкретный контент заключается в следующем
Подготовка
Во -первых, откройте тестовую учетную запись Alipay Sandbox, которая будет включать в себя учетные записи потребителей и учетные записи.
Сканировать QR -код для загрузки мобильного приложения
Базовая конфигурация
Требуется пакет JAR
Alipayconfig
пакет com.alipay.config; import java.io.filewriter; import java.io.ioexception; импорт java.util.resourcebundle;/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Торговцы могут писать в соответствии с потребностями своего собственного веб -сайта и в соответствии с техническими документами, и нет необходимости использовать этот код. *Этот код предназначен только для изучения и исследования интерфейса Alipay, и предоставляется только в качестве ссылки. */public class alipayconfig {// ↓↓↓странщенныйентативныйткутнееекткумерапоминаveстранственный ентищенпоминательный. Пожалуйста, настройте свою основную информацию здесь // идентификатор приложения, ваш Appid, а платежная учетная запись является соответствующей учетной записью Alipay Public Static String App_id = "2016080403162340"; // Торговый закрытый ключ, ваш формат PKCS8 RSA2 Public Static String Merchant_Private_key = "miievaid2tulssmawg5+f4nzbexpnxi8nkqjpzeeaa =="; // Alipay Public Key, Просмотр адреса: https://openhome.alipay.com/platform/keymanage.htm соответствующий открытый ключ Alipay под приложением. Общественная статическая строка alipay_public_key = "miibijt26tltkar8s1erdwi25vibcmz7plmxvvumhf5tdbwfbmhus3qidaqab"; // Пропуск страницы асинхронного уведомления сервера требует полного пути в формате http: //, и не может добавить пользовательские параметры, такие как? Id = 123. К нему необходимо нормально доступна внешняя сеть. Общественная статическая строка notify_url = "http: // localhost: 8080/alipay.trade.page.pay-java-utf-8/notify_url.jsp"; // Страница Синхронозной Страницы Страницы Прыжки требуют полного пути формата http: //. Пользовательские параметры, такие как ID = 123, не могут быть добавлены. Общественная статическая строка return_url = "http: // localhost: 8080/exam/index/goumai"; // Метод подписи Public Static String Sign_type = "rsa2"; // Формат кодирования символов публичная статическая строка charset = "utf-8"; // Alipay Gateway Public Static String GatewayUrl = "https://openapi.alipaydev.com/gateway.do"; // alipay gateway public static String log_path = "e: //"; // ↑↑↑емиmВОТРЕТЬСЯЕТСКОЕ ЗАПИСИ ЗДЕСЬ/** внутри.** **Стан.* Записывает журналы для легкого тестирования (см. Требования веб -сайта, вы также можете изменить записи в базе данных)* @param Меч для написания текстового содержимого в журнале*/public void logresult (String Sword) {fileWriter writer = null; try {writer = new FileWriter (log_path + "alipay_log_" + system.currenttimemillis () + ". txt"); writer.write (меч); } catch (Exception e) {e.printstackTrace (); } наконец {if (writer! = null) {try {writer.close (); } catch (ioException e) {e.printstackTrace (); }}}}}}Контроллер
// Generate a page with a QR code that can be used to scan the code to pay for payment @RequestMapping(value = "aliPay") public String aliPay(HttpServletResponse response,ModelMap map,String chapterId,HttpServletRequest request, String WIDout_trade_no,String WIDtotal_amount,String WIDsubject,String WIDbody) throws IOException, Alipayapiexception {// string a, string urlname, string counme ...+"& a ="+a+"& urlname ="+urlname+"& couname ="+couname // Получите инициализированные AlipayClient alipayclient alipayclient = new defaulipayclient (alipayconfig.gatewayurl, alipayconfig, alipayconfig, alipayconfig, alipayconfig, alipayconfig, alipayconfig, alipayconfig, alipayconfig, alipayconfig, alipayclient = new defaultalipay Alipayconfig.merchant_private_key, "json", alipayconfig.charset, alipayconfig.alipay_public_key, alipayconfig.sign_type); // Установить параметр запроса alipaytradepagepayrequest alipayrequest = new alipaytradepagepayrequest (); alipayrequest.setreturnurl (alipayconfig.return_url+"? guiteid ="+galive); alipayrequest.setnotifyurl (alipayconfig.notify_url); // идентификатор оплаты, необходимая строка out_trade_no = widout_trade_no; // Сумма оплаты, требуемая строка otal_amount = widtotal_amount; total_amount = urldecoder.decode (total_amount, "utf-8"); // Transcoding // Имя заказа, требуемый строка субъекта = widsubject; субъект = urldecoder.decode (субъект, "UTF-8"); // Описание продукта, нулевая строковая корпус = widbody; alipayRequest.setBizContent("{/"out_trade_no/":/"+ out_trade_no +"/"," + "/"total_amount/":/"+ total_amount +"/"," + "/"subject/":/"+ subject +"/"," + "/"body/":/"+ body +"/"," + "/" timeout_express/":/" 1m/"," + "/" product_code/":/" fast_instant_trade_pay/"}"); // запрос строки resul = alipayclient.pageexecute (alipayrequest) .getbody (); response.setContentType ("text/html; charset = utf-8"); Printwriter Out = response.getWriter (); out.println (результат); вернуть ноль; }Заплатить успешно и вернуть страницу (return_url)
Возвратный путь после успеха, перейдите к контроллеру, см. Конфигурацию в Alipayconfig для подробностей
// Нажмите, чтобы купить и сохранить курс в таблице покупок @Requestmapping (value = "goumai") @responsebody public modeland и goumai (string glapeid, httpservlectrequest req, string a, string urlname, string counte, modelmap map) {modelandview mav = new ModelandView (); Map <string, string> map1 = new hashmap <string, string> (); // sysusertab login_user = sysuserservice.getsysuserbyid (userid); Httpsession session = req.getsession (); Sysusertab login_user1 = (sysusertab) session.getattribute ("login_user"); String userId = login_user1.getUserid (); // session.setattribute ("login_user", login_user); map1.put ("userId", userId); map1.put ("glapeid", glapeid); int num = sysbuyservice.getBuyCount (mapp1); if (num == 0) {mapp1.put ("buyid", uuid.randomuuid (). toString (). Replict ("-", "")); sysbuyservice.insertbuy (mapp1); } // Запрос содержимое курса // String fanHui = showfh (req, guiteid, urlname, counte, map, a); mav.setViewName ("jsp/pay/paysuccess"); вернуть мав; }После успешного платежа страница переходит на страницу paysuccess.jsp.
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.