Neil_HL
Neil_HL
  • 发布:2018-04-28 17:36
  • 更新:2019-12-09 11:39
  • 阅读:19636

原生支付 - wap2app教程

分类:wap2app

支付功能是app重要的组重部分,wap2app支持两种支付方式:原生支付、H5网页支付。

H5支付

H5网页支付主要是通过schame调起客户端达到支付的目的。

hello wap2app示例里的支付示例采用的就是这种(在HBuilder新建wap2app选择hello wap2app模版示例即可体验),在需要支付时将参数传入后台,生成相关参数然后跳转支付页面,在支付页面,会自动通过schame调起客户端进行支付。

开发wap2app时,使用H5支付的方式,改动较少,只需要将页面的url配置到的webview里面即可。

在实际开发中,可将微信或支付宝的支付页面配置到同一个webview里面简单命名为pay,支付成功或失败后新开到另外的webview,命名为paySuccess,在paySuccess这个页面onShow()的时候,关闭pay页面,这样,执行back操作的时候就可以直接退回订单生成的页面,开发者可根据自己的需求设置页面逻辑。

原生支付

wap2app是运行在5+runtime下的应用,所以支持5+plus的各种api,其中包含支付功能。

5+支付可参考教程http://ask.dcloud.net.cn/article/71,也可在HBuilder里面新建Hello H5+,在里面查看相关demo源码。

使用5+的支付方式需要改造原站,判断是5+引擎的环境下,调用pay模块的api即可实现。

document.getElementById("pay").addEventListener("click", function() {  
    if(navigator.userAgent.indexOf("Html5Plus") > -1) {  
        //5+ 原生支付  
    } else {  
        //原有wap站H5支付   
    }  
});

使用原生支付体验较好,支持各种回调,可以得到不同的返回参数,开发起来逻辑更加清晰。

注意

  • 无论那种支付方式都得细看官方的支付文档(微信支付文档支付宝支付文档),还有就是是H5网页支付和app支付是不一样的流程,需要区分开;
  • 网页集成原生支付后,在真机调试不能调起原生支付,检查调用plus的相关代码与服务端代码写得是否正确;
  • 真机调试能正常调起原生支付,云端打包后支付失败,检查腾讯与阿里的后台签名密钥appid之类的是否正确;
  • 还有其他问题,可在本帖或论坛提出。
3 关注 分享
hylong Trust skysowe

要回复文章请先登录注册

8***@qq.com

8***@qq.com

window.plus.payment.getChannels(
function(channels) {
console.log(channels)
},
function(e) {
alert('获取支付通道失败:' + e.message)
}
)
manifest 也配置了支付模块 获取支付通道 channels 是个空数组是怎么回事吗
2019-12-09 11:39
c***@iquhuan.com

c***@iquhuan.com

回复 Neil_HL :
请问这个表示是支持微信app原生支付吗,h5+会根据支付宝或者微信支付下单接口的返回自动处理并调起支付接口吗
2019-11-04 21:38
c***@iquhuan.com

c***@iquhuan.com

回复 Neil_HL :
请问这个表示是支持微信app原生支付吗,h5+会根据支付宝或者微信支付下单接口的返回自动处理并调起支付接口吗
2019-11-04 21:37
BaseCloud

BaseCloud

封装的H5+原生能力接口,一行代码调用原生能力。

开源仓库地址: https://gitee.com/cloud_finder/Joiny-H5Plus
2019-07-20 11:10
2***@qq.com

2***@qq.com

原生支付 能提供源码吗?6361024@qq.com
2019-03-20 09:15
天使中的魔鬼

天使中的魔鬼

回复 4***@qq.com :
麻烦问下你这边处理成功了吗?这dcloud的官方文档写的也太渣了,支付请求接受参数也不写清楚,是什么格式啊。
2018-12-18 17:39
破铜烂铁

破铜烂铁

能不能提供下 接收参数 的样例,感觉无从下手啊,如何实现 微信、支付宝支付,还有苹果内支付,给点参考帮忙 入下门
2018-12-18 17:02
p***@qq.com

p***@qq.com

可以把服务端的代码放出来吗?
2018-09-01 01:04
4***@qq.com

4***@qq.com

回复 Neil_HL :
嗯,好的,谢谢
2018-06-04 15:07
Neil_HL

Neil_HL (作者)

回复 4***@qq.com :
我们不会改某个参数的,检查请求参数,对照支付宝的线上文档查看,比如:参数少了、多了、乱码、名称不对,还有必传参数是否都请求提交给支付宝了等等
2018-06-04 14:59