028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

如何在小程序中实现一个微信支付功能-创新互联

本篇文章为大家展示了如何在小程序中实现一个微信支付功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

成都创新互联公司于2013年开始,是专业互联网技术服务公司,拥有项目成都做网站、成都网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元漾濞做网站,已为上家服务,为漾濞各地企业和个人服务,联系电话:18982081108

一、开发前的准备


①. 开发步骤

②. 阅读业务流程图

③. 小程序支付业务

# 很多人这一步还没有完成,就咔咔咔的测试支付功能,显然是太急于求成了,比如:我!
> 注意:
> 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=%s&secret=%s&js_code=%s&grant_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);, 然后存储在订单表中,比如:
     如何在小程序中实现一个微信支付功能


上述内容就是如何在小程序中实现一个微信支付功能,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。


网站标题:如何在小程序中实现一个微信支付功能-创新互联
浏览路径:http://www.tsicrk.com/article/cdccdh.html

其他资讯

让你的专属顾问为你服务

2.8628s