手机网页端支付开发文档:https://docs.open.alipay.com/203/105285/

第一步:进入蚂蚁金服(https://openhome.alipay.com),创建应用,提交后审核

第二步:使用沙箱环境进行开发,等正式账号审核通过直接替换appid、网关和密钥就可以了  

第三步:从沙箱应用中获取APPID、支付宝网关和支付宝公钥

第四步:后去应用私钥和应用公钥(其中RSA2(SHA265)密钥可以验证公钥的正确性,而RSA(SHA1)密钥验证公钥的正确性报错,直接跳过不需要验证)

1、查看密钥生成方法

2、生成密钥

3、填写应用的公钥并获取支付宝的公钥

第五步:找到相对应的环境,下载SDK&Demo,并从demo中获取支付宝的jar

第六步:编写代码

1、创建alipay.properties文件,存在支付宝的信息

######支付宝配置文件######
######APPID
ali.appid=xxxxxxx
######支付宝公钥
ali.gy=支付宝公钥
######私钥
ali.sy=应用私钥
######编码
ali.charset=UTF-8
######返回格式
ali.format=json
######RSA2
ali.signtype=RSA2
######notifyUrl
ali.notifyUrl=成功之后跳回地址
######returnUrl
ali.returnUrl=成功之后跳回地址
######网关地址
ali.wg=https://openapi.alipaydev.com/gateway.do

注意:配置文件的公钥是支付宝公钥不是应用公钥

2、经过后台整理的支付宝信息,直接跳到支付宝官方页面

/*** 发送信息* * @param request* @param meetingId* @param isHotel* @param response* @return* @throws IOException*/@RequestMapping("/sendMsg")public String sendMsg(HttpServletRequest request) throws IOException {DecimalFormat df = new DecimalFormat("0.00");String money = df.format(meeting.getDues());String title = "支付信息";String orderId = "订单号"String form = getMsg(orderId, money, title, "QUICK_WAP_WAY");response.setContentType("text/html;charset="UTF-8");response.getWriter().write(form);// 直接将完整的表单html输出到页面response.getWriter().flush();response.getWriter().close();return null;}/*** 发送信息* * @param orderId*            订单号* @param money*            支付费用* @param title*            标题* @param body*            额外信息* @return*/public String getMsg(String orderId, String money, String title, String body) {ResourceBundle rb = ResourceBundle.getBundle("alipay");//获取properties信息AlipayClient alipayClient = new DefaultAlipayClient(rb.getString("ali.wg"), rb.getString("ali.appid"),rb.getString("ali.sy"), rb.getString("ali.format"),rb.getString("ali.charset"), rb.getString("ali.gy"),rb.getString("ali.signtype"));AlipayTradeWapPayRequest alipayRequest = new AlipayTradeWapPayRequest();// 创建API对应的requestalipayRequest.setReturnUrl(rb.getString("ali.returnUrl"));alipayRequest.setNotifyUrl(rb.getString("ali.notifyUrl"));// 在公共参数中设置回跳和通知地址alipayRequest.setBizContent("{" + " \"out_trade_no\":\"" + orderId+ "\"," + " \"total_amount\":\"" + money + "\","+ " \"subject\":\"" + title + "\"," + " \"product_code\":\""+ body + "\"" + " }");// 填充业务参数String form = "";try {form = alipayClient.pageExecute(alipayRequest).getBody(); // 调用SDK生成表单} catch (AlipayApiException e) {e.printStackTrace();}return form;}

3、支付成功后回调

 /*** 回调信息* * @param id* @param request* @return* @throws AlipayApiException* @throws UnsupportedEncodingException*/@RequestMapping("/getMg")public String getMsg(HttpServletRequest request) {Map requestParams = request.getParameterMap();String meetingId = validMsg(requestParams);if (meetingId == null) {return "redirect:/phone/meeting";}return "redirect:/phone/meeting?id=" + meetingId;}/*** 第一步获取信息* * @param id* @param request* @return* @throws UnsupportedEncodingException* @throws AlipayApiException*/@RequestMapping("/backMg")public String backMsg(HttpServletRequest request) {Map requestParams = request.getParameterMap();String meetingId =validMsg(requestParams);if (meetingId == null) {return "redirect:/phone/meeting";}return "redirect:/phone/meeting";}/*** 验证是否支付成功* * @param requestParams* @return*/public String validMsg(Map requestParams) {Map<String, String> params = new HashMap<String, String>();ResourceBundle rb = ResourceBundle.getBundle("alipay");for (Iterator<String> iter = requestParams.keySet().iterator(); iter.hasNext();) {String name = (String) iter.next();String[] values = (String[]) requestParams.get(name);String valueStr = "";for (int i = 0; i < values.length; i++) {valueStr = (i == values.length - 1) ? valueStr + values[i]: valueStr + values[i] + ",";}// 乱码解决,这段代码在出现乱码时使用。如果mysign和sign不相等也可以使用这段代码转化params.put(name, valueStr);}try {boolean verify_result = AlipaySignature.rsaCheckV1(params,rb.getString("ali.gy"), rb.getString("ali.charset"),rb.getString("ali.signtype"));if (verify_result) {String orderId = params.get("out_trade_no");String meetingId = null;//自己逻辑return meetingId;}} catch (AlipayApiException e) {// TODO Auto-generated catch blocke.printStackTrace();}return null;}

第七步:微信公众平台无法使用支付宝支付

1.从支付宝文档中下载解决方案

根据方案中的步骤引入ap.js和pay.htm,调用_AP.pay()的方法访问支付宝信息

手机网页端支付宝支付相关推荐

  1. java 支付宝h5网页支付接口,移动端h5网页调用支付宝支付接口

    领导第一次让我做h5支付宝支付的时候,去了支付宝开放平台,一顿上上下下左左右右,看完了长呼一口气.这个支付好像没我啥事儿啊!小伙伴儿们自行查看:https://opendocs.alipay.com/ ...

  2. 移动端h5网页调用支付宝支付接口

    来源 | https://www.dsiab.com/post/4181 领导第一次让我做h5支付宝支付的时候,去了支付宝开放平台,一顿上上下下左左右右,看完了长呼一口气. 这个支付好像没我啥事儿啊! ...

  3. 如何获取电脑网站(手机网站)支付宝支付的配置信息(appid、商户私钥、支付宝公钥)

    需求:想在网站接入支付宝支付.现在的网站基本分为PC端和手机端. 明确工作目标:appid.商户私钥.支付宝公钥以及回调地址. 电脑PC端支付宝支付获取配置信息步骤如下: 1.登录支付宝开放平台    ...

  4. 电脑网站(手机网站)支付宝支付的配置信息(appid、商户私钥、支付宝公钥)

    需求:想在网站接入支付宝支付.现在的网站基本分为PC端和手机端. 明确工作目标:appid.商户私钥.支付宝公钥以及回调地址. 电脑PC端支付宝支付获取配置信息步骤如下: 1.登录支付宝开放平台    ...

  5. 手机网页唤醒支付宝APP发送加好友验证

    手机网页唤醒支付宝APP发送加好友验证 <html><head><meta charset="utf-8" /><meta name=&q ...

  6. 支付宝手机网页唤醒app支付

    请直接看原文 下面链接是新版本的RSA2加密方式,这篇介绍的是老版本的手机网站唤醒app支付 新版支付宝手机网站唤醒app支付.支付宝pc支付.支付宝无密退款实现 http://blog.csdn.n ...

  7. 手机APP调用支付宝支付(java服务端)

    最近项目中涉及到调用支付宝支付接口,记录一下.拉进去配置一下直接可以用的 导包 <dependency><groupId>com.alipay.sdk</groupId& ...

  8. 手机APP使用支付宝支付(服务端)

    最近本人刚做了手机APP支付宝支付功能,主要分为六步,在这里主要记录代码部分. 第一步:创建应用并获取APPID 要在您的应用中接入支付宝App支付能力,需要通过创建应用的方式接入蚂蚁相关接口并进行开 ...

  9. 手机/网页端实现自动打卡

    首先我先说一下我的思路: 第一种:要抓包,分析上班打卡(签到)和下班打卡(签退)的数据包,数据包发送的数据,利用python中的requests库来实现. 第二种:通过模拟点击手机或者网页来实现签到打 ...

最新文章

  1. c语言怎么删除字符串中的指定字符_Java中你知道几种从字符串中找指定的字符的数量
  2. 实现java多线程的3种方式,99%人没用过第3种
  3. 2018-2019-1 20165323 20165333 20165336 实验五 通讯协议设计
  4. ASP.NET基础教程-以查询字符串的方式在两个页面之间传递信息
  5. 如何删除textarea的移动版Safari的阴影?
  6. mysql 1.6安装_centos 6.6编译安装nginx1.6.2+mysql5.6.21+php5.6.3.docx
  7. SecureCRT 6.7.0.153 汉化绿色版
  8. linux扫描硬盘故障命令
  9. Mac中显示和隐藏隐藏文件命令行
  10. Python3 | UserWarning: findfont: Font family [‘SimHei‘] not found. Falling back to DejaVu Sans.
  11. 次坐标从0开始_干货 | 全站仪测量使用方法及坐标计算,一步一步讲解!
  12. 最强战队 | 三维视觉、SLAM方向全球顶尖实验室汇总
  13. 资源集成视角解读项目管理-合同类型
  14. 线性回归、岭回归、LASSO和Logistic模型
  15. 【bpmn.js 使用总结】九、 Viewer 添加缩放、改色、拖动
  16. 指针变量与数组的关系及什么是指针数组
  17. 【POJ 3580】 SuperMemo
  18. 计算机网络之IP协议与以太网
  19. “大牌”纷纷入驻智能家居,小米能否守住高地?
  20. vue实现下拉二级联动_vue实现二级联动效果

热门文章

  1. 【芝麻信用陈玲玲:用户正在越来越珍惜自己的信用,这要感谢区块链等技术】
  2. ajax总结(四):原生js封装a和jQurey版ajax介绍
  3. ubuntu Vscode打不开 提示error:unable to write program user data 且多数软件不能正常打开的一种可能性
  4. 【历史上的今天】6 月 27 日:摩托罗拉背后的高尔文家族;微软发布 ASP.NET Core;靠计算机起家的美国大亨
  5. php chown,php chown函数怎么用 - chown
  6. linux cal命令使用,Linux如何使用cal命令查看日历
  7. [建站日记]3day 回到命令行界面
  8. RadioButton 单选
  9. react 最佳入门_2020年值得期待跑鞋,上半年最佳跑鞋榜
  10. DIC技术在煤矿土木结构研究的应用