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

来源:互联网 发布:磨皮插件怎么安装mac 编辑:程序博客网 时间:2024/05/28 18:43

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

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

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

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

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


创建支付宝应用

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

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


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



点击创建。

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


设置公钥和私钥

我们查看支付宝官方密钥生成方法,我下载的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 bodyBody* @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 错误: 原因,未完成上面提到的签约操作。


欢迎大家补充。
以上
原创粉丝点击