package weixin.popular.example; import java.io.IOException; import java.util.UUID; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import weixin.popular.api.PayMchAPI; import weixin.popular.bean.paymch.Unifiedorder; import weixin.popular.bean.paymch.UnifiedorderResult; import weixin.popular.util.PayUtil; /** * 生成WEB JS 支付请求json * @author LiYi * */ public class PayMchJsServlet extends HttpServlet{ /** * */ private static final long serialVersionUID = 1L; private String appid; //appid private String mch_id; //微信支付商户号 private String key; //API密钥 @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //payPackage 的商品信息,总价可以通过前端传入 Unifiedorder unifiedorder = new Unifiedorder(); unifiedorder.setAppid(appid); unifiedorder.setMch_id(mch_id); unifiedorder.setNonce_str(UUID.randomUUID().toString().replace("-", "")); unifiedorder.setBody("商品信息"); unifiedorder.setOut_trade_no("123456"); unifiedorder.setTotal_fee("1");//单位分 unifiedorder.setSpbill_create_ip(request.getRemoteAddr());//IP unifiedorder.setNotify_url("http://mydomain.com/test/notify"); unifiedorder.setTrade_type("JSAPI");//JSAPI,NATIVE,APP,MWEB UnifiedorderResult unifiedorderResult = PayMchAPI.payUnifiedorder(unifiedorder,key); //@since 2.8.5 API返回数据签名验证 if(unifiedorderResult.getSign_status() !=null && unifiedorderResult.getSign_status()){ String json = PayUtil.generateMchPayJsRequestJson(unifiedorderResult.getPrepay_id(), appid, key); //将json 传到jsp 页面 request.setAttribute("json", json); //示例jsp request.getRequestDispatcher("pay_example.jsp").forward(request,response); } } }