申明: 内容中的图片都消失了。

最近有这个需求,扫描二维码后打开一个网页,在网页中选择支付方式。

如果是微信打开,就调用微信的网页支付功能。

如果是支付宝打开,就调用支付宝的网页支付功能。

这篇讲解支付宝内置浏览器支付。

创建支付宝应用

完善这个需求之前,登录支付宝的管理平台。

进入开发者重点,创建一个应用。

选择支付应用,并填写应用名称

点击创建。

这个时候,注意功能选项里面添加 手机网站支付 , 需要签约。根据支付宝需要的信息签约。

设置公钥和私钥

我们查看支付宝官方密钥生成方法,我下载的Window密钥生成工具。

打开 RSA 签名工具后,选择密钥长度 2048。

然后设置到支付宝,并配置网关。

保存提交审核。

搭建Java服务器

支付宝官方文档中介绍的其实已经够详细。
我封装的核心代码:
创建AliPay.java 类。
 
private AlipayClient mClient;
private AlipayTradeWapPayRequest mAliPayRequest;
/**
* properties 是我的配置文件帮助类。
* url : https://openapi.alipay.com/gateway.do
* appId: 刚才创建的应用的APPID. 
* 公钥和私钥以及其它必须字段



*/
public AliPay() {mClient = new DefaultAlipayClient(properties.getAliURL(), properties.getAliAppID(), properties.getAliPrivateKey(),"json", "utf-8", properties.getAliPublicKey(), "RSA2");mAliPayRequest = new AlipayTradeWapPayRequest();}/**
* 封装请求支付信息
* @param subject       商品名称
* @param totalAmount       商品金额
* @param body          Body
* @throws AlipayApiException 生成订单异常
* @return 支付宝交易页面 Web
*/
public String pay(String subject, String totalAmount, String body) throws AlipayApiException {AlipayTradeWapPayModel model = new AlipayTradeWapPayModel();String outTradeNo = getOutTradeNo();// 商户网站唯一订单号model.setOutTradeNo(getOutTradeNo());// 商品名称model.setSubject(subject);// 商品金额model.setTotalAmount(totalAmount);model.setBody(body);model.setProductCode("QUICK_WAP_PAY");mAliPayRequest.setBizModel(model);mAliPayRequest.setNotifyUrl(properties.getAliNotifyUrl()); // 异步支付通知return mClient.pageExecute(mAliPayRequest).getBody();
}
// 在外使用, String from = new AliPay().pay("费用", "0.01", "Your Body");



错误与原因

ISV 错误: 原因,未完成上面提到的签约操作。
欢迎大家补充。
以上

