资讯专栏INFORMATION COLUMN

手把手教你小程序对接微信支付

XBaron / 1662人阅读

摘要:按着我的步骤一步一步操作,你就可以成功的到这个微信支付技能包。原文链接手把手教你实现小程序微信支付由于自己本身就是开发的,所以只涉及到微信支付的开发。我将会一步一步的记录如何实现微信支付的。第一步先上微信支付开发文档境内普通商户里面下载与。

这是我自己研究了两天的微信支付整理得的开发笔记,然后在这里分享给大家,让大家快速上手微信支付。

按着我的步骤一步一步操作,你就可以成功的get到这个微信支付技能包。
补上自己最想的文章:[5分钟解决微信支付][1]
https://segmentfault.com/a/1190000014444847
这篇文章被很多人咨询,感谢你们的支持,所以新写了一篇填坑,希望对大家有帮助。

=======================
更多编程技巧,可关注琉忆编程库:shuaiqi100.com。

原文链接:手把手教你实现小程序微信支付

由于自己本身就是PHP开发的,所以只涉及到PHP微信支付的开发。我将会一步一步的记录如何实现微信支付的。

第一步:先上微信支付开发文档境内普通商户里面下载SDK与DEMO。

下载网址:https://pay.weixin.qq.com/wik...

在这里可以下载自己对应的编程代码来使用对应的SDK和DEMO进行改。我主要用的是PHP,所以下载的是PHP。

第二步:将下载的支付SDK与DEMO进行解压,然后打开这个解压后的文件夹。

第三步,从商家中心下载证书到本地放到cert文件夹里面。

商家中心路径:(注意需要下载安全插件,且只能在IE模式登录!)
https://pay.weixin.qq.com/ind...

具体路径为:登录进去到商家中心后,登录微信支付商户平台,点击【账户中心】->【账户设置】->【API安全】->【下载证书】中

下载证书完成后,记得顺便设置密钥!!这个密钥等下需要在微信支付lib配置文件夹里面配置支付。

密钥要求:需要字母+数字一起32位数!!为的是认真和安全。

下载证书到本地后,取出这两个证书放到cert文件里面去,
这两个证书分别叫做: apiclient_cert.pem 和 apiclient_key.pem

第四步:配置支付信息

打开lib文件夹下的 WxPay.Config.php

在这里就有说明需要用到的配置信息,只用配置这四项,其他的都不用修改!!
首先是APPID,注意一定是要注册的主体一致,其次用到支付的公众号或者是小程序都必须是和APPID一致的开发者!!不的话,请求支付会出错,提示:appid and openid not match!

APPID和MCHID可以通过开户邮件中获取,关于KEY就是刚才在第三步中要一起设置的密钥,直接复制粘贴进来就可以了。

APPSECRET就是小程序里面开发者的那个APPSECRET,直接去微信小程序里面获取粘贴过来就可以了!具体看下面!!

按上面的配置好,保存后就可以下一步了,修改支付接口。

第五步:修改获取openid的接口

打开example文件夹,打开WxPay.JsApiPay.php
找到 private function __CreateOauthUrlForOpenid($code) 方法。
需要修改里面的 $urlObj["code"] = $code; 修改为:$urlObj["js_code"] = $code;

注意:说说为什么这样修改:【下面的内容只是为了了解,不想深入原理可以跳过】
code 换取 session_key
这是一个 HTTPS 接口,开发者服务器使用登录凭证 code 获取 session_key 和 openid。其中 session_key 是对用户数据进行加密签名的密钥。为了自身应用安全,session_key 不应该在网络上传输。
获取openid的接口地址: https://api.weixin.qq.com/sns...

微信支付中,需要获取微信用户的openid,所以在小程序中,需要先通过wx.login获取到用户返回的code代码,然后用code换取用户的openid回来。在微信支付中,WxPay.JsApiPay.php里面已经封装了通过传过来的code换取openid的方法:GetOpenid()。而在这里请求获取openid的路径知道带参名是js_code不是code,所以需要修改配置文件里面的code为js_code!

保存好后,就可以第六步了,修改支付接口!!

第六步:修改支付接口
打开example文件夹下的jsapi.php文件。
首先:删除头部的这些代码,也可以注释!【因为用不到,都是测试数据】

//初始化日志
$logHandler= new CLogFileHandler("../logs/".date("Y-m-d").".log");
$log = Log::Init($logHandler, 15);

