微信支付服务商开发相关的那点事

项目背景

不是什么大项目,使用微信服务商来管理多个子商户,并使用服务商的接口替子商户下单,服务商后台才能接收到回调

使用场景是web扫码支付

准备

域名应该要在服务商所归属的公众号内“网页授权域名”设置好(不知此操作是否需要?)

 在支付服务商后台设置好回调地址(子商户应该是不用设置)

项目使用apache+php为后台服务,下载官方支付php demo(native)

我们直接先按照demo的目录结构来玩,直接把解压的example和lib,2个目录都到服务器根目录

在example目录下,创建cert目录,进服务商后台-账户中心-api安全,下载证书,放到这个目录内

在example目录下,创建logs目录,用于微信支付log类写日志文件

由于微信支付相关都要使用https,所以查看访问日志在apache目录下的logs目录,ssl_request.txt文件,最下面,可以看到回调地址是否被请求

注意

官方demo有2个方式的扫码支付,第一种方式已经不提供,都使用第二种 

官方的demo,会有不能显示二维码的bug,例子页面是native.php

打印print_r($result);  这个,会显示错误,主要是关于于curl的错误,自行百度解决

 配置

  • 在WxPay.Config.Interface.php中的接口对象中增加一个公共方法
    public abstract function GetSubMchId(); //获取子商户id
  • 在WxPay.Config.php内中,配置需要的参数,自行百度,并且增加一个方法
    public function GetSubMchId(){   return '8888888888'; //返回子商户号 by vbyzc   }
  • 在lib/WxPay.Api.php 内,在统一下单方法unifiedOrder中,下面的参数那段位置,增加
    $inputObj->SetSub_mch_id($config->GetSubMchId());//子商户号 by vbyzc
  • 在各个需要查询订单的的地方回调,付款页面实时检测订单支付状态的请求页面,都要使用此方法来设置子商户id:
    $input->SetSub_mch_id($config->GetSubMchId());
    注意,有的地方可能没有$config对象,请引入WxPay.Config.php ,并初始化:
    $config = new WxPayConfig();

部分代码

扫码页面:native.php

猜你喜欢

转载自www.cnblogs.com/vbyzc/p/11113364.html