美文网首页
微信公众号支付

微信公众号支付

作者: 半打真心 | 来源:发表于2018-09-26 20:29 被阅读0次
    青年普朗克

        微信支付的文档和SDK容易带新人入坑,作为坑中的过来人写点爬坑经验吧。

        之前做过很多次公众号支付,但是基本都是用的封装好的代码,今天用的虽然也是鹅厂给你封装好的SDK,但是二次封装也是封装。我们一步一步来做一遍公众号支付的开发。

    (一)下载SDK

        https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1呐,就是这里。值得说的是我这时候下的sdk跟以前的版本不一样,似乎鹅厂工程师为了攀附‘高大上’用了接口的方式重写了一遍,但其实更不好用了好吧!!

        这个SDK要根据自己的需要重新整合一下,如果只是为了公众号支付我建议保留的文件是这些:lib文件下的所有文件,log.php我暂时不知道干嘛的,就省去了。然后就保留example里的WxPay.config.php和WxPay.JsApiPay.php这两个文件。

    (二)商户配置

        首先你得有公众号,而且公众号 申请了开发者模式,也就是有appid和appsecret这两个参数,同时白名单呀、js安全域名、网页授权域名什么的也要配置好,否则到时候是用不了的。然后就是申请微信支付的商户号和秘钥,再进行支付授权目录设置。这些一大串东西设置好了上面的代码就能用了!

    (三)重写SDK

        虽然说是重写,其实也就是稍微修改一下。我们在TP5的环境下,把(一)中的放到一个自定义的文件夹下面,我起名字叫wxpay。

        然后把wxpay文件夹放到vendor目录下。我在控制器里新加了一个wechat模块,写了一个 统一下单的控制器叫Unifiedorder.php。

        我们主要做的就是根据dmeo中的jsapi.php进行‘改装’。php部分如下



    我们把它改装成tp5的类


    注意这里的PAY_PATH是在public下的index.php里定义的

    而且需要注意的是,引入这个常量之后,所有的引入路径都要加上这个常量

        另外注意的是,新建对象的时候tp5要加上反斜杠\,这个一定要记得!!!

        接下来就是写配置,也就是WxPay.Config.php里GetAppId、GetMerchantId、GetKey、GetAppSecret里的参数,它的这种方式是写死的。这是这个sdk非常失败的一点,我们的微信配置一般都是存在数据库或者文件里,我们可以改装动态读取数据配置,这里就不改了,因为这样也能用。

        然后就是GetSSLCertPath函数里要写上证书的路径。接着在WxPay.JsApiPay.php中GetOpenid方法里的回调地址要按实际情况改了,这个回调地址一定要是网页登录授权的域名下的,否则会出错。

        需要注意的是公众号id和商户号id必须是对应的,不能用a商家的公众和和b商家的商户号对应,它两也配不上。

        最后Unifiedorder.php里写上具体的订单信息和金额数量,把前端复制到对应的渲染页面里就可以用了。


    到这里基本的支付流程就跑通了,然后就是调试回调地址里的接口,这个暂时不说。

    相关文章

      网友评论

          本文标题:微信公众号支付

          本文链接:https://www.haomeiwen.com/subject/oadjoftx.html