Comment appeler l'interface Alipay à l'aide de struts
一、ACTION类关键代码 没用的包可以干掉
package com.hzdracom.alipay.action; import it.sauronsoftware.base64.Base64; import java.io.IOException; import java.io.PrintWriter; import java.net.HttpURLConnection; import java.util.HashMap; import java.util.Map; import java.util.ResourceBundle; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.ServletActionContext; import org.dom4j.Document; import org.springframework.stereotype.Controller; import com.alibaba.fastjson.JSON; import com.hzdracom.action.BaseAction; import com.hzdracom.config.AlipayConfig; import com.hzdracom.util.AlipaySubmit; import com.hzdracom.util.HTTPService; import com.hzdracom.util.UtilDate; import com.hzlq.source.security.DESUtil; /* * 支付宝付款接口 * @author ZhuangZi * @Directions * @version $Id: AliPayAction.java,v 0.1 2013-3-27 下午04:49:57 ZhuangZi Exp $ */ @Controller public class AliPayAction extends BaseAction { private String phoneCode; private String totalfee; /** * 调用支付宝接口 * @author ZhuangZi * @class com.hzdracom.alipay.action.AliPayAction * @method AliPay * @Directions 调用支付宝接口 * @date 2013-3-27下午04:53:35 void */ public void pay() { try { /*1****生成支付宝交易号,根据时间到毫秒级别*/ String out_trade_no = UtilDate.getOrderNum() ; /*2*****↓↓↓↓↓↓↓↓↓↓把请求参数打包成数组↓↓↓↓↓↓↓↓↓↓*/ Map<String, String> sParaTemp = new HashMap<String, String>(); sParaTemp = getPayPrama(totalfee, out_trade_no); /*3*****↓↓↓↓↓↓↓↓↓↓请求支付宝接口↓↓↓↓↓↓↓↓↓↓*/ String json = AlipaySubmit.buildRequest(sParaTemp, "get", "确认"); HttpServletResponse response = ServletActionContext.getResponse(); response.setContentType("text/html"); response.setCharacterEncoding("utf-8"); PrintWriter out; out = response.getWriter(); json = JSON.toJSONString(json); out.write(json); out.flush(); out.close(); } catch (IOException e) { } } /** * * @author ZhuangZi * @class com.hzdracom.alipay.action.AliPayAction * @method GetPayPrama * @Directions 封装调用支付宝参数 * @date 2013-4-1下午05:26:11 * @param totalfee 金额 * @param out_trade_no 订单编号 * @return Map<String,String> */ public Map<String, String> getPayPrama(String totalfee, String out_trade_no) { Map<String, String> sParaTemp = new HashMap<String, String>(); sParaTemp.put("service", "create_direct_pay_by_user"); sParaTemp.put("partner", AlipayConfig.partner); sParaTemp.put("_input_charset", AlipayConfig.input_charset); sParaTemp.put("payment_type", AlipayConfig.payment_type); /*服务器异步通知页面路径//需http://格式的完整路径,不能加?id=123这类自定义参数*/ sParaTemp.put("notify_url", AlipayConfig.notify_url); /*页面跳转同步通知页面路径 //需http://格式的完整路径,不能加?id=123这类自定义参数,不能写成http://localhost/*/ sParaTemp.put("return_url", AlipayConfig.return_url); /*卖家支付宝帐户*/ sParaTemp.put("seller_email", AlipayConfig.seller_email); /*商户订单号*/ sParaTemp.put("out_trade_no", out_trade_no); /*订单名称*/ sParaTemp.put("subject", AlipayConfig.subject); /*付款金额*/ sParaTemp.put("total_fee", totalfee); /*订单描述*/ sParaTemp.put("body", AlipayConfig.body); /*需以http://开头的完整路径,例如:http://www.xxx.com/myorder.html*/ sParaTemp.put("show_url", AlipayConfig.show_url); //防钓鱼时间戳 sParaTemp.put("anti_phishing_key", AlipayConfig.anti_phishing_key); /*客户端的IP地址 非局域网的外网IP地址,如:221.0.0.1*/ sParaTemp.put("exter_invoke_ip", AlipayConfig.exter_invoke_ip); return sParaTemp; } public String getPhoneCode() { return phoneCode; } public void setPhoneCode(String phoneCode) { this.phoneCode = phoneCode; } public String getTotalfee() { return totalfee; } public void setTotalfee(String totalfee) { this.totalfee = totalfee; } }
二、AlipayConfig 类是封装支付宝接口参数
package com.hzdracom.config; import com.hzdracom.util.UtilDate; /* * *类名:AlipayConfig *功能:基础配置类 *详细:设置帐户有关信息及返回路径 *版本:3.3 *日期:2012-08-10 *说明: *以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码。 *该代码仅供学习和研究支付宝接口使用,只是提供一个参考。 *提示:如何获取安全校验码和合作身份者ID *1.用您的签约支付宝账号登录支付宝网站(www.alipay.com) *2.点击“商家服务”(https://b.alipay.com/order/myOrder.htm) *3.点击“查询合作者身份(PID)”、“查询安全校验码(Key)” *安全校验码查看时,输入支付密码后,页面呈灰色的现象,怎么办? *解决方法: *1、检查浏览器配置,不让浏览器做弹框屏蔽设置 *2、更换浏览器或电脑,重新登录查询。 */ public class AlipayConfig { //↓↓↓↓↓↓↓↓↓↓请在这里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ // 合作身份者ID,以2088开头由16位纯数字组成的字符串 public static String partner = "2088001466494907"; // 商户的私钥 public static String key = "fb30213vjc4k4oabt7z4q9e07sfmlmzr"; //↑↑↑↑↑↑↑↑↑↑请在这里配置您的基本信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ // 调试用,创建TXT日志文件夹路径 public static String log_path = "D:\\"; // 字符编码格式 目前支持 gbk 或 utf-8 public static String input_charset = "utf-8"; // 签名方式 不需修改 public static String sign_type = "MD5"; public static String payment_type = "1"; //必填,不能修改 //服务器异步通知页面路径 public static String notify_url = "notify_url.jsp"; //需http://格式的完整路径,不能加?id=123这类自定义参数 //页面跳转同步通知页面路径 public static String return_url = "return_url.jsp"; //需http://格式的完整路径,不能加?id=123这类自定义参数,不能写成http://localhost/ //卖家支付宝帐户 public static String seller_email = "jjj@hzdracom.com"; //必填 //商户订单号 public static String out_trade_no =UtilDate.getOrderNum(); //商户网站订单系统中唯一订单号,必填 //订单名称 public static String subject = "隐号充值"; //必填 //订单描述 public static String body = "隐号充值"; //商品展示地址 public static String show_url =""; //防钓鱼时间戳 public static String anti_phishing_key=""; /*客户端的IP地址 非局域网的外网IP地址,如:221.0.0.1*/ public static String exter_invoke_ip=""; }
三、strut配置文件
以上属于关键代码部分,需要注意的事项有 :
1.需要把支付宝提供的接口的几个类引入到你的项目中,包括架包
2.notify_url.jsp和return_url.jsp地址要做好些成外网地址的全路径
3.你自己的业务处理写notify_url.jsp这个里面,也可以直接写个接口给支付宝接口调用
更多如何用struts调用支付宝接口相关文章请关注PHP中文网!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Les longues URL, souvent encombrées de mots clés et de paramètres de suivi, peuvent dissuader les visiteurs. Un script de raccourcissement d'URL offre une solution, créant des liens concis idéaux pour les médias sociaux et d'autres plateformes. Ces scripts sont utiles pour les sites Web individuels

À la suite de son acquisition de haut niveau par Facebook en 2012, Instagram a adopté deux ensembles d'API pour une utilisation tierce. Ce sont l'API graphique Instagram et l'API d'affichage de base Instagram. En tant que développeur créant une application qui nécessite des informations à partir d'un

Laravel simplifie la gestion des données de session temporaires à l'aide de ses méthodes de flash intuitives. Ceci est parfait pour afficher de brefs messages, alertes ou notifications dans votre application. Les données ne persistent que pour la demande ultérieure par défaut: $ demande-

Il s'agit de la deuxième et dernière partie de la série sur la construction d'une application React avec un back-end Laravel. Dans la première partie de la série, nous avons créé une API RESTful utilisant Laravel pour une application de liste de base sur le produit. Dans ce tutoriel, nous serons Dev

Laravel fournit une syntaxe de simulation de réponse HTTP concise, simplifiant les tests d'interaction HTTP. Cette approche réduit considérablement la redondance du code tout en rendant votre simulation de test plus intuitive. L'implémentation de base fournit une variété de raccourcis de type de réponse: Utiliser illuminate \ support \ faades \ http; Http :: faux ([[ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

L'extension PHP Client URL (CURL) est un outil puissant pour les développeurs, permettant une interaction transparente avec des serveurs distants et des API REST. En tirant parti de Libcurl, une bibliothèque de transfert de fichiers multi-protocol très respectée, PHP Curl facilite Efficient Execu

Voulez-vous fournir des solutions instantanées en temps réel aux problèmes les plus pressants de vos clients? Le chat en direct vous permet d'avoir des conversations en temps réel avec les clients et de résoudre leurs problèmes instantanément. Il vous permet de fournir un service plus rapide à votre personnalité

L'enquête sur le paysage PHP 2025 étudie les tendances actuelles de développement du PHP. Il explore l'utilisation du cadre, les méthodes de déploiement et les défis, visant à fournir des informations aux développeurs et aux entreprises. L'enquête prévoit la croissance de la PHP moderne versio
