所以我想写下来记录,以后遇到微信相关API调用的时候,就不会花这么久的时间了。 技术场景:微信公众号支付 本文不会详细讲解微信公众号支付的具体流程,因为官网文档已经说得很详细,至少比我写的详细。...如图: [blob.jpg] 错误信息: {"err_desc":"调用支付JSAP缺少参数appId","err_msg":"get_brand_wcpay_request:fail","err_code....imwork.net/school/ 但是我设置了正确的支付授权目录之后,还是提示上面那个问题,缺少参数appId。...chapter=7_7&index=6 微信支付提示 调用支付JSAPI缺少参数:appId :https://bbs.csdn.net/topics/391028145 微信支付JSAPI支付授权目录陷阱...:https://blog.csdn.net/a7442358/article/details/85766204 解决我错误的启发文章:微信公众号支付JSAPI,提示:2支付缺少参数:appId 原文:
这种报错每次都很折磨人,因为不管是什么原因都会报这个 “...缺少参数 total_fee...”...错误,总结前期的经验有以下几点: (1)AppId和AppSecret错误或不匹配 (2)未在支付平台里关联你所需要的AppId(建议关联服务号) (3)订单号不符合要求(有可能重复,我比较懒,每次生成一个...32位的处理过的GUID) (4)支付金额不符合要求 (这个一般是最不可能发生的调试错误) (5)预支付ID有问题 (6)创建微信订单传递 BODY 字段,长度不能超过128位字节,而且UTF-8编码一个汉字占三个字节...创建微信订单传递 BODY 字段,需要传递全角字符(目前是这样解决),否则会提示不正确的UTF-8传参 终于调试通过了的程序,最近又见该错误,通过排查,返回的JSON结果有 “收款功能已被限制” 的字样,查看微信支付商户助手
前言 本篇为JS交互微信系列篇的第四篇微信JSAPI支付,记录在微信内置浏览器内用调用微信支付过程。...一、 介绍 JSAPI支付是用户在微信中打开商户的H5页面,商户在H5页面通过调用微信支付提供的JSAPI接口调起微信支付模块完成支付。...交互微信 上个步骤拿到需要交互微信的参数后,就开始调用微信的支付接口了,如下: // 微信支付 WeixinJSBridge.invoke('getBrandWCPayRequest', { appId...APPID不存在 参数中缺少APPID 请检查APPID是否正确 MCHIDNOTEXIST MCHID不存在 参数中缺少MCHID 请检查MCHID是否正确 APPIDMCHIDNOT_MATCH...appid和mch_id不匹配 appid和mch_id不匹配 请确认appid和mch_id是否匹配 LACK_PARAMS 缺少参数 缺少必要的请求参数 请检查参数是否齐全 OUTTRADENO_USED
secert(仅JSAPI支付的时候需要配置) */ public const string APPID = "你的微信公众号APPID"; public...inputObj.IsSet("body")) { throw new WxPayException("缺少统一支付接口必填参数body!")...inputObj.IsSet("openid")) { throw new WxPayException("统一支付接口中,缺少必填参数openid...trade_type为JSAPI时,openid为必填参数!")...trade_type为JSAPI时,product_id为必填参数!")
在开发之中经常会使用到支付的功能,现在常用的两种支付方式是支付宝和微信。相对而言,支付宝的文档较为健全,并且配置和调用方式方式比较简单,这里就不过多的描述。...以thinkphp框架下进行调用为例(以下案例包括移动端以及公众号支付以及公众号获取openid等功能)。以下代码为了能够更容易理解,将一些类中的方法提取了出来,写的有点乱,请见谅。...,又有公众号支付,最好是注释类中代码,并自己写入 $resign_result=$wxpay_result- SetSign(); //处理返回数据 $result=array( 'appid'= $order_result...GET['openId']; if (empty($orderId)||empty($openId)) { $arr=array( 'resultCode'= '66', 'resultDesc'= '缺少参数...= new WxPayJsApiPay(); $jsapi- SetAppid($order_result["appid"]); $timeStamp = time(); $jsapi- SetTimeStamp
本文实例为大家分享了PHP实现微信申请退款的具体代码,供大家参考,具体内容如下 微信公众号开发文档链接地址 前面讲了怎么实现微信支付,详见博文:PHP实现微信支付(jsapi支付)流程?...和ThinkPHP中实现微信支付(jsapi支付)流程。由于业务需求,还需要有微信退款,经过研究和摸索,也终于搞定了。 前期准备: 当然是搞定了微信支付,不然怎么退款,这次还是使用官方的demo。...$inputObj- IsTotal_feeSet()){ throw new WxPayException("退款申请接口中,缺少必填参数total_fee!")...$inputObj- IsRefund_feeSet()){ throw new WxPayException("退款申请接口中,缺少必填参数refund_fee!")...,还有一些必须参数SDK已经帮我们补齐了,我将这个办法重新封装一下,便于在项目中调用: /** * 微信退款 * @param string $order_id 订单ID
本文实例为大家分享了PHP实现微信申请退款的具体代码,供大家参考,具体内容如下 微信公众号开发文档链接地址 前面讲了怎么实现微信支付,详见博文:PHP实现微信支付(jsapi支付)流程 和ThinkPHP...中实现微信支付(jsapi支付)流程。...$inputObj- IsTotal_feeSet()){ throw new WxPayException("退款申请接口中,缺少必填参数total_fee!")...$inputObj- IsRefund_feeSet()){ throw new WxPayException("退款申请接口中,缺少必填参数refund_fee!")...,还有一些必须参数SDK已经帮我们补齐了,我将这个方法重新封装一下,便于在项目中调用: /** * 微信退款 * @param string $order_id 订单ID
(需要配置Native支付回调链接,支付完成后,微信服务器会调用这个链接,并传入参数。)...和微信浏览器之内直接支付(需要配置JSAPI支付授权目录,只有这个域名下的链接才能调用支付接口)。两种支付都需要调用【统一下单接口】。所以本节针对统一下单接口来分别讲解如何实现这两种支付方法。...一、统一下单接口 通过调用下面的统一下单接口,就可以实现微信支付功能。...https://api.mch.weixin.qq.com/pay/unifiedorder 统一下单接口需要传入的参数包括如下内容(以下为必填项),并且参数要为xml格式: appid:公众号id body...然后将这个值传递给前端,再由前端调用jsapi完成支付,示例代码如下所示: 1 document.querySelector(".pay").onclick = function(){ 2
开通微信支付后,需要在微信支付后台【产品中心】=>【开发配置】中配置【JSAPI支付授权目录】和【Native支付回调链接】,如下图所示: ?...微信支付可以分为两种情况,微信浏览器之外的扫码支付(需要配置Native支付回调链接,支付完成后,微信服务器会调用这个链接,并传入参数。)...和微信浏览器之内直接支付(需要配置JSAPI支付授权目录,只有这个域名下的链接才能调用支付接口)。两种支付都需要调用【统一下单接口】。所以本节针对统一下单接口来分别讲解如何实现这两种支付方法。...https://api.mch.weixin.qq.com/pay/unifiedorder 统一下单接口需要传入的参数包括如下内容(以下为必填项),并且参数要为xml格式: appid:公众号id body...然后将这个值传递给前端,再由前端调用jsapi完成支付,示例代码如下所示: 1 document.querySelector(".pay").onclick = function(){ 2
请求生成订单,生成商户订单,获取用于openID,统一下单获取prepay_id参数,生成JSAPI页面调用的支付参数并签名。...一、请求生成订单 这里下单跟扫码支付调用的API是一样的,只是参数有所不同。...1)交易类型trade_type值必须为JSAPI(JSAPI--公众号支付、NATIVE--原生扫码支付、APP--app支付,统一下单接口trade_type的传参可参考这里 MICROPAY--刷卡支付...,刷卡支付有单独的支付接口,不调用统一下单接口) 2)trade_type=JSAPI时(即公众号支付)用户标识openId是必填参数,这里就涉及到获取的问题了,有些文章说不获取也可以下单。...CUT"); String totalFee = split[0]; String orderNo = split[1]; //获取code 这个在微信支付调用时会自动加上这个参数
首先是一些必要的微信参数:appid、appsecret、mchid、key,双向证书(nodejs开发使用的证书是以.p12为后缀的文件)。...统一下单 我们先来做的是统一下单这个接口,基本流程是由客户端发起请求,服务器接到请求后调用微信统一下单接口,生成订单,然后服务器将微信服务器返回的信息返回给客户端,客户端通过这些信息来拉起微信支付。...调用微信支付API的机器IP * textInfo:商品描述交易字段格式根据不同的应用场景按照以下格式:腾讯充值中心-QQ会员充值 * total_fee:订单总金额,单位为分 * trade_type...:支付类型,JSAPI--JSAPI支付(或小程序支付)、NATIVE--Native支付、APP--app支付,MWEB--H5支付,不同trade_type决定了调起支付的方式,请根据支付产品正确上传...appid){ callback("缺少应用ID"); return } if(!
totalAmount : 0.01); //手机网站支付,调用支付宝(网页类支付接口),这里没有写(系统调用类支付接口) result = PayUtils.alipayh5...H5支付,非微信浏览器,微信不允许调用支付宝的支付接口 * @return */ @Bean public AliPayH5Bean...,微信后台系统返回链接参数code_url, // 商户后台系统将code_url值生成二维码图片,用户使用微信客户端扫码后发起支付。...说明:手机网站支付alipay.trade.wap.pay: 对于页面跳转类API,SDK不会也无法像系统调用类API一样自动请求支付宝并获得结果,...ip,Native支付填调用微信支付API的机器IP。
appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code 参数说明 参数 是否必须 说明 appid 是 应用唯一标识,在微信开放平台提交应用审核通过后获得...和网页支付提交用户端ip,Native支付填调用微信支付API的机器IP。...交易类型 trade_type 是 String(16) JSAPI JSAPI 公众号支付NATIVE 扫码支付APP APP支付说明详见参数规定 商品ID product_id 否 String(32...trade_type=JSAPI时(即公众号支付),此参数必传,此参数为微信用户在商户对应appid下的唯一标识。... 支付测试 JSAPI支付测试 10000100 <
,如果是微信内的话,使用的是 jsapi 支付 所以一般用户进入页面的第一件事,就是检测用户使用的环境是微信浏览器还是其他浏览器 前端传一些用户挑选商品后的参数,并请求后端处理接口,后端应该将一些参数进行入库...,顺便请求 H5 支付接口 接口应该返回跳转链接 h5_url,如果你想用户付款之后到结果页面,需要添加 redirect_url 参数,这个参数一定要用 encodeURIComponent 进行处理...支付 点击 产品中心 ▶ 我的产品 ▶ JSAPI支付 ▶ 点击开通 开通后,选择 开发配置 ▶ JSAPI支付域名 申请添加 JSAPI支付域名 关于申请支付域名的流程基本都差不多要求也差不多,看上面的...H5支付域名 申请就行,这里就不过多赘述了 图片 JSAPI 支付流程 JSAPI支付是在微信内的浏览器使用的,如果用户是在微信外打开的话,需要提醒去微信内打开页面 JSAPI支付需要使用微信内置的...WeixinJSBridge.invoke 方法 由于 JSAPI 调用支付需要用到用户的 openid,所以需要想方设法在用户调用 JSAPI 之前获取到 openid,点击查看获取 openid
对于大多数做支付系统设计的同学来说,对于支付渠道提供的调用方式都不陌生,相信大家对这些支付渠道的调用方式也了如指掌。...一、支付渠道调用方式 通常来说,传统的支付渠道调用方式分为以下几种:API直接调用、网关跳转支付、移动端APP的SDK跳转支付、移动端APP直接跳转支付、二维码主被扫支付和JSAPI支付。...2.1产品流程 微信公众号JSAPI支付,是一种典型的在线支付模式,先让商户系统从后台下单,获得参数后通过前端页面直接向微信支付系统发起支付请求,在这个过程中完成客户的身份授权以及密码输入,完成支付。...另外通过JSAPI方式,可以让商户支付页面完成自行定制,整个支付过程看不到微信提供的任何网关页面,而是直接调用支付控件,让整个支付过程和体验更加流畅。...appid必须预先配置和绑定 3.使用微信支付的公众号主体与开通微信支付的商户主体必须一致 4.对于未登记的网站还会有安全提示,请勿在页面中输入账号密码等敏感信息 以上几点有效地防止了钓鱼页面和其他中间人页面劫持
总结:开发微信公众号,接入微信支付功能,附上微信支付API接口的实现逻辑图以及相关代码。JSAPI支付:是指在微信内置浏览器内调用微信支付模块支付,比如可用于微信公众号内的微信商城之类的。...首先得在微信公众号的公众号设置里,把微信支付的授权目录填上 ? 然后你还得在商户号里,开通微信JSAPI支付的功能 ? 然后这里的授权目录也得填上 ? 然后按照微信文档的时序图,大概分3步 ?...Jsapi.php代码 ? <?...支付DEMO * Class Index * @package app\index\controller */ class Jsapi extends HomeBase { /**...$this->assign('openid',$openid); return $this->fetch(); } /** * 下单获取支付参数
由于获取jsapi_ticket的api调用次数非常有限,频繁刷新jsapi_ticket会导致api调用受限,影响自身业务,开发者必须在自己的服务全局缓存jsapi_ticket 。...后面的GET参数部分,但不包括’#’hash后面的部分。 确认 config 中的 appid 与用来获取 jsapi_ticket 的 appid 一致。...the permission value is offline verifying这个错误是因为config没有正确执行,或者是调用的JSAPI没有传入config的jsApiList参数中。...如果是在页面加载好时就调用了JSAPI,则必须写在wx.ready的回调中。 确认config的jsApiList参数包含了这个JSAPI。...permission denied该公众号没有权限使用这个JSAPI,或者是调用的JSAPI没有传入config的jsApiList参数中(部分接口需要认证之后才能使用)。
关键之一:如何让患者用手机打开我们的H5网页调用微信支付?中间走了一些弯路,还是在猫老师的技术支持下,完成了相应的功能。在此感谢猫老师的热情帮助。 一、前期的准备工作。...支付权限:JS_API支付授权目录:把我们发起调用支付的页面路径添加一下。 特约商户Appid配置:把我们的公众号appid添加到这里。 以上一个也不能少。...2、appid为调用公众号或小程序的微信appid 3、redirect_uri:code回调地址,我这里不加参数。如果加参数,则需urlencode处理。...(3)通过银联支付接口,取得拉起微信支付参数。 通过猫框另外提供的银联支付接口unionpay_Wxpay,直接取得微信支付参数。 原理说了这么多,是不是有点晕了。其实很简单的。...支付成功后,跳到第三页面。等待问诊页面。 3、第三页面,如下图: ? 这样,我们最简单的一个h5网页下调用微信支付就成功了!
从前端的角度来梳理微信支付(小程序、H5、JSAPI)的流程 因业务需要,开发微信支付功能,涉及三种支付方式: JSAPI 支付:微信内网页支付,需要开通微信服务号 小程序支付:在小程序中支付,需要开通小程序...和orderId请求后端接口,获取支付所需数据 获取支付所需数据之后,小程序端调用wx.requestPayment()接口,直接调用起支付页面 判断是否支付成功后的逻辑 伪代码 async function...$wx.config({ debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过...所需的参数 [wxpay7.png] 参考 微信支付-JSAPI 微信公众号-网页授权 JS-SDK 开发文档 总结 整个流程走下来,给我的体验是:小程序支付最方面(因为配置少),其次是 H5,JSAPI...开发过程中的一些参数是经常用到的,如 appid、openid、orderId 支付流程大径相同,先获取到用户的 openid,知道你是谁,然后统一下单拿到 orderId 再去处理不同平台的支付方式
后台对接微信支付中所需要做的一些流程 小程序中调用微信支付 wx.requestPayment({ timeStamp : '', // 时间戳,必填(后台传回) nonceStr :...'', // 随机字符串,必填(后台传回) package : '', // 统一下单接口返回的 prepay_id 参数值,必填(后台传回) signType : 'MD5', //...小程序得到支付的参数,发起支付 微信支付及其后台处理,请求我们后台预留的回调接口 后台回调接口在接收到回调请求时,对订单进行后续处理 $arr = [ 'appid' => $appid,...out_trade_no, 'spbill_create_ip' => $spbill_create_ip, 'total_fee' => $total_fee, 'trade_type' => 'JSAPI...=$openid&out_trade_no=$out_trade_no&spbill_create=$spbill_create&total_fee=$total_fee&trade_type=JSAPI
领取专属 10元无门槛券
手把手带您无忧上云