微信网页支付V3版js_api_call.php从订单跳转到微信支付提示缺少统一支付接口必填参数out_trade_no!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信网页支付V3版js_api_call.php从订单跳转到微信支付提示缺少统一支付接口必填参数out_trade_no!相关的知识,希望对你有一定的参考价值。
这是我的订单
为什么接收不到呢,希望大神指点,非常感谢,授权目录没问题,测试能通过
这个out_trade_no你请求过去没,
这个out_trade_no是你自己网站上的订单号,流程是这样的
用户在你的网站支付,你自己的网站首先生成一个订单号,比如1234,然后把相关的信息请求给微信,这个out_trade_no也就是你的订单号(1234),然后微信那边支付成功之后会回调,他会把这个out_trade_no依然给你,你可以通过这个来识别是谁支付成功了
你的图片
看到没,那是个例子,你依然把他注释了,所以那个$out_trade_no是空的,
商户支付的订单号由商户自定义生成,微信支付要求商户订单号保持唯一性(建议根据当前系统时间加随机序列来生成订单号)。重新发起一笔支付要使用原订单号,避免重复支付;已支付过或已调用关单、撤销(请见后文的API列表)的订单号不能重新发起支付。
参考技术A1,该网站没有遵循微信的开发者规范开发,解决方式是联系网站运营方修改;
2,浏览器兼容性不好,可以换一个浏览器再试试,一般来说IE和谷歌浏览器是兼容性最好的
微信 (WeChat)[1] 是腾讯公司于2011年1月21日推出的一个为智能终端提供即时通讯服务的免费应用程序[1] ,由张小龙所带领的腾讯广州研发中心产品团队打造 [2] 。微信支持跨通信运营商、跨操作系统平台通过网络快速发送免费(需消耗少量网络流量)语音短信、视频、图片和文字,同时,也可以使用通过共享流媒体内容的资料和基于位置的社交插件“摇一摇”、“漂流瓶”、“朋友圈”、”公众平台“、”语音记事本“等服务插件。
截止到2016年第二季度,微信已经覆盖中国 94% 以上的智能手机,月活跃用户达到 8.06亿,[3] 用户覆盖 200 多个国家、超过 20 种语言。[4] 此外,各品牌的微信公众账号总数已经超过 800 万个,移动应用对接数量超过 85000 个,广告收入增至36.79亿人民币[3] ,微信支付用户则达到了 4 亿左右。[4]
微信提供公众平台、朋友圈、消息推送等功能,用户可以通过“摇一摇”、“搜索号码”、“附近的人”、扫二维码方式添加好友和关注公众平台,同时微信将内容分享给好友以及将用户看到的精彩内容分享到微信朋友圈。
2016年3月1日起,微信支付对转账功能停止收取手续费。同日起,对提现功能开始收取手续费。[5] 3月10日,微信官方首次公布“企业微信”的相关细节,并于4月18日通过应用宝正式发布安卓版。8月,微信与支付宝同获香港首批支付牌照[6] 。
2017年12月25日,“微信身份证网上应用凭证”在广州市南沙区签发,为线上、线下政务服务以及旅馆业登记、物流寄递等实名制应用场景,提供国家法定证件级身份认证服务。
H5版如何在微信外(非微信浏览器)进行微信支付技术方案
官方是支持在非微信内置浏览器中调起微信支付的!
H5支付是基于公众号基础开发的一种非微信内浏览器支付方式(需要单独申请支付权限),可以满足在微信外的手机H5页面进行微信支付的需求。同时,由于H5链接传播十分方便、来源不易追踪,商户需要特别注意做好防钓鱼、防刷单的处理,控制风险。
流程原理
接口说明
(1)用户打开商户H5网页选购商品,生成支付订单;
(2)商户调用【统一下单】接口(接口中trade_type需定义为WAP),获得预支付交易会话标识prepayid;
(3)商户按照微信H5支付协议生成deeplink;
(4)用户在商户H5网页点击deeplink调起微信支付;
(5)用户支付完成,返回商户网站查看订单结果
DEEPLINK定义:
商户server调用统一下单接口请求订单,api参见公共api【统一下单】(接口中trade_type需定义为WAP),微信会返回给商户prepayid,商户按固定格式生成deeplink,通过用户点击deeplink来调起微信支付。
DEEPLINK格式:
weixin://wap/pay?appid=wxf5b5e87a6a0fde94&noncestr=123&package=123&prepayid=wx20141203201153d7bac0d2e10889028866&sign=6AF4B69CCC30926F85770F900D098D64×tamp=1417511263
生成DEEPLINK 的步骤:
步骤1:按URL 格式组装参数, $value 部分进行URL 编码,生成string1:
key1=Urlencode($value1)&key2=Urlencode($value2)
步骤2:对string1 作整体的Urlencode,生成string2:
String2=Urlencode(string1);
步骤3:拼接前缀,生成最终deeplink
举例如下:
String1: appid=wxf5b5e87a6a0fde94&noncestr=123&package=WAP&prepayid=wx201412101630480281750c890475924233&sign=53D411FB74FE0B0C79CC94F2AB0E2333×tamp=1417511263
再对整个string1 做一次URLEncode
string2:
appid%3Dwxf5b5e87a6a0fde94%26noncestr%3D123%26package%3DWAP%26prepayid%3Dwx201412101630480281750c890475924233%26sign%3D53D411FB74FE0B0C79CC94F2AB0E2
再加上协议头weixin://wap/pay? 得到最后的deeplink
weixin://wap/pay?appid%3Dwxf5b5e87a6a0fde94%26noncestr%3D123%26package%3DWAP%26prepayid%3Dwx201412101630480281750c890475924233%26sign%3D53D411FB74FE0B0C79CC94F2AB0E2333%26timestamp%3D1417511263
使用场景
当在非微信浏览器进行微信支付时,可在H5页面中放置按钮,如:
<a href="weixin://wap/pay?appid%3Dwxf5b5e87a6a0fde94%26noncestr%3D123%26package%3DWAP%26prepayid%3Dwx201412101630480281750c890475924233%26sign%3D53D411FB74FE0B0C79CC94F2AB0E2333%26timestamp%3D1417511263">立即支付</a>
用户通过点击按钮,唤起微信APP,进入支付界面。完成支付操作。
再如,在H5端判断非微信内部浏览时,直接重定向页面到deeplink
<script> location = "weixin://wap/pay?appid%3Dwxf5b5e87a6a0fde94%26noncestr%3D123%26package%3DWAP%26prepayid%3Dwx201412101630480281750c890475924233%26sign%3D53D411FB74FE0B0C79CC94F2AB0E2333%26timestamp%3D1417511263"; </script>
h5支付,在之前是有部分合作商户,可以使用该接口的,只是没有公开的文档。刚才我看了下,官方已经有文档了,
接口是否有变动,我没有去确认,你可以参考一下下面的地址,以微信文档为准。
https://pay.weixin.qq.com/wiki/doc/api/wap.php?chapter=15_1
http://wxpay.wxutil.com/mch/pay/h5.v2.php
场景demo请参考 http://wxpay.wxutil.com/mch/pay/h5.v2.php
以上是关于微信网页支付V3版js_api_call.php从订单跳转到微信支付提示缺少统一支付接口必填参数out_trade_no!的主要内容,如果未能解决你的问题,请参考以下文章