支付这东西,说容易也容易,说难也难

代码这玩意还比较好说 但是 如果没有demo 直接去看官方文档

十有八九一脸懵逼 今天就整理一下 支付这块走过的坑 涉及 微信h5支付 支付宝h5支付

(api文档真的是给人类看的么 手动滑稽)

微信h5支付

一、支付账号申请

既然说是h5支付 那就要走手机网页

需要申请 微信公众号 和 微信商户号(相关材料注册时会提示)

此处有坑

微信商户号的注册地址不知为何 放的有点隐蔽

商户平台首页 -》 右上角帮助中心-》自助服务专区-》申请接入教程(新版)-》接入指引-》微信支付商户接入指引

-》找到立即申请 点击就可注册

放的这么里面 以至于 好几次都没发现

另外 开通h5支付 不需要去注册微信开放平台 因为开放平台的网页应用只涉及微信登录

此外 微信公众号的支付功能也不需要开通 只需要开通商户 绑定公众号的appid即可

二、支付环境配置

支付环境需要在商户平台配置

首先开通产品大全下的支付产品

接着 去账户中心下的api安全配置

配置key

此处有坑

版本比较早的 Chrome 可能无法安装腾讯的安全控件 切换到ie环境即可

最后去产品中心查看appid是否和公众号的appid绑定

三、支付代码

腾讯的h5支付没有sdk 验证 加密 验签 都需要自己来写

文档写的还算比较全

但是 还是有几处坑

支付完成的同步跳转(支持get形式传参)  正经的统一下单api接口没有提到

只是在开发步骤和常见问题里面提了一下

一、回调页面

正常流程用户支付完成后会返回至发起支付的页面,如需返回至指定页面,则可以在MWEB_URL后拼接上redirect_url参数,来指定回调页面。

如,您希望用户支付完成后跳转至https://www.wechatpay.com.cn,则可以做如下处理:

假设您通过统一下单接口获到的MWEB_URL= https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx20161110163838f231619da20804912345&package=1037687096

则拼接后的地址为MWEB_URL= https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx20161110163838f231619da20804912345&package=1037687096&redirect_url=https%3A%2F%2Fwww.wechatpay.com.cn

注意:
1.需对redirect_url进行urlencode处理 2.由于设置redirect_url后,回跳指定页面的操作可能发生在:
  1,微信支付中间页调起微信收银台后超过5秒
  2,用户点击“取消支付“或支付完成后点“完成”按钮。因此无法保证页面回跳时,支付流程已结束,所以商户设置的redirect_url地址不能自动执行查单操作,应让用户去点击按钮触发查单操作。回跳页面展示效果可参考下图

但是由于同步跳转无法判断用户是否支付完成

必须要手动让用户触发查单的申请

统一下单接口的sign生成也需要注意按照官方的排序和规则走

提供下面这个官方的工具 支持验证sign是否生成正确

微信公众平台支付接口调试工具

四、支付回调

回调也是需要验证 sign 也就是把官方给的xml数据去除sign 处理后 生成新的sign 对比是否合法即可

此处有坑

微信支付的金额都是以分为单位

sign验证时 注意转成大写

五、支付持续回调

支付持续回调需要在验证完数据之后 打印

 return sprintf("<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>");

即可停止

 微信app支付

app支付和h5支付相比 改变了些许参数 详细参数 统一下单文档

此处有坑

签名部分改动较大 从h5的签名一次 改为签名两次 且参数固定

https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_3

/**步骤3:统一下单接口返回正常的prepay_id,再按签名规范重新生成签名后,将数据传输给APP。参与签名的字段名为appid,partnerid,prepayid,noncestr,timestamp,package。注意:package的值格式为Sign=WXPay**/

后面的步骤就是app去处理 以及处理回调信息了

 

不管支付回调验证成功与否 记得保存回调日志

