前言

考虑到网络上微信的h5支付都是讲解原生app的,ionic3的基本没有,我自己总结下。

大致流程

1、用户在商户侧完成下单,使用微信支付进行支付

2、由商户后台向微信支付发起下单请求(调用统一下单接口)注:交易类型trade_type=MWEB

3、统一下单接口返回支付相关参数给商户后台,如支付跳转url(参数名“mweb_url”),商户通过mweb_url调起微信支付中间页

4、中间页进行H5权限的校验,安全性检查(此处常见错误请见下文)

5、如支付成功,商户后台会接收到微信侧的异步通知

6、用户在微信支付收银台完成支付或取消支付,返回商户页面(默认为返回支付发起页面)

7、商户在展示页面,引导用户主动发起支付结果的查询

8,9、商户后台判断是否接到收微信侧的支付结果通知,如没有,后台调用我们的订单查询接口确认订单状态

10、展示最终的订单支付结果给用户

大致的流程就和微信的文档一致。如果看不懂的话,那就通俗的来讲就是:你在下单时,要给后台发请求,后台通过拿到的参数请求微信后台去生成订单并同时返给你一个路径mweb_url,这个路径就是用来调起微信应用发起支付操作的。这里要说明的就是由于h5支付不能主动回调,所以需要个主动查询的操作,这时会需要你有一个确认界面来进行主动查询订单状态。调起支付界面之后进行支付操作,期间你什么都不用管,因为这都是微信的事。你需要的就是在你付完钱之后查看你的钱买你要的东西到底有没有成功。(在ionic中,支付完成后,我是跳转到首页)

常见错误

一、回调页面

(有颜色的部分就是你要添加最后想要跳转进行别的操作的页面,一般就是确认订单状态的页面)

注意:

1.需对redirect_url进行urlencode处理

2.由于设置redirect_url后,回跳指定页面的操作可能发生在:

1,微信支付中间页调起微信收银台后超过5秒

2,用户点击“取消支付“或支付完成后点“完成”按钮。因此无法保证页面回跳时,支付流程已结束,所以商户设置的redirect_url地址不能自动执行查单操作,应让用户去点击按钮触发查单操作。

ionic3中解决方案

