Code前端首页关于Code前端联系我们

thinkPHP开发小部件中如何配置微信支付功能的示例详解

terry 2年前 (2023-09-23) 阅读数 75 #移动小程序
  • 最近一直在开发小部件。毕竟是一个商城项目的开发,最终涉及到的微信支付是必须的
  • 我在个人开发过程中也遇到了各种问题,这里我根据我的情况对代码做了详细的配置实际操作方便新手小程序快速操作

-苏语言:PHP # PHP世界上最好的语言哈哈哈哈
-使用框架:Thinkphp 3.2 #版本有点低,没问题
-测试工具:微信开发者工具#其实还不错
- 编译时间:2018-07-07 # 如果有任何问题,我们会持续更新

提示:【代码都是可以转换的,虽然是Laravel框架,但是对PHP代码比较熟悉的人语法可转换只需几分钟! 】

1.开发前的准备工作

①。开发阶段

  • 对公众号微信支付感兴趣的可以参考之前整理的一篇文章——微信公众平台开发教程④ThinkPHP框架下的微信支付图文功能详解❡❡。阅读业务流程图

    ③。小程序支付商店

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

    thinkPHP开发小程序微信支付功能配置方法示例详解

    1 appid必须是盒子里最后拉出的小部件的appid;
    # 感觉这句话不说还可以,但更容易引起不必要的深思熟虑(无知)

    2 mch_id 是appid绑定的支付商户号,收款进来的是商户号;
    # 这里我直接使用了绑定商户号中的mch_id

    3 trade_type 请填写“JSAPI”;
    # 你可以暂时忽略它,因为我在代码中配置了

    4 openid 是appid ie对应的用户id to me payment/ code
    # 另外一种情况,如果项目库中已经保存了用户的openid字段,可以自己获取

    2. 小程序代码配置指南

    • 这里配置的代码都在附录源码包中的wxMini-PayDemo\wxChat文件夹中

    为了让项目代码更加通用/易于管理,我自己提取了两个主要的公共文件;

    ①。 utils下的文件

    的使用>注:
    我的“休息”url”对应的是我小部件的API接口路径。例如:
    我的支付回调路径是“”

    ②。utils下文件的使用

    • 这个和公共同一文件夹下的文件
    • 其实它集成了三种主要方法,需要注意的是: 如果有东西要添加,记得在文件末尾“导出”
    module.exports = {
     http_get: http_get,
     http_post: http_post,
     showToast: showToast,
    }
    
    

    payment/ 使用文件

    • 当然,我只是随意定了一个方法,实际使用的时候,其实也是以类似的形式调用了下面的wxPay()方法。

    3.服务器代码文件使用说明

    • 这里的配置代码都在源码包中wxMini-PayDemo\Server-PHP文件夹中声明:
      ***因为我提供的代码是从框架编写和组织的,所以对于那些使用过ThinkPHP或❀ PHPer的人 很简单而且清晰,你可以调整到你自己的框架,所以我在这里说的可能不会太琐碎***

      ①。公共配置文件的数据添加

      • 这个是代码中的源码"wxMini-PayDemo\Server-PHP\Conf\",这个文件的代码比较少,我直接展示一下:
      return array(
       //'配置项'=>'配置值'
       'wxPay' => [
       'appid' => 'wx8787xxxxxxxxxxxxx',//TODO 此处使用的是小程序的 APPID
       'app_secret' => '0a7xxxxxxxxxxxxxxxxxxxxxxxxxxxxx622', //小程序的应用密钥
       'pay_mchid' => '13xxxxxx02', // 微信支付MCHID 商户收款账号
       'pay_apikey' => '1qaxxxxxxxxxxxxxxxxxxxxxhgf5', // 微信支付KEY
       'notify_url' => '', // 微信支付成功后进行回调的链接
       'login_url' => "" .
        "appid=%s&secret=%s&js_code=%s&grant_type=authorization_code", // 微信使用code换取用户openid及session_key的url地址
       ],
      );

      注意:
      “notify_url”作为支付回调的链接地址必须配置为自己的服务器路径
      ;#还要注意协议要求“https”

      widget:
      ;# 必须配置服务器域名
      ;# 操作位置为小程序(微信公众平台)/设置/开发设置中的“服务器域名->请求合法域名”

      thinkPHP开发小程序微信支付功能配置方法示例详解

      .公共方法的补充

      .核心处理文件

      此文件代码详细处理完成,正确放置后,请注意以下几点:

      这样你就可以完全替换使用den时调用的“prepayOrderDeal()”方法;#我相信这不是什么歧义!
      #这里建议你校对一下,微信支付金额】
      #例如,通过订单号进入您的项目数据库,查询需要支付的金额,与此进行比较,
      #只有符合您要求的订单才可以使用微信支付

      建议匹配当前订单号码并保存微信支付返回的prepay_id

      thinkPHP开发小程序微信支付功能配置方法示例详解

      • (4)。而在“notify()”这个回调方法中

      肯定会涉及到你自己业务的更新处理逻辑
      因此,所谓的“payNotifyOrderDeal()”方法可以改为你自己的业务逻辑(这里可以自己添加)

      thinkPHP开发小程序微信支付功能配置方法示例详解

      注意,这里介绍的“$result”参数中,我主要使用了“out_trade_no”和“total_fee”
      # 包含了很多微信支付的信息,大家可以自行提取
      之前用它来配合我后续已付款订单更新
      #[提示:我使用时需要用“M”截取字符串,这是我自己公司的实际订单号! 】;
      后者是微信实际消费金额,可以记录在数据表中,方便投票工作人员的校对工作

      附录:

      1. 方便后期微信退款功能
建议将对应订单存储回调中得到的$result

  • 转换为json♼形式json♼$ y_result_json = json_encode($result) ;,然后存入订单表中,例如:
    thinkPHP开发小程序微信支付功能配置方法示例详解
  • 如果想直接实现微信退款功能,请参见:小程序中实现微信退款功能说明(PHP方式)
  • IV,使用及测试效果

    ①。​​测试效果

    • 在我的小程序项目中,唤醒效果(在开发工具中)如下:
      thinkPHP开发小程序微信支付功能配置方法示例详解
    • 如果你在自己的手机上测试,在确保你的域名名字配置正确,觉醒模式普通:
      -thinkPHP开发小程序微信支付功能配置方法示例详解

    ②。补充说明

    -我相信在实际配置和使用过程中肯定会出现各种问题,我也是。一些故障排除 - 以上主要是配置问题的规范。如果最后唤醒阶段出现问题,请关注开发者工具控制台。 - 会有更详细的错误信息,然后进行故障排除和解决 - 如果有问题,请报告。祝您配置顺利!

    ☆ 附录:

    补充补充:如果您想直接实现微信退款功能,请参考:在小程序中实现微信退款功能说明(❑方法)❑❑。摘要

    -。要在小部件中激活微信支付功能#,需要审核时间
    -。审核通过后,进行“激活”操作#有两种激活方式可供选择
    - 。前端和后端的重要信息已经配置完毕
    - 。补充自己独特的逻辑处理操作#pay/prepayOrderDeal()和pay/payNotifyOrderDeal()
    -。支付召回成功后,进行后续的订单(项目服务器)查询操作

    希望本文介绍的内容对基于ThinkPHP框架的PHP编程有所帮助。

    版权声明

    本文仅代表作者观点,不代表Code前端网立场。
    本文系作者Code前端网发表,如需转载,请注明页面地址。

    发表评论:

    ◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

    热门