//打印输出数组信息
function printf_info($data)
{

foreach($data as $key=>$value){
    echo "$key : $value 
"; }

}

其次:删除底部的HTML代码,全部!全部!全部!!因为都是多余的,不要因为这些HTML代码请求出错。



...............这里省略..................

最后,修改核心的部分代码!!将要进行详细讲解。这时候贴上官方文档,可以看着文档修改这里的支付信息,因为很重要。

参考文档:
https://pay.weixin.qq.com/wik...

第七步 请求微信支付接口jsapi.php文件,然后发起支付

前面的修改只是为了这一步实现微信支付,弹出我们想要的支付密码输入框!!
记住,在微信小程序中是需要使用wx.request方法请求demo里面的jsapi.php文件,然后请求这个方法成功后会返回一串参数,然后根据打印的参数对应的填入这些参数内赋值即可。

wx.requestPayment({
"timeStamp": "",
"nonceStr": "",
"package": "",
"signType": "MD5",
"paySign": "",
"success":function(res){
},
"fail":function(res){
}
})
【具体可以看开发文档的参数配置】
网址:https://mp.weixin.qq.com/debu...

第八步 微信支付成功修改订单操作
        这一步过去我曾卡了很久,但是它很重要!!

登陆微信支付第三方平台
网址: https://pay.weixin.qq.com/ind...

然后按设置好的微信请求支付链接下写一个notify的控制器方法用于回调执行,当微信支付成功后就会去执行这个目录下的notify方法,然后可以写修改订单状态。

注意事项: 1.回调方法可以看demo里面的Notify.php文件进行修改成控制器方法用于回调!! 2.回调的方法一定要是在微信支付平台设置的支付目录下!! 3.支付的回调路径是不能够带参数的!!不能带参数!!不能带参数!! 如果回调没有成功,请看上面的注意事项进行检查,因为我在这里跌倒了N次,N次,N次!!!

对了,另外提醒下是在jsapi.php文件里面设置的回调路径,也就是demo里面的:wxpay/example/jsapi.php ,【同目录下的Notify.php文件是官方给的回调方法,可以看这个方法进行改写回调控制器!!】如下代码:

$input->SetNotify_url("http://paysdk.weixin.qq.com/example/notify.php");
//修改为你的支付目录下的路径+回调函数名,例如:http://www.abc.com/example/no...

至此最开头的demo配置到发起支付到支付成功对订单的操作全部方法都在这里,如果你在哪一步不了解可以给我留言,另外如果你有什么想法建议也可以给我留言。

如果你觉得这篇文章对你有用可以帮我分享出去给更多需要的人。

最后谢谢大家的支持。

个人微信公众号:琉忆编程库

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/30641.html

相关文章

  • 5分钟解决小程序微信支付

    摘要:,之前在写过一篇微信支付教程手把手教你实现小程序的微信支付。说说必须要自己填写的东西开头的这几个信息都可以从小程序后台微信支付申请成功后发的邮件中拿到。 你好,是我琉忆,一个文艺的程序员。 很久没有更新什么技术文了,特在此补上一篇精华文章——微信支付。PS,之前在segmentfault写过一篇微信支付教程:手把手教你实现小程序的微信支付。【从发表开始,到现在被很多人收藏,加微信和QQ...

    forsigner 评论0 收藏0
  • 把手教你学Dapr

    摘要:配置配置使用概率抽样。采样率定义了对跟踪跨度进行采样的概率,其值可以介于和含之间。例如,以下配置对象将采样率更改为即每个跨度都被采样,并使用协议将跟踪发送到位于的服务器文件路径注将采样率更改为会完全禁用跟踪。目录手把手教你学Dapr - 1. .Net开发者的大时代手把手教你学Dapr - 2. 必须知道的概念手把手教你学Dapr - 3. 使用Dapr运行第一个.Net程序手把手教你学Da...

    qqlcbb 评论0 收藏0
  • Taro 优秀学习资源汇总

    摘要:多端统一开发框架优秀学习资源汇总官方资源项目仓库官方文档项目仓库官方文档微信小程序官方文档百度智能小程序官方文档支付宝小程序官方文档字节跳动小程序官方文档文章教程不敢阅读包源码带你揭秘背后的哲学从到构建适配不同端微信小程序等的应用小程序最 Awesome Taro 多端统一开发框架 Taro 优秀学习资源汇总 showImg(https://segmentfault.com/img/r...

    toddmark 评论0 收藏0
  • 把手教你如何通过 KubeSphere 玩转 Kubernetes 存储

    摘要:青云知行学院最新课程出炉啦,欢迎订阅,还有青云优惠券放送主题系列培训课程二如何通过玩转存储时间月日本期内容介绍本节课主要介绍存储的特点,如何配置存储类型,如何使用存储功能。 青云知行学院最新课程出炉啦,欢迎订阅,还有青云优惠券放送!! 主题: KubeSphere 系列培训课程(二)- 如何通过 KubeSphere 玩转 Kubernetes 存储 时间:1 月 23 日 20:00...

    LucasTwilight 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<