支付宝 Wap 支付的两种实现方式

点击▲关注 “爪哇妹” 给公众号标星置顶

更多摄影技巧 第一时间直达


简介

适用于商家在移动端网页应用中集成支付宝支付功能。商家在网页中调用支付宝提供的网页支付接口调起支付宝客户端内的支付模块,商家网页会跳转到支付宝中完成支付,支付完后跳回到商家网页内,最后展示支付结果。若无法唤起支付宝客户端,则在一定的时间后会自动进入网页支付流程。

Wap支付

这里我们直接使用支付宝原生Wap支付能力,上一段伪代码:

/**
 * 发起API调用
 * 初始化基础参数
 * 产品名称、订单号、产品价格、前台回调、后台回调
 */
AlipayTradeWapPayResponse response = AliFactory.Payment
        .Wap(cpPayUtils.getAliContent(config))
        .pay(product.getBody(), orderNo, product.getTotalFee(),config.getReturnUrl(),config.getNotifyUrl());
if (ResponseChecker.success(response)) {
    return Result.ok(response);
} else {
    return Result.error(response.getBody());
}

如果调用成功,支付宝生成并返回交易表单,需要开发者自行渲染后自动跳转支付宝网站引导用户完成支付。

//创建一个标签,并把返回的表单放入其中,然后提交表单接口
var div = document.createElement('divForm');
div.innerHTML = result.msg.body;
document.body.appendChild(div);
document.forms[0].acceptCharset = 'UTF-8';
document.forms[0].submit();

提交成功以后,会拉起支付宝 APP 进入支付界面。

Native支付

昨天跟朋友聊 Wap 支付的问题,发现他并没有用返回表单提交的方式,原来是使用了官方推荐的手机网站支付转 Native 支付。

手机网站支付的网络依赖比较严重,也通常需要经过更多的验证,这种种原因导致手机网站支付的成功率比 Native 支付低,对商户的利益造成影响。

/**
 * 发起API调用
 * 其实就是当面付
 * 参数:商品名称、订单号、订单金额
 */
AlipayTradePrecreateResponse response = AliFactory.Payment
        .FaceToFace(cpPayUtils.getAliContent(config))
        .asyncNotify(config.getNotifyUrl())
        .preCreate(product.getBody(), orderNo, product.getTotalFee());
if (ResponseChecker.success(response)) {
    /**
     * 直接返回二维码信息
     */
    return Result.ok(response.getQrCode());
} else {
    return Result.error(response.msg);
}

前台拿到后台返回的信息,直接在浏览器重定向即可唤醒支付宝APP。

小结

总的来说,后者比前者的确要高效很多,毕竟前者要提交不少表单数据,而后者只需要重定向地址就可以了。但是,目前小编还没有发现 Native 支付前台回调的参数,有了解的小伙伴可以分享一下。

演示

地址:https://pay.cloudbed.vip

账号:pay 密码:123456

END -

支付宝微信一码付上线了,欢迎体验

分享六个经典的 SpringBoot 开源项目

肝了一夜,撸了一个登录智能人机验证码功能

一套通用的后台管理系统,赚钱就靠它了!

SpringBoot 开发案例之接入腾讯云短信

推荐一款基于 Java 的身份证号码识别系统

分享一个支付大屏实时监控数据平台

推荐一款清爽的实时监控大屏附安装教程

你点的每个在看,我都认真当成了喜欢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值