微信支付服务商-服务商小程序支付脱坑

微信支付服务商-服务商小程序支付脱坑,第1张

时间:2018年11月13号

最近, 公司抽风, 项目中需要为我们小程序中"服务的商户"开通微信支付功能.

与同事们研究决定,还是申请为微信服务商比较靠谱~

但是~ 不靠谱的事来了. 废话不多说. 一步步的来.

第一步: 申请为服务商 ( 有重点!!!!!!!统一下单坑点之一 )

               先去 公众平台 申请一个 服务号(只有服务号才可以支付和申请商户号,必须是认证过的.300元)

                注意:保存好appId 与 appSecret  统一下单中的appId指的是这个!!!!!!!!!

               申请完成后, 点击微信支付, 成为服务商,上传资料. 审核.300元

               申请页面如下:(这个是已经申请好了的)

               在这里, 说明一下. 微信支付服务商是从已经认证过的服务号里申请的, 默认与该服务号绑定 .微信乱七八糟的名字很多.这里的服务号指公众号.

                申请小程序.交纳300元认证费. 注意:此次说明小程序主体信息与微信支付服务商主体信息一致(如果不一致请看官方坑爹文档)

                申请开放平台~ 再来300元~ 在开放平台把公众号与小程序关联起来.

第二步:微信公众号服务号、小程序与微信支付服务商的账号准备好之后, 接下来配置微信支付服务商账号.

                登录微信商户平台

                进行配置   账户中心->API安全->设置秘钥

秘钥这是个大坑~~~留着派启.继续往下走.遇到了再回来

接下来是  服务商功能->特约商户申请

商户申掘芦请审批成功之后 (此时微信会给你邮箱发送特约商户的商户号和密码,与一般支付的那种商户号一样,可以登录)  

特约商户管理->配置(还在服务商账号下)

这里的支付授权目录必须要正确. (别忘记了微信支付服务商的支付目录以及回调地址在服务商账户里设置!这里的回调是地址!是地址!是地址!和目录是有区别的!!!)

特约商户APPID配置.我们填写之前申请好的小程序appID.否则无法取到尘散如官方所为的sub_openId

第三步: 统一下单

根据官方的文档  https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_sl_api.php?chapter=9_1

去发起统一下单. 

然后就是各种的报错!

商户ID与APPID不匹配

sub_openid  and sub_appid not match

签名失败

等错误.

首先~ 你得保证,你的签名没有问题. 顺序正确,没有传入空值,不存在大小写错误,在签名验证工具中可以通过.如果还是报错签名失败~回到第二步, 服务商设置秘钥的那里. 来来回回的换吧~ 2到3次 基本就ok了

在这里, 对这个坑爹的参数表.做一下说明(写这文档的人~~~我就!@#@$%@#@!##$%你了!)

看这文档写的, openId 我是传还是不传?! 我去年买了个表的.不会说话嘛!

还有这个网页授权获取用户信息,很有歧义好嘛!

服务商模式下, 小程序支付.openId 不传! 不传! 不传!  签名的时候直接省略这个参数!

接下来说sub_openid.  坑啊~~~

这里尼玛就不是什么sub_openId  就尼玛是openId啊!!!!!!!! 哪来的?!  wx.login 获得code 再通过code 换来的.

有人就高兴了. wx.login拿的openId啊? 我早就获得了~  错!!!!! 不是这个!!! 虽然方法一样! 内容一样! 但是他给的确实是有问题的!这一步的登录不能省!继续往下看.!(去年买了个大表的! 文档你写清楚啊! 既然目的都是OpenId 为什么要取两次!你TM得告诉我这里不一样啊!)

对于openId的解释, 微信官方是说, 一个用户与多个小程序有多个openId,用户与一个小程序的openId唯一.

然后,经过测试:

wx.login({

      success: function (login_success) {

        wx.getUserInfo({

          lang: 'zh_CN',

          success: function (getUserInfo_success) {

            var code = login_success.code

            var encryptedData = getUserInfo_success.encryptedData

            var iv = getUserInfo_success.iv

            //在这里去换openId  (之前我们项目中保存过一次小程序的openId  这时候再去取的时候, 变了~~ )

             }

       })

     })

至此  统一下单 算是OK了. 接下来. 去排坑~ 调起支付~ 正在研究中~ 后期补全

这要根据小程序而定,例如百度小程序可以对接:商家需要有自己的智能小程序,需要接入百度钱包、微信支付、支付宝等第三方支付,完成支付闭环。

第三方支付平台提供一系列的应用接口程序,将多种yhk支付方式整合到一个界面上,负责交易结算中与银行的对接,使网上购物更加快捷、便利。第三方支付整合了后端各含歼大银行的不同支付接口,对外提供统一的接入平台,方便商户接入。

商户已有小程序,在小程序上展示商品或服务,用户在小程序内下单或享受服务使用支付时,商户发起本服务通过服务商下单,由服务商呼起微信支付并完成支付。在此支付过程中,作为具有一定开发能力的普通服务商,协助小程序上的商家完成入驻、支付接入、技术开发及其他相关工作(如分账、分润、退款等)。小程序商户接入普通服务商,有两种接入方式:由服灶老亏务商新申请特约商户方式(以下简称特约商户隐神)以及绑定已有微信普通商户方式(以下简称普通商户)。两种方式下,服务商都是作为商家与微信支付之间的连接者,服务商本身不经手资金,支付成功后资金直接进入特约商户商户号,无论哪种接入方式,当前微信支付的普通服务商仅面向通过微信认证的企业类型服务号开放申请,服务商主体需与小程序主体一致。需要通过小程序的APPID获取微信支付的能力。

首先表达一下,自己是一个喜欢记笔记,但是不喜欢写技术博文的人,但是在开发服务模式过程中走的一些弯路想分享出来,希望能帮到需要的朋友开发时,少采坑。逗高茄

1.微信支付分为两种模式:普通模式、服务模式。

普通模式:通俗的讲就是,一个单位申请了微信支付商户和小程序或公众号,小程序或公众号支付关联了该单位的商户进行支付,最终钱打到自己公司账户上。这是直连。

服务模式山察:A单位注册了微信支付服务商账户(微信支付商户特殊账号),A单位为B、C、D等公司创建微信支付商户号,来为他们提供微信支付能力。B、C、D不具备开发能力A单位代劳。B、C、D通过自己申请的小程序应用,或者是直接使用服务商申请的小程序发起支付后,最终钱打到B、C、D对应的账户上,A单位不做资金流转。

【服务念乎商模式支付】总结:

统一下单接口:

1.appid 指的是,服务商对应的微信公众号(不是小程序是公众号,普通模式这个是小程序ID) .

2.mch_id :服务商对应的微信商户后台账号ID.

3.sub_appid: 可以是服务商的APPID、也可以是子商户的APPID

4.sub_mch_id: 子商户账号ID. (需要注意的是,.sub_mch_id 与 sub_appid 成对出现,如果接口报两个不匹配,肯定是在后台没做关联,需要服务商登录商户后台,服务商功能-特约商户管理-选择管理列表中对应的子商户的 “配置”按钮,在 特约商户APPID配置 中添加 小程序ID,建立关联)

服务商通过API,退款子商户的授权(相关错误提示:特约子商户商户号未授权服务商的产品权限)

1.服务商-产品中心-特约商户授权产品-已开通,找到可授权的产品及方案列表。

进入服务商API退款-特约商户列表,“发起邀请”。

2.子商户登录-产品中心-我授权的产品,点击“授权”。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8229544.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存