php 接口怎么响应,Stripe PHP API方法响应的结构是什么?

我正在进行Stripe集成,我对从

PHP API获得的实际响应感到困惑.我开始相信API参考是准确的,并且响应将是每个方法所示的JSON字符串.我很快发现了显着的差异.大多数情况下,JSON响应中缺少id字段.此外,响应似乎是一个字符串,一个对象,也许还有其他一些结构,所有这些都在同一时间.

这是我的调试代码.我使用的是最新的Stripe PHP库,版本为1.7.15.

function var_dump_ret($mixed=null)

{

ob_start();

var_dump($mixed);

$content=ob_get_contents();

ob_end_clean();

return($content);

}

$token=$_POST['stripeToken'];

$customer=Stripe_Customer::create(array(

"card"=>$token,

"plan"=>"agency")

);

$custVarDump=var_dump_ret($customer);

$cDecoded=json_decode($customer);

$Debug="Invidual attributes of JSON decoded customer object:"._EOL;

$Debug.="object:".$cDecoded->object._EOL;

$Debug.="created:".$cDecoded->created._EOL;

$Debug.="id:".$cDecoded->id._EOL;

$Debug.="livemode:".$cDecoded->livemode._EOL;

$Debug.="description:".$cDecoded->description._EOL;

$Debug.="active_card.object:".$cDecoded->active_card->object._EOL;

$Debug.="active_card.last4:".$cDecoded->active_card->last4._EOL;

$Debug.="active_card.type:".$cDecoded->active_card->type._EOL;

$Debug.="active_card.exp_month:".$cDecoded->active_card->exp_month._EOL;

$Debug.="active_card.exp_year:".$cDecoded->active_card->exp_year._EOL;

$Debug.="active_card.fingerprint:".$cDecoded->active_card->fingerprint._EOL;

$Debug.="active_card.country:".$cDecoded->active_card->country._EOL;

$Debug.="active_card.name:".$cDecoded->active_card->name._EOL;

$Debug.="active_card.address_line1:".$cDecoded->active_card->address_line1._EOL;

$Debug.="active_card.address_line2:".$cDecoded->active_card->address_line2._EOL;

$Debug.="active_card.address_city:".$cDecoded->active_card->address_city._EOL;

$Debug.="active_card.address_state:".$cDecoded->active_card->address_state._EOL;

$Debug.="active_card.address_zip:".$cDecoded->active_card->address_zip._EOL;

$Debug.="active_card.address_country:".$cDecoded->active_card->address_country._EOL;

$Debug.="active_card.cvc_check:".$cDecoded->active_card->cvc_check._EOL;

$Debug.="active_card.address_line1_check:".$cDecoded->active_card->address_line1_check._EOL;

$Debug.="active_card.address_zip_check:".$cDecoded->active_card->address_zip_check._EOL;

$Debug.="email:".$cDecoded->email._EOL;

$Debug.="delinquent:".$cDecoded->delinquent._EOL;

//$Debug.="subscription:".$cDecoded->subscription._EOL;

$Debug.="discount:".$cDecoded->discount._EOL;

$Debug.="account_balance:".$cDecoded->account_balance._EOL;

$Debug.="unaltered response from Stripe_Customer::create:"._EOL.$customer._EOL.

"var dump of response:"._EOL.$custVarDump._EOL.

"print_r of json_decode of response:"._EOL.print_r($cDecoded,true)._EOL;

file_put_contents(_LOGFILE,$Debug,FILE_APPEND);

以下是我的调试文件的内容,用于JSON解码的客户对象的invidual属性.执行时,代码发布了通知.

注意:未定义的属性:第51行的stripe / subscription.php中的stdClass :: $id

另请注意,由于stdClass的致命错误,我必须注释掉添加’subscription’到调试字符串的行.

object:customer

created:1365951909

id:

livemode:

description:

active_card.object:card

active_card.last4:4242

active_card.type:Visa

active_card.exp_month:7

active_card.exp_year:2013

active_card.fingerprint:WTXPLgKDCXyp9xpD

active_card.country:US

active_card.name:charlie

active_card.address_line1:

active_card.address_line2:

active_card.address_city:

active_card.address_state:

active_card.address_zip:

active_card.address_country:

active_card.cvc_check:pass

active_card.address_line1_check:

active_card.address_zip_check:

email:

delinquent:

discount:

account_balance:0

最值得注意的是客户ID.它在JSON响应中不存在.但是,如某些Stripe示例程序中所示,可以使用$customer-> id访问它.此外,var_dump输出表明在我无法弄清楚的结构中存在更多的属性.整个调试文件是在http://www.helioza.com/stripe/debug.txt.我只显示了客户创建方法,但我遇到了类似的发票问题,并且无法在Stripe_Invoice :: all或Stripe_Invoice ::即将发布的响应中的任何位置找到发票ID.

问题

1)Stripe_Customer :: create返回的值如何同时是字符串和对象?

2)在哪里可以找到描述API方法返回值的文档,包括如何访问每个属性?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值