Neil_HL
Neil_HL
  • 发布:2018-04-28 17:36
  • 更新:2019-07-20 11:10
  • 阅读:9048

原生支付 - 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

要回复文章请先登录注册

1162762894@qq.com

1162762894@qq.com

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

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

252419121@qq.com

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

天使中的魔鬼

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

破铜烂铁

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

pengfaguo@qq.com

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

447443069@qq.com

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

Neil_HL (作者)

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

447443069@qq.com

你好!
我这边有个正常的支付宝服务器返回的订单,但是通过调用plus.payment.request这个接口老是提示ALI38173这个错误,支付宝对接技术说可能是客户端有修改订单参数,想问下plus.payment.request这个是否会修改订单参数statement
2018-06-04 14:38