0

Recurly API を使用すると、次のテキストが返されます。私が理解しようとしているのは、PHP を使用してこの文字列から値を抽出し、それらを PHP 変数に配置する最も簡単な方法です。

テキストを見つけるためにPHPマニュアル内のさまざまな方法を見てきましたが、PHPに慣れていないため、実際に値を取得する正確なプロセスは、それらの場所がまだ明らかではないことがわかりました。

たとえば、値を取得して値をplan_code囲む引用符を削除して、結果が になるようにするにはどうすればよいでしょう$plan = 'starter'か?

Recurly_Subscription[href=https://api.recurly.com/v2/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxx] account=<Recurly_Stub[アカウント] href=https://api.recurly.com/v2/accounts/1>, activate_at="2012 -07-14 12:55:47 +00:00", currency="USD", current_period_ends_at="2012-08-14 12:55:47 +00:00", current_period_started_at="2012-07-14 12: 55:47 +00:00", plan="Recurly_Plan[href=https://api.recurly.com/v2/plans/starter] name="Starter", plan_code="starter", setup_fee_in_cents="<Recurly_CurrencyList [ ]>"、unit_amount_in_cents="<Recurly_CurrencyList []>">"、quantity=2、state="active"、subscription_add_ons=[]、unit_amount_in_cents=1200、uuid="1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx3"

4

3 に答える 3

3

Recurly の PHP API を使用できます。

$result = Recurly_js::fetch($_POST['recurly_token']);
$plan = $result->plan_code;

トークンはサブスクリプション オブジェクトです。次に、アカウントに関する追加情報とその請求情報を次のように取得できます。

$account = $result->account->get();
$billing = $account->billing_info->get();

上記で plan_code をフェッチしたのと同じ方法で、アカウントからフィールド (例: アカウント所有者の名) とその請求情報 (例: クレジット カード番号の最後の 4 桁) を取得します。

上記を実行することは、Recurly のドキュメントでその方法を見つけるよりもはるかに簡単です!

于 2012-12-14T18:53:48.723 に答える
2

これを処理するいくつかの方法。

おそらく最も簡単な方法です。より標準に準拠した結果が得られる場合は、APIを調べてください。PHPには、XML、JSON、およびその他のいくつかの形式を処理する組み込み関数があり、情報ビットにアクセスできる配列またはオブジェクトを取得できます。

この形式でそれを行う1つの可能な方法:で分割し、,で再度分割し=てキー=>値のペアを取得します。(ただし、その後は表示されないため、最初の行をカットする必要がある場合があります,。)ラフスケッチ、テストなし:

<?php $result = your_api_call();
$chunks = explode(',', $result);
$resultAsArray = array();
foreach ($chunks as $biggerPart) {
   $parts = explode('=', $biggerPart);
   $tmpKey = trim($parts[0]);
   $tmpValue = str_replace('"', '', $parts[1]);
   $resultAsArray[$tmpKey] = $tmpValue;
}

echo $resultAsArray['plan_code'];
于 2012-07-17T15:50:04.177 に答える
2

トリックは、それをクエリ文字列構文に変換し、parse_str(original, array) を使用することです。

$original = 'Recurly_Subscription[href=https://api.recurly.com/v2/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxx] account=, activated_at="2012-07-14 12:55:47 +00:00", currency="USD", current_period_ends_at="2012-08-14 12:55:47 +00:00", current_period_started_at="2012-07-14 12:55:47 +00:00", plan="Recurly_Plan[href=https://api.recurly.com/v2/plans/starter] name="Starter", plan_code="starter", setup_fee_in_cents="", unit_amount_in_cents="">", quantity=2, state="active", subscription_add_ons=[], unit_amount_in_cents=1200, uuid="1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx3"';

$newstring = str_replace(", ", "&", $original);  // turns into querystring format &var=val
// you may need to use addslashes and/or replace the double quotes surrounding vars.

次に parse_str を使用すると、名前/値の連想配列が作成されます。

parse_str($newstring, $myarray);

次に、印刷して外観を確認し、微調整できます。

print_r($myarray);
于 2012-07-17T15:37:30.537 に答える