wechatpay-apiv3 / wechatpay-php

微信支付 APIv3 的官方 PHP Library,同时也支持 APIv2
Apache License 2.0
475 stars 98 forks source link

optimize for the `APIv2` #104

Closed TheNorthMemory closed 1 year ago

TheNorthMemory commented 1 year ago
xy-peng commented 1 year ago

优化 Transformer::walk 方法,以支持 Stringable 对象的值转换;

这一点有什么特别方便的使用场景吗?是否应该在文档中介绍下?

TheNorthMemory commented 1 year ago

优化 Transformer::walk 方法,以支持 Stringable 对象的值转换;

这一点有什么特别方便的使用场景吗?是否应该在文档中介绍下?

文档见这里 必须使用魔术方法 __toString 才能将 object 转换为 string。,比如如下代码,就支持 基本类型integer及 实现了__toString的匿名类转换,给高等级的数据封装提供转换底层支持(过程量以对象引用传递,最终转换时由Transformer来完成)。

[
    'appid' => 'wx2421b1c4370ec43b',
    'body' => 'dummybot',
    'mch_id' => '10000100',
    'amount' => 100,
    'recevier' => new class {
        public function __toString(): string {
            return json_encode(['type' => 'MERCHANT_ID', 'account' => '190001001']) ?: '';
        }
    },
]

我来增加个测试用例示例说明下。

xy-peng commented 1 year ago

我来增加个测试用例示例说明下。

文档也写下?虽然这样会让 README 越来越长。

但如果不写开发者又会说,需要翻代码才知道怎么用。