调用微信支付接口,回复微信支付通知,使用微信支付 SDK 功能的时候,有多地方都会用到一个微信支付配置类的实例 .. 在 example 目录里面,有一个演示 .. 打开 WxPay.Config.php ..
这个类要继承一下 WxPayConfigInterface ... 类里面要提供一些方法,这些方法的作用就是返回一些配置信息,比如应用的 id 号 .. 商户的 id .. 通知地址 .. 签名的类型 .. 下面还有商户的密钥 .. 还有应用的密钥这些东西 .
这些配置信息一般都在支付插件的配置选项里 .. 我们可以参考这个文件,自己再去创建一个配置类 .. 在 includes 的下面,新建一个 php 文件,名字是 class-wc-gateway-wxpay-config.php ..
一个 php 开始标记 .. 下面加上一段防止单独被调用的代码 .. 然后再把类需要继承的接口类包含进来 .. 位置是 WC_WXPAY 加上 includes .. wxpay-sdk .. lib 下的 WxPay.Config.Interface.php ..
创建一个类 .. 名字可以是 WC_Gateway_Wxpay_Config .. 让它继承一下 WxPayConfigInterface .. 这个类里可以添加一个构造方法 .. __construct .. 构造方法接收一个 $options 参数 ... 方法里面设置一下 $this .. options .. 让它等于 $options .. 创建这个类实例的时候需要提供一个配置选项 .. 里面有这个类里的方法需要的一些配置信息 ..
下面你要根据 WxPayConfigInterface 这个接口类里提供的方法 .. 在我们创建的这个配置类里添加对应的方法 .. 或者可以参考演示里的这个 WxPayConfig 这个类 ..
这里我添加了接口里需要的所有的方法 .. 设置了方法返回的值 .. 比如 GetAppId 返回的就是当前实例里的 options 里面的 app_id 这个属性的值 .. 创建这个配置类实例的时候需要传递进来一个 options .. 里面包含了这里需要的值 ..
下面返回的是商户的 ID .. GetSignType 返回的是签名的类型,这里可以设置成 HMAC-SHA256 ..
然后是商户的密钥 .. 还有应用的密钥 ..
打开这个支付方法类 .. 在它的构造方法里面再去添加点东西 .. 先把我们刚才创建的微信支付配置类导入进来 .. 位置是 WC_WXPAY 加上 includes .. 文件名字是 class-wc-gateway-wxpay-config ..
再去创建一个这个类的实例,把它放在这个支付类的实例上 .. 先添加一个 $options .. 它里面的东西就是创建配置类的时候需要的数据 .. 它是一个数组 .. 里面先添加一个 app_id .. 它的值可以用一下 $this .. get_option .. 得到在插件配置选项字段里存储的 app_id ..
用同样的方法 .. 再添加一个 merchant_id ... merchant_public_key .. 还有一个 merchant_private_key ..
在这个支付类的实例上,再添加一个 config 属性,它的值是一个 WC_Gateway_Wxpay_Config 实例 .. 创建这个实例的时候需要给它传递一个 $options ..