需要在iframe中打开MWEB_URL,支付完成还是会返回到原来的界面,这里你可以在原来界面的生命周期里重新刷新一下支付状态;当然,如果需要回调跳转到指定页面也是可以的,在后面拼接上redirect_url参数就可以了(实际用的时候记得urlencode一下,我这里为了讲解方便直接贴出来了redirect_url=http://localhost:8100?name=WX)

var loadUrl = "https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx20161110163838f231619da20804912345&package=1037687096](https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx20161110163838f231619da20804912345&package=1037687096)`&redirect_url=http://localhost:8100?name=WX"

this.navCtrl.push(BrowserPage, {

browser: {

title: "支付结果",

url: loadUrl

}

});

首页接收到传递过来的参数进行后续操作(想跳转到哪里都可以,我这里就弹出一个对话框,提示用户支付成功)

56c8f1715bba

image.png

const urlParams = getURLSearchParamsByHref();

console.log("urlParams===",urlParams);

if(urlParams.get("name") == "WX"){//支付成功跳转过来

//弹窗警告

let alert = this.alertCtrl.create({

title: '提示',

subTitle: '支付成功!',

buttons: [

{

text: '取消',

handler: data => {

console.log('Cancel clicked');

}

},

{

text: '确定',

handler: data => {

console.log('Saved clicked');

}

}

] });

alert.present();

}

注意:你h5的app访问的域名和后台申请h5支付的时候填写的h5支付的域名必须一样,不然会报“商家存在未配置的参数,请联系商家解决“。

微信支付的服务器配置url超时,微信H5支付商家存在未配置的参数,请联系商家解决的...相关推荐

  1. 随笔一计:微信h5支付商家存在未配置的参数xxx

    问题的起因 在微信环境下我们的支付流程都可以跑通,一点毛病都没有.但是转到浏览器中就出现问题 "商家存在未配置的参数,请联系商家解决" ,哎 好吧无奈的只能找问题了,先看一波官方文 ...

  2. h5支付不能打开支付宝 ios_iOS实现H5支付(微信、支付宝)原生封装

    前言 支付分APP支付.H5支付.扫码支付等.app支付一般在app中使用,并且需要集成相应的支付SDK,H5支付多用于网页.如果你的APP不想集成支付SDK,又想实现支付功能,你可以在项目中使用H5 ...

  3. h5支付不能打开支付宝 ios_IOS WKWebView H5支付打开支付宝/微信客户端

    近期公司项目中的App使用WKWebView封装作为一个壳,加载web的网页,其中的支付使用的是H5支付,在APP中需要调起微信和支付客户端进行支付,过程中遇到了一些问题,好在通过查找资料找到了以下解 ...

  4. 微信订阅号服务器配置url如何配置,微信订阅号开发模式基本配置

    今天学习君尝试了微信订阅号的简单开发  在验证开发者基本配置的时候 遇到了问题 ,不了解微信的规则 ! 查阅开发者文档 也没找到完整,详细 直观的介绍,百度以后终于成功了  在这里总结下 php 开发 ...

  5. ios支付宝支付失败不回调_iOS支付宝H5支付无法返回APP解决方案

    本文只讨论你已经成功实现客户端->支付宝支付流程,仅仅是支付完成后无法返回自己的APP的问题. 如果你的支付流程是客户端->Safari->支付宝不在本文讨论范围之类. iOS支付宝 ...

  6. 微信公众号服务器配置ur超时,公众号服务器配置后自动回复

    公众号服务器配置后自动回复 内容精选 换一换 云联络中心支持多租形式,运维管理员可直接在云联络中心Portal上创建呼叫中心,该呼叫中心对应CTI上已经存在的实体呼叫中心,并为该呼叫中心添加资源,资源 ...

  7. 微信公众号服务器配置url,微信公众号平台设置服务器地址(URL)和令牌(Token)配对启用方法...

    /** * wechat php test * 验证结束后,关闭valid验证接口,开启responseMsg消息回复接口 */ //define your token define("TO ...

  8. 微信公众号服务器配置会员卡链接,微信公众号实现会员卡领取功能

    1.会员卡的领取也需要js-sdk接口(可以参考获取微信公众号获取用户的地理位置信息)(借鉴网址:http://gaoboy.com/article/25.html) 2. 比获取用户地理位置信息多了 ...

  9. 微信公众号 服务器配置 token 测试,微信公众号开发:基本配置Token验证简单事件回复...

    公众号配置的URL就是你自己服务器上验证TOKEN的方法的地址 比如我验证TOKEN的方法访问地址是http://www.aaa.cn/wx_api.php 那我公众号配置的URL就要填http:// ...

最新文章

  1. 得分碾压人类的NLP系统诞生了,微软创CoQA挑战新纪录!
  2. linux环境变量恢复,linux环境变量设置错误后的恢复方法(转)
  3. Blend学习资料总结
  4. Python+opencv 机器视觉 - 基于霍夫圈变换算法检测图像中的圆形实例演示
  5. 20145233《Java程序设计》课程总结
  6. Java并发编程的艺术(十)——Java中的锁(5)
  7. 彼尔盖茨的十句话,绝对让你改变一生
  8. java int integer_浅谈java中int和Integer的区别
  9. Pandas速查手册中文版
  10. 用python完成《商务与经济统计(第13版)》课后练习——第7章和第8章
  11. 论单片机程序固件保护的重要性和方法
  12. 智慧消防技术在安全管理中的应用与研究
  13. ios android 逆向 对比,iOS逆向开发--APP重签名
  14. 记录一下wandb的用法
  15. 计算机语言可读性排名,计算机语言可读性强,容易记忆
  16. Java证书读取的两种方式
  17. 光耦w314的各引脚图_a3140光耦用什么代替
  18. 众智日照服务器无响应,众智日照分析常见问题解释
  19. android——webview解决goback()后,界面会刷新的问题
  20. 账号联合运营--花漾指纹浏览器引领跨境电商新趋势

热门文章

  1. iMessage群发,苹果群发技术开源
  2. 解决Echarts柱形图正负数在同一侧,并设置正负值不同颜色
  3. 腾讯云服务器的项目部署
  4. ADB安装电视应用市场
  5. 关于layer.open()弹出页面与”父页面“之间获取数据赋值给页面Element的问题
  6. vue 使用 currency.js 处理 小数的相加减 精度问题
  7. ImportError: No module named datetime全局python解决time显示问题
  8. 东南西北十字图_怎么辨别东南西北的方向 分清东南西北口诀与窍门技巧(图)...
  9. 安卓一键清理内存_安卓的手机内存清理来啦……
  10. CPU占用率爆满,服务器遭遇挖矿如何排查