• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    小程序微信支付功能配置方法示例详解【基于thinkPHP】

    本文实例讲述了小程序微信支付功能配置方法。分享给大家供大家参考,具体如下:

    ★ 背景

    -  使用语言:PHP             # PHP世界上最好的语言 HaHahahaaha
    -  使用框架:ThinkPHP 3.2    # 版本有点低而已,没啥大碍
    -  测试工具:微信开发者工具    # 其实还挺好用
    -  整理时间:2018-07-07      # 有问题,就会一直更新

    tip: 【代码都是可转化的,即便是 ThinkPHP5.0+ 还是 Laravel框架,相对熟悉 PHP 代码语法的,进行转化也只是分分钟的事哦!】

    一、开发前的准备

    ①. 开发步骤

    ②. 阅读业务流程图

    ③. 小程序支付业务

    # 很多人这一步还没有完成,就咔咔咔的测试支付功能,显然是太急于求成了,比如:我!
    > 注意:
    > 1. 要开通微信支付功能(一般有两三天的审核时间)
    > 2. 本人开通后,选择的是 “绑定一个已有的微信支付商户号”,也就几分钟的事

    1 appid 必须为最后拉起收银台的小程序appid;
      # 这句话感觉不说还好,一说更容易引起多余的考虑(忽视)

    2 mch_id 为和 appid 成对绑定的支付商户号,收款资金会进入该商户号;
      # 此处我直接使用了所绑定的商户号中的 mch_id

    3 trade_type 请填写"JSAPI";
      # 可暂时忽略,因为我在代码中已进行了配置

    4 openid 为 appid 对应的用户标识,即使用 "wx.login" 接口获得的 openid
      # 可参考我的 payment/index.js 代码
      # 另一种情况,如果项目数据库中已保存了该用户的openid字段,可自行获取

    二、小程序端代码配置指导

    为了项目代码的 通用性/易管理性,我自行提取出了两个主要的公共文件 config.js util.js;

    ①. utils下 config.js 文件的使用

    > 注意一点:
    我的 "restUrl" 是对应于我的小程序 Api 接口路径的,举个例子:
    我的支付回调路径为 "https://www.mySercver.com/WxApi/Pay/notify"

    ②. utils下 util.js 文件的使用

    module.exports = {
     http_get: http_get,
     http_post: http_post,
     showToast: showToast,
    }
    
    

    ③. payment/index.js 文件的使用

    • 当然,我只是随便定的一个方法,实际使用的时候,其实就是以类似的形式,去调用后面的 wxPay()方法呗!

    三、服务端代码文件的使用指导

    声明:
    ***因为本人所提供的代码是基于 ThinkPHP3.2 框架编写整理的,所以对于使用过 ThinkPHPLaravel 框架的 PHPer 来说,简单明了,可根据自己的框架进行调整适配,所以,此处讲的可能不会太过琐碎 ***

    ①. 公共配置文件的数据补充

    return array(
     //'配置项'=>'配置值'
     'wxPay' => [
     'appid' => 'wx8787xxxxxxxxxxxxx',//TODO 此处使用的是小程序的 APPID
     'app_secret' => '0a7xxxxxxxxxxxxxxxxxxxxxxxxxxxxx622', //小程序的应用密钥
     'pay_mchid' => '13xxxxxx02', // 微信支付MCHID 商户收款账号
     'pay_apikey' => '1qaxxxxxxxxxxxxxxxxxxxxxhgf5', // 微信支付KEY
     'notify_url' => 'https://www.mySercver.com/WxApi/Pay/notify', // 微信支付成功后进行回调的链接
     'login_url' => "https://api.weixin.qq.com/sns/jscode2session?" .
      "appid=%ssecret=%sjs_code=%sgrant_type=authorization_code", // 微信使用code换取用户openid及session_key的url地址
     ],
    );

    注意一点:
    "notify_url" 作为支付回调的链接地址,要求配置成自己的服务器路径
     ;#同时注意协议的要求 “https”

    小程序官方要求:
     ;# 需要进行服务器域名的配置
     ;# 操作位置为 “小程序(微信公众平台)/设置/开发设置”中的“服务器域名->request 合法域名”

    ②. 公共方法 function.php 的补充

    ③. 核心处理文件 PayController.class.php

    此文件代码已做了详细处理,在你正确放置后,需要注意的几点如下:

    所以,在使用时完全可以替换掉所调用的 "prepayOrderDeal()" 方法  ;# 相信没多大歧义吧!
       #【在此处,我建议进行一下微信支付金额的校对】
       # 比如,通过订单号到你的项目数据库中,查询出需要支付的金额再与此比较,
       # 只有符合你的要求才可以进行微信支付的下单操作

    建议对应当前的订单号,保存微信支付返回的 prepay_id

    一定会涉及到自己业务的更新处理逻辑
        所以被调用的 "payNotifyOrderDeal()"方法中就可以改成你自己的业务逻辑了 (此处是可以自行补充的)

     注意,此处传入的 "$result" 参数中,我主要使用的就是其中的 "out_trade_no" 和 "total_fee"
      # 包含着微信支付的众多信息,可自行提取
     前者用于匹配我对该已支付订单的后续更新操作
      #【提示:我在使用时需要使用 "M" 进行字符串的截取才是我自己业务的实际订单编号哦!】;
     后者是实际微信消费的金额,可用于数据表的记录,以方便对账人员的校对工作

    补充:
    1. 为了方便后期 微信退款功能 的扩展,建议对应订单保存回调得到的 $result
    2. 可以将其转化为 json 字符串形式 $wx_pay_result_json = json_encode($result);, 然后存储在订单表中,比如:
    3. 如果,直接进行微信退款功能的实现,请完成后,参考:小程序 微信退款功能实现讲解 (PHP方式)

    四、使用及测试效果

    ①. 测试效果

    ②. 补充说明

    - 相信在实际配置使用的过程中一定会出现各种问题,我也是一点点的梳理排错过来的 - 前面的多是些配置问题的规范,如果到了最后的唤醒阶段,出现的问题要注意查看开发工具的控制台, - 其中会有比较详细的报错信息,然后再进行排查解决 - 有何问题,欢迎指摘,祝你配置顺利咯!

    ☆ 附录:

    ①. >>> Github 源码下载参考

    再做补充:如果,直接进行微信退款功能的实现,请完成后,参考:小程序 微信退款功能实现讲解 (PHP方式)

    ②. 总结

    - . 小程序要开通你的微信支付功能 # 需要审核时间的
    - . 审核通过后,紧接着进行"开通"操作 #可有两种开通方式进行选择的
    - . 前后端重要信息配置完毕
    - . 补充自己的特有逻辑处理操作 #pay/prepayOrderDeal()和 pay/payNotifyOrderDeal()
    - . 支付回调成功后,进行后续的订单(项目服务器)查询操作

    更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。

    希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

    您可能感兴趣的文章:
    • 微信小程序webview组件交互,内联h5页面并网页实现微信支付实现解析
    • 微信小程序调用微信支付接口的实现方法
    • 微信小程序与php 实现微信支付的简单实例
    • 微信小程序微信支付接入开发实例详解
    • PHP:微信小程序 微信支付服务端集成实例详解及源码下载
    • 微信小程序进行微信支付的步骤昂述
    • 微信小程序-详解微信登陆、微信支付、模板消息
    • 小程序调用微信支付的方法
    上一篇:php实现的顺序线性表示例
    下一篇:小程序微信退款功能实现方法详解【基于thinkPHP】
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    小程序微信支付功能配置方法示例详解【基于thinkPHP】 小,程序,微信,支付,功能,