支付宝提供了一个沙箱功能,使用这个沙箱功能可以去做一些模拟支付,不过支付的时候需要使用沙箱版的支付宝。暂时我不想使用这个沙箱功能调试支付 ..
不过我们可以这样 .. 添加一个沙箱选项,在插件里勾选了它以后,支付的时候可以让订单金额变成很小的金额 ..
先打开定义插件的配置选项字段的这个 php 文件 .. 在里面添加一个新的选项 .. 这个选项的名字叫 sandbox .. 它是一个 checkbox 类型的选项 ..
然后打开支付类 .. 可以在类的实例上添加一个 sandbox 属性 .. this .. sandbox .. 它的值可以判断一下 .. 看看 yes 是不是等于 .. $this .. get_option .. 选项的名字是 sandbox .. 默认的值是 no ..
再打开 WC_Gateway_Alipay_Request 类 .. 在 get_request_url 这个方法里面 .. 设置订单的金额的时候,可以判断一下 .. 看看 this.. gateway .. sandbox ,就是看一下插件是不是启用了 sandbox 模式 .. 如果是,就让订单金额变成 0.01 .. 不然的话 .. 没启用的话,订阅金额仍然是订单里的实际的金额 ..
测试
下面再去试一下 .. 先打开支付宝支付插件的管理 .. 启用一下 Sandbox .. 保存更改 .. 然后可以再去做一次提交 ..
注意这个订单的金额是 203 .. 按一下使用支付宝支付 .. 跳转到支付宝页面 .. 这里让用户支付的金额只有 1 分钱 .. 这是因为现在网站启用了 sandbox 功能 ..
启用 sandbox 以后订单标题可以订单号也可以修改一下 .. 修改一下 out_trade_no 的值 .. 先判断一下 $this .. gateway .. sandbox .. 如果打开了 sandbox 功能 .. 我们可以在订单号的前面添加一个 sandbox 标注一下 ..
如果没启用这个功能 .. out_trade_no 的值仍然是订单的订单号 ..
再回去试一下 .. 返回到之前的结算页面 .. 按一下使用支付宝支付 ..
要求支付的金额是 1 分钱 .. 你会发现这个交易的标题里面,会带着一个 sandbox ..