Closed successgo closed 6 years ago
:exclamation: No coverage uploaded for pull request base (
master@afe90ab
). Click here to learn what that means. The diff coverage is0%
.
@@ Coverage Diff @@
## master #56 +/- ##
========================================
Coverage ? 4.85%
========================================
Files ? 27
Lines ? 845
Branches ? 0
========================================
Hits ? 41
Misses ? 804
Partials ? 0
Impacted Files | Coverage Δ | |
---|---|---|
src/Message/CreateOrderRequest.php | 5.12% <0%> (ø) |
Continue to review full report at Codecov.
Legend - Click here to learn more
Δ = absolute <relative> (impact)
,ø = not affected
,? = missing data
Powered by Codecov. Last update afe90ab...4036b1c. Read the comment docs.
@gdc5percent 既然参数名称存在争议,项目内部尽量采取更通用的命名方式,即:
不同的单词尽量分开
如 openid是由 open 和 id 组成, 下划线的写法为 open_id,驼峰法为 openId
PHP类方法的参数命名本项目尽量统一使用驼峰法。以下改法有欠妥当
- public function setOpenId($openId)
+ public function setOpenId($open_id)
Omnipay
对于参数的下划线问题已经有解决方案,拿out_trade_no
举例
以下的代码片段
out_trade_no
参数写成outtradeno
、out_tradeno
、outtrade_no
、outTradeNo
、outTrade_No
等形式都是可以的 具体实现请见:omnipay-common 的 Helper::initialize方法
$order = array(
'out_trade_no' => date('YmdHis')
'totalfee' => '0.01',
'body' => 'test',
'spbill_create_ip' => '114.119.110.120',
);
$response = $gateway->purchase($order)->send();
@lokielse 你提到的omnipay-common的Helper::initialize方法我昨晚也是看到这个,才发现此问题的。
这个commit 不关语法不关风格,关于提交到微信接口的参数问题。
应当如何去修复 ?
@lokielse sorry about wasting you a lot of time. 是CreateOrderRequest.php#L42 让我有些迷惑。
Ok then, 我会按照这种用法,用在企业退款里。
Thanks for your instantly reply. Have a nice day.
@gdc5percent CreateOrderRequest.php#L42 validate
传的open_id
和setOpenId
方法里面的$this->setParameter('open_id', $openId)
中的open_id
是一致的
这里的原理是这样的:
openid
还是open_id
,都将成功调用setOpenId方法并设置一个以open_id为键值的键值对到parameters中,因此validate验证的时候需要通过open_id来验证@lokielse Thanks for your precise and great expression.
So, 接下来在通过getOpenId方法取出open_id的的值,提交到openid字段中,再发送微信请求。
ps: IMO,总感觉怪怪得。
在公众号支付-统一下单接口文档说明结合本地代码测试,此字段应为openid而不是open_id,与企业付款接口中的openid一致。
另外,为了代码风格一致,将参数变量由openId改为open_id。
ps. 怪微信接口的文档不够规范,感觉像是多个部门分开弄的,像商户号在统一下单是叫mch_id,而在企业付款接口中却是mchid。