做开发我喜欢阅读开发文档,我觉得开发文档不仅仅是教你开发的步骤,教你如何调用接口。我们要学的还有那里面的业务逻辑处理,安全防范,开发文档作为公开的文档,那么多人使用别人的代码是经得起考验的,多看看开发文档真的有用。其实呢,说这么多就是想告诉大家,我们在做一个功能开发时我们需要明白我们需要准备哪些东西,前期准备工作要做好。下面就以一个官方的demo讲讲PHP如何开发微信支付功能。
微信支付其实有很多支付方式,有微信扫码支付、JSAPI支付、小程序支付、H5支付等,每种支付需要的东西不一样,设置参数也不一样。
就拿小程序支付和JSAPI支付来说吧,小程序支付我们需要小程序的APPID和秘钥,而JSAPI支付我们就需要绑定服务器域名的公众号APPID和秘钥。
当你了解这些,我相信你对微信支付的开发会有个更清晰思路,下面看详情微信支付(JSAPI支付)开发步骤。
第一步:前期准备
1.1.准备一个微信认证的服务号,并且开通了微信支付。微信支付开通后会得到一个商户平台账号
1.2.登录商户平台账号,在开发文档中下载微信支付PHP版SDK
1.3.登录商户平台账号下载支付证书,https://pay.weixin.qq.com/core/cert/api_cert
第二步:SDK与DEMO及证书文件处理
将官方的demo下载下来,将文件名为WxpayAPI_php.zip的文件解压得到WxpayAPI_php文件夹,把这文件夹里面的子文件夹php_sdk_v3.0.9重命名为wxpay,同时将cert证书文件夹放入的wxpay中。wxpay与cert文件结构如下
在lib文件夹中,我们需要对WxPay.config.php文件做修改,把公众号的APPID和秘钥以及商户的商户号和秘钥改为我们自己的。找到下面四个方法。
最后将整个wxpay上传至网站服务器根目录下的wexin微信目录下。即wxpay中example文件夹里面的文件地址为http://www.100txy.com/weixin/wxpay/example/index.php(网址做示范无效)
第三步:在商户平台设置参数
3.1.添加支付授权目录。进入商户平台、点击产品中心、再点开发配置,添加授权目录URL。
这步大家千万注意,一定要添加到文件的根目录。怎么说呢?我们支付demo文件都在example里面,所以我们要添加到example目录,否则的话会报当前页面URL为注册,如下图所示。
3.2.新增APPID授权。我们首先要明白这样一个关系,一个商户可以绑定多个应用的。我们即可以绑定服务号类型的应用,也可以绑定小程序类型的应用。如本文第二张图片所示。我们要把支付功能用在哪,就绑定它的APPID。注意绑定之后,商户平台会产生一个申请的表单,我们需要管理员到项目的应用账号下确认绑定才能完成绑定。
第四步:测试支付
我们访问我们上传SDK与DEMO的链接,即http://www.100txy.com/weixin/wxpay/example/index.php。当然我们需要在微信客户端访问,访问成功后我们看到如下界面。
但是当你点击其中一个支付时,会报错提示找不到文件,那是因为我们的文件路径错了,只需要对example文件夹中index.php做如下修改即可。
<li style="background-color:#FF7F24"><a href="http://<?php echo $_SERVER['SERVER_NAME']?>/weixin/wxpay/example/jsapi.php">JSAPI支付</a></li>
<li style="background-color:#698B22"><a href="http://<?php echo $_SERVER['SERVER_NAME']?>/weixin/wxpay/example/micropay.php">刷卡支付</a></li>
<li style="background-color:#8B6914"><a href="http://<?php echo $_SERVER['SERVER_NAME']?>/weixin/wxpay/example/native.php">扫码支付</a></li>
<li style="background-color:#CDCD00"><a href="http://<?php echo $_SERVER['SERVER_NAME']?>/weixin/wxpay/example/orderquery.php">订单查询</a></li>
<li style="background-color:#CD3278"><a href="http://<?php echo $_SERVER['SERVER_NAME']?>/weixin/wxpay/example/refund.php">订单退款</a></li>
<li style="background-color:#848484"><a href="http://<?php echo $_SERVER['SERVER_NAME']?>/weixin/wxpay/example/refundquery.php">退款查询</a></li>
<li style="background-color:#8EE5EE"><a href="http://<?php echo $_SERVER['SERVER_NAME']?>/weixin/wxpay/example/download.php">下载订单</a></li>
修改后点击JSAPI支付,测试支付功能。如果能支付成功代表你微信JSAPI支付已经配置成功了。