【网页支付】支付宝内置浏览器调用支付功能相关推荐

  1. LoveEmperor-王子様 支付宝内置浏览器支付 js+java

    作者:LoveEmperor-王子様 背景:支付宝内置浏览器支付,即支付宝扫码浏览应用页面,在页面上进行支付操作: 需要获取用户id,去请求支付宝下单[微信内置浏览器支付思路一样](https://b ...

  2. 微信公众号 - 实现 H5 网页在微信内置浏览器中下载文件,可预览和下载 office 文件(doc / xls / ppt / pdf 等)适用于任何前端技术栈网站,兼容安卓和苹果系统!

    前言 网上的教程都是让你写页面 "引导" 右上角三个点里,让用户自己去浏览器打开,其实这样用户体验并不好. 本文实现了 最新微信公众号 H5 网页(微信内置浏览器中),预览下载 o ...

  3. 解决微信屏蔽内置浏览器的下载功能以及如何跳转到手机默认浏览器下载的实现...

    今天一后台同事问我:为什么从App里面分享到微信好友时,在微信里没有发下载分享里的软件,而在浏览器中却可以? 于是我在微信公众号中试了一下,发现果然不可以下载.通过google 发现,原来是微信屏蔽了 ...

  4. 微信屏蔽内置浏览器的下载功能的解决方案:微信跳转到手机默认浏览器下载

    今天一后台同事问我:为什么从App里面分享到微信好友时,在微信里没有发下载分享里的软件,而在浏览器中却可以? 于是我在微信公众号中试了一下,发现果然不可以下载.通过google 发现,原来是微信屏蔽了 ...

  5. mac safari无法打开网页_苹果手机内置浏览器safari打不开网页问题的解决方法

    safari虽然只有苹果用户才能使用,但是随着苹果用户的增多,不少人遇到safari打不开网页的问题等,safari是苹果手机内置浏览器,在打开网页时经常会出现safari打不开网页因为服务器已停止响 ...

  6. Android手机微信内置浏览器缓存怎么清理?

    有很多时候我们的网站需要在微信上打开进行测试,一次次的修改不像是浏览器一样可以随时清理缓存,不清理缓存的话这样会对测试运行结果有影响,那如何清理缓存呢? 注意:此功能只能适用于安卓微信 1.专门的清理 ...

  7. 解决微信内置浏览器tel:手机号不能打电话的问题

    正常的唤起设备的打电话功能,这样写就可以了 <a href="tel:13045678901">拨号</a> 但是在微信内置浏览器中这个功能好像是被屏蔽掉了 ...

  8. vue支付宝html,vue 解决在微信内置浏览器中调用支付宝支付的情况

    我的思路大概是这样的 1. 验证是否是在微信内置浏览器中调用支付宝 2.给支付页面的url加上调用接口所需的参数(因为在微信里是不能直接调用支付宝的需要调用外部浏览器) 3.在外部浏览器中完成支付跳转 ...

  9. 安卓非微信内置浏览器中的网页调起微信支付的方案研究

    问题来源 之前在app中集成过微信支付,此种微信支付方式为app支付,即在我们自己的应用中嵌入微信支付SDK,由Native代码调起微信支付. 后来由于业务需要在我们app的WebView中打开第三方 ...

最新文章

  1. 数据挖掘-数据清理过程
  2. LR手动关联参数化问题总结
  3. html 查询表单,如何让我的HTML表单查询适用于所有表单元素?
  4. 国产Dhyana禅定x86处理器开始启动生产
  5. concurrent: ThreadPoolExecutor 用法
  6. CodeForces - 571D Campus(数据结构综合)
  7. css的input文本框的 propertychange、focus、blur
  8. 鼠标移动时,光标相对于对象的位置
  9. 【数字逻辑 Verilog】全面剖析数据选择器——从基础到拓展,从理论到设计的实现,从表面到本质
  10. [转]【HttpServlet】HttpServletResponse接口 案例:完成文件下载
  11. 结构体,宏,枚举,函数,指针
  12. 4.8_adapter_结构型模式:适配器模式
  13. CFileDialog多选文件的最大数量
  14. 测试用例管理工具有哪些?
  15. 服务器1U,2U的含义
  16. centos7挂载win10共享文件夹详解
  17. 第二组第一次成团哈哈哈哈
  18. Mybatis学习笔记(尚硅谷版整理)
  19. 【js】仿照网易云音乐制作的音乐播放组件
  20. 如何在macbook上制作MP3同步歌词

热门文章

  1. h5 vr效果_H5案例|通过VR展示的那些烧脑游戏
  2. 电镀行业水处理分析:褪镀废水回收重金属,用什么工艺解决
  3. LeetCode hot-100 简单and中等难度,31-40.
  4. linux系统工程师面试题答案整理
  5. 网络视频无法快进无法选中进度条
  6. android中小火箭动态喷射动画的简单实现
  7. 一个新的项目:狼人杀
  8. Win10下媲美apt的包管理工具 Scoop 的安装以及常用软件清单
  9. watch:{} 与 this.$watch() 一样
  10. 线性代数学习笔记——行列式的性质及拉普拉斯定理——10. k阶子式、余子式、代数余子式