当前位置:首页 > 文章 > 正文内容

记录--接入微信支付的全套姿势

廖万里3年前 (2022-10-27)文章36810

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助

记录--接入微信支付的全套姿势

微信支付介绍

微信公众号程序或微信小程序项目中基本都要有微信支付。支付场景基本就是点击支付,然后手机底部拉起输入微信支付密码弹窗,密码输入正确后,支付完成。但是无论是微信小程序或微信公众号程序都是在后端调用微信api接口进行统一下单,将接口返回数据回传前端拉起支付操作,然后异步通知支付结果的这样一个流程。

微信公众号程序接入支付

如果是微信公众号程序接入微信支付,需要登录微信公众号,点击广告与服务 – 微信支付关联一下注册好的微信商户平台(此处一般都是客户自己完成,不介绍。也就是说只有关联过的微信商户才能在公众号中拉起支付。

记录--接入微信支付的全套姿势

 然后点击设置与开发 – 基本配置 ,拿到公众号的appid和appsecret(开发密钥)。

记录--接入微信支付的全套姿势

微信小程序接入支付

如果是微信小程序程序接入微信支付,登录微信小程序,点击功能 – 微信支付,关联一下注册好的微信商户平台(此处一般都是客户自己完成,不介绍。也就是说只有关联过的微信商户才能在小程序中拉起支付。

记录--接入微信支付的全套姿势

 然后点击开发 – 开发管理 – 开发设置,拿到小程序的appid和appsecret(开发密钥)。

记录--接入微信支付的全套姿势

微信商户平台配置

第一步

登录微信商户平台,点击账户中心 – API安全,设置一下证书和两个密钥(此处两个密钥设置为相同的)。相关配置操作根据提示一步一步走流程就行的。【一般要用到操作密码、多个短信验证码】

记录--接入微信支付的全套姿势

 配置成功后,要拿到3个证书文件和一个自己输入进去的密钥,务必保存并记录下来。程序中会用到。拿到证书文件如下:

记录--接入微信支付的全套姿势

第二步

点击产品中心 – 我的产品 ,点击申请JSAPI支付。

记录--接入微信支付的全套姿势

 开发配置中需要填写支付授权目录,此处填写后端服务器域名即可。

 记录--接入微信支付的全套姿势

后端程序

后端开发由于编程语言不同,此处以PHP开发为例。介绍一下统一下单接口和退款接口的调用;首先要下载一下官方提供的SDK引入项目中。然后将之前获取到的证书文件也放入程序目录中。由于各个版本SDK不同,此处只记录自己用的配置流程(不喜勿喷)。

记录--接入微信支付的全套姿势

如果需要我这版SDK,QQ:321824916

统一下单接口

官方有接口文档,具体接口参数不做介绍,自己看吧。另外由于SDK版本不同,不保证下面的代码可以无缝衔接其他SDK包直接使用。下面上代码;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//引入扩展
import('JsPayWechat.lib.WxPayApi''vendor');
import('JsPayWechat.example.WxPayJsApiPay''vendor');
$tools = new \JsApiPay();
$input = new \WxPayUnifiedOrder();
//设置支付描述
$input->SetBody("********");
//内部订单号(我们系统中自己生成的订单号)
$input->SetOut_trade_no($tid);
//订单金额,由于单位是分,而我的是元,故乘了100
$price = $price * 100;
$input->SetTotal_fee("" . ($price));
$input->SetTime_start(date("YmdHis"));
$input->SetTime_expire(date("YmdHis", time() + 600));
//支付结果通知地址,写支付结果逻辑的访问链接
$notifyUrl = zUrl('Other/dealLevelOrder');
$input->SetNotify_url($notifyUrl);
$input->SetTrade_type("JSAPI");
//拉起支付用户的open_id
$input->SetOpenid($open_id);
$order = \WxPayApi::unifiedOrder($input);
$jsApiParameters = $tools->GetJsApiParameters($order);
$jsApiParameters = json_decode($jsApiParameters, true);
// 将$jsApiParameters内容返回前端页面即可。

微信公众号拉起支付前端处理

1
2
3
4
5
6
7
8
9
10
11
12
13
//接口返回的下单成功数据
var jsApiParameters = result.jsApiParameters;
//跳转微信支付页面
wx.chooseWXPay({
    timestamp: jsApiParameters.timeStamp,
    nonceStr: jsApiParameters.nonceStr,
    package: jsApiParameters.package,
    signType: jsApiParameters.signType,
    paySign: jsApiParameters.paySign,
    success: function (res) {
        //微信支付成功回调
    }
});

微信小程序拉起支付前端处理

1
2
3
4
5
6
7
8
9
10
11
12
13
//接口返回的下单成功数据
let resultdata = res.data.jsApiParameters;
//拉起微信支付
wx.requestPayment({ //成功之后,调用小程序微信支付
    'timeStamp': resultdata.timeStamp,
    'nonceStr': resultdata.nonceStr,
    'package': resultdata.package,
    'signType''MD5',
    'paySign': resultdata.paySign,
    success: function (res) {
        //支付成功的回调
    },
})

退款接口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//拉起微信退款申请
$re_tid = 'RE' . time() . Zrand(6);
import('JsPayWechat.lib.WxPayApi''vendor');
import('JsPayWechat.example.WxPayJsApiPay''vendor');
$input = new \WxPayRefund();
$input->SetOut_trade_no($shopBondOrderInfo['tid']); //原订单号
$input->SetTransaction_id($shopBondOrderInfo['transaction_id']); //原订单号
$input->SetOut_refund_no($re_tid);  //退款订单号
$input->SetTotal_fee($shopBondOrderInfo['price'] * 100); //订单金额
$input->SetRefund_fee($shopBondOrderInfo['price'] * 100); //退款金额
$input->SetOp_user_id(\WxPayConfig::MCHID);
if ($result['result_code'] == "SUCCESS") {
    //退款成功处理
}

本文转载于:

https://blog.csdn.net/pangjunwei/article/details/124348223

如果对您有所帮助,欢迎您点个关注,我会定时更新技术文档,大家一起讨论学习,一起进步。

 记录--接入微信支付的全套姿势


本文链接:https://www.kkkliao.cn/?id=167 转载需授权!

分享到:

版权声明:本文由廖万里的博客发布,如需转载请注明出处。


“记录--接入微信支付的全套姿势” 的相关文章

工龄38年机关事业单位人员正处级养老金有多少钱?

工龄38年机关事业单位人员正处级养老金有多少钱?

机关事业单位人员,工龄38年,正处级,养老金有多少钱?机关事业单位人员,如果在2024年以前退休,那么是属于退休中人,相比退休老人,养老金计算方式比较特殊,如果退休时,当地还没有理顺养老金待遇,就会领取预发养老金,等以后理顺后,再进行补发。那么对于工龄38年,正处级,养老金可以达到多少呢?应该说,正...

如何把备用手机号,改为移动便宜的8元套餐,不用去营业厅

如何把备用手机号,改为移动便宜的8元套餐,不用去营业厅

手机可以说是我们最常用的一个通讯工具,比如说我们这几年,可能会用过多部手机,也有多个手机号,但每个朋友可能都会有一台或者两台的备用机,里面只是保号使用,今天给大家分享技巧是如何把我们的备用手机号,设置为一个最低的一个保号套餐,这样的话就会少花冤枉钱,相信这个技巧呢,会对大家有很大的帮助,大家可以点赞...

蛋黄胆固醇高,还能不能吃?早上坚持吃水煮蛋,有什么好处?

蛋黄胆固醇高,还能不能吃?早上坚持吃水煮蛋,有什么好处?

说到鸡蛋,能想到很多食物,只是一颗小小的鸡蛋,却能变着花样的去进行制作,且大多还是比较简单的做法,其中一个比较简单的做法,也是大家比较常用的一个做法,就是清水煮鸡蛋。有的人早餐会吃一个水煮鸡蛋,可帮助补充营养,适当多吃鸡蛋,确实能给身体带来一些好处,同样,也是会存在一些不好的说法,让部分人群对于吃鸡...

华为梅开二度:鸿蒙3.0正式版推送+5.5G网络,网友:遥遥领先

华为梅开二度:鸿蒙3.0正式版推送+5.5G网络,网友:遥遥领先

对于华为手机来说,虽然手机业务受到了很大的压力,但是华为在很多领域的表现都不差,无论是汽车领域还是通信领域,都有着不错的市场表现力。而且这几年的华为在技术研发方面的投入资金也不小,这也意味着进步很大。而且从目前的市场角度来看,华为也迎来了梅开二度的情况,不仅针对鸿蒙OS3.0正式版进行了推送和变化,...

6G专利申请量比拼:美国占比35.2%,日本占比9.9%,中国排第几?

6G专利申请量比拼:美国占比35.2%,日本占比9.9%,中国排第几?

5G对于现在的人们来说已经不是什么神秘的存在,很多国家通过近些年的研究都已经逐步掌握了5G技术。不过就5G技术发展的成熟度、设备完善程度以及信号铺设范围来说,我国都是当之无愧的世界第一。但是随着科技技术的不断发展,对于6G的技术研发也被提上日程。不少国家都开始攻克6G技术,并取得了各项专利。根据有关...

马云即便隐退了,眼光依旧毒辣,退出前的发言值得深思

马云即便隐退了,眼光依旧毒辣,退出前的发言值得深思

(ps:灰色的文字为马云的发言,黑色为作者的补充解读,更助于各位理解)马云发言:过去的这一年,很不寻常,事件发生了巨大的变化。疫情也带来了巨大的挑战,在今天所有巨大的不确定当中,有一件事是确定无疑的。那就是数字化的趋势没有改变。数字化以前只是让一些企业活得更好。而今天是企业活下去的关键,数字化的进程...

发表评论

访客

看不清,换一张

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