php支付走过的坑(微信篇 包含h5支付和app支付 注册 秘钥 环境等等配置)的更多相关文章

  1. php支付走过的坑(支付宝篇 注册 秘钥 环境等等配置)

    支付这东西,说容易也容易,说难也难 代码这玩意还比较好说 但是 如果没有demo 直接去看官方文档 十有八九一脸懵逼 今天就整理一下 支付这块走过的坑 涉及 微信h5支付 支付宝h5支付 (api文档 ...

  2. 微信小程序笔记<三>入口app.js —— 注册小程序

    小程序开发框架在逻辑层使用的语言就是JavaScript,所以想玩小程序JavaScript的基本功一定要扎实.但小程序基于js做了一些修改,以方便开发者更方便的使用微信的一些功能,使得小程序更好的贴 ...

  3. 微信浏览器内 h5 直接唤醒 app 之 微信开放标签 wx-open-launch-app

    以前微信浏览器内想要直接唤醒 app 要么接微信的应用宝要么你是腾讯的干儿子. 而在微信在2020年5月分推出了“微信开放标签”功能 wx-open-launch-app 用于微信浏览器内直接唤醒 a ...

  4. 拼多多(7pdd)微信跳转h5页面打开app跳转任意url关注技术weixin://dl/business/?ticket

    拼多多微信跳转接口利用了微信官方的weixin://dl/business/?ticket技术,此类接口可以在官方接口中找到,分析代码如下: <title>拼多多</title> ...

  5. 微信支付遇到的坑---缺少参数total_fee

    今天在做微信砍价成功后支付,出现了这个报错 看到报错后,去找total_fee这个参数,调试了半天,total_fee是确定有值的 微信支付的步骤 ① 预支付 商户号,商户秘钥,appid,appse ...

  6. 浅析微信支付:微信支付简单介绍(小程序、公众号、App、H5)

    本文是[浅析微信支付]系列文章的第二篇,主要讲解一下普通商户接入的支付方式以及其中的不同之处. 上篇文章讲了本系列的大纲,没有看过的朋友们可以看一下. 浅析微信支付:前篇大纲 微信支付是集成在微信客户 ...

  7. APP支付报错ALI40247处理方案!

    简直日狗!这里要吐槽支付宝: 1.支付宝文档太复杂,分类虽然详细,但是我找不到app支付 对应服务端的demo 2.提供下载的sdk都是全整合的 用下来都是一条龙服务,还有一些客户端(app)的请求也 ...

  8. 支付宝APP支付之Java后台生成签名具体步骤

    /** *支付宝支付 * @param orderId 订单编号 * @param actualPay 实际支付金额 * @return */ private String getOrderInfoB ...

  9. 支付宝 app支付 沙盘使用

    文档说明 沙箱测试: App支付沙箱接入注意点 1.app支付支持沙箱接入:在沙箱调通接口后,必须在线上进行测试与验收,所有返回码及业务逻辑以线上为准:2.app支付只支持余额支付,不支持银行卡.余额 ...

随机推荐

  1. 这些年、我收集的JQuery代码 (转)

    1. 如何创建嵌套的过滤器 //允许你减少集合中的匹配元素的过滤器, //只剩下那些与给定的选择器匹配的部分.在这种情况下, //查询删除了任何没(:not)有(:has) //包含class为“se ...

  2. CLH同步队列

    原文链接:https://blog.csdn.net/chenssy/article/details/60781148 AQS内部维护着一个FIFO队列,该队列就是CLH同步队列. CLH同步队列是一 ...

  3. P2568 GCD

    \(\color{#0066ff}{ 题目描述 }\) 给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的数对(x,y)有多少对. \(\color{#0066ff}{输入格式}\ ...

  4. 给花_Q

  5. 关于STM32F407启动后的系统时钟频率问题

    玩STM32的时间也比较久了,最早的一直玩的是STD标准库的103系列,但是ST公司也是“与时俱进”,舍弃了当年的标准库,转而推广HAL库,反正无论怎么样把,对于STM32的使用也仅仅停留在使用阶段, ...

  6. CF796A Buying A House 模拟

    Zane the wizard had never loved anyone before, until he fell in love with a girl, whose name remains ...

  7. 网站后台登录asp 提示错误号:-2147467259

    方法/步骤   1 asp 提示错误号:-2147467259 提示:[] 错误号:-2147467259 错误描述:操作必须使用一个可更新的查询. SQL错误 解决方法  把data文件夹的权限改下 ...

  8. C语言中的头文件

    1.头文件#include <> :表示引用标准库头文件,编译器会从系统配置的库环境中去寻找 2.头文件#include "":一般表示用户自己定义使用的头文件,编译器 ...

  9. 表格排序插件datatables

    之前用过表格排序插件tinytables,用到后面,随着需求的更改,发现这个插件真的low到爆了,不适合用于多表格,只有一个表格的页面可以凑合着用,有很多局限性. 之后发现了一款表格排序插件datat ...

  10. 签名:实现参数字典排序,然后拼接为url参数形式

    在很多地方请求参数需要做处理例如: 步骤 1.参数字典排序. 2.拼接字符. /// <summary> /// 生成签名 /// </summary> /// <par ...