Yandex.Cashの実装方法

まえがき



私がテクノロジーの世界の隣に住んでいる限り、私は常にITエリートがいると考えていました。目を閉じてコードを書く人は簡単にmd5を生成し、unixカーネルを書き換えることができます。 そして、あなたに真実を伝えるために、私はまさにこれらの人たちがYandexのために働いていると思いました。 Yandex.Kassaと呼ばれる彼らの子孫が最も深いアルファテストを行っていることに非常に驚きました。 この記事で遭遇したいくつかの問題とその解決方法について。



Yandex.NoBetaEven



システムへの登録が正常に完了すると、統合パスを選択するよう求められます。実際のGeeksの場合-http、またはそれほど複雑ではない電子メール。 自作のCMSがあるため、既製の統合テンプレートを選択することはできませんでした。

ドキュメント、デモへのアクセス、およびインストールされた期限が正常に提供され、作業が沸騰し始めました。



個人口座について
個人アカウントはまったく機能せず、1度だけ機能するため、すべての情報を送信/変更/受信するには、個人のマネージャーのみが必要です。 注意してください。


多くの苦痛の後、私たちはまだテスト支払いをするという課題に直面していました。 しかし、人生で起こるように-最初のパンケーキはゴツゴツしています。 すぐに技術的なエラーメッセージを受け取りました。 技術サポートに目を向けると、彼らは文書を不注意に読んだことのせいであることに気づき、すぐに、すでに十分に準備されてから、2回目のテスト支払いを開始しました。 すでに20回目のテスト支払いで、このツールはまだ完全に未加工であり、平日の戦闘の準備ができていないことが明らかになりました。



私たちの間違いとその解決策



#1



私の意見では、最も愚かな間違いはアドレスcheckurldemoのタイプミスでした。

偶然にも、4番目のロシア文字「s」を書いた方法を想像することさえできません。最悪のことは、3日後にそれについて学んだことです。 Yandexは入力ミスの事実を一切考慮せず、技術サポートがためらうことなくURLに疑問符を含むログを返します。



おおよそのテクニカルサポートの回答#1
サーバーの応答は次のとおりです。サーバーの可用性を確認してください。

<html> <head> <title>che?kurldemo</title> <META name="keywords" content="?????? ???????,, che?kurldemo" /> <META name="description" content="?????? ??????? che?kurldemo" /> <script src="/project/js/jquer
      
      





これは馬鹿げた間違いですが、注意する必要がありますが、残念ながらあなたにはこの問題が残されます。



#2



トラブルは一人では起こりません。 ドキュメントでは、Yandex.KassaがXMLシリアル化でISO8601形式のタイムスタンプを使用していることに気付きませんでした。 それを見つけるのに別の日がかかった。 注意してください。



ISO8601:2004
形式は次のように定義されます。

YYYY-MM-DDThh:mm:ss.fZZZZZ

デコード形式

よーい

年、正確に4桁

MM

月、正確に2桁(01 = 1月など)

DD

日付、正確に2桁(01から31)

T

ラテン文字「T」は大文字でなければなりません

えー

時間、正確に2桁(24時間形式、00から23)

mm

分、正確に2桁(00から59)

ss

秒、正確に2桁(00〜59)

f

秒の小数部(1〜6桁)、

存在しない場合があります。この場合、区切り文字「。」も省略してください

Zzzzz

タイムゾーン記述子には、次の値を使用できます。

Z-UTC、文字「Z」は大文字でなければなりません。

+ hh:mmまたは-hh:mm-UTC(GMT)に対するオフセット(現地時間を示し、指定された時間と分だけUTCの前後にあることを示します)。



これらの要素がすべて存在していることを確認してください。秒の小数部分のみを省略できます(この場合、区切り文字「。」も省略してください)。 日付のみを設定する必要がある場合、時刻は00:00:00として指定する必要があります。



例:

2011-07-24T19:00:00 + 04:00-19時間00分2011年7月24日、タイムゾーン-UTC + 4時間。

2004-07-24T15:00:00Z-正規表現の同じ瞬間。

2004-07-24T15:00:00.666Z-同じ時点に666ミリ秒を加えたもの。



誤った機能の例に注意しください



 <?php echo date(DATE_ISO8601); ?>
      
      





タイムゾーンは「:」で区切る必要があるため、間違った形式が表示されます。



#3



締め切りがあり、クライアントがいました。 3番目の間違いは、Yandexの意識にあまりにも隠されているため、3日間の苦痛の後で初めて認識されました。 あなたの個人アカウントも、マネージャーも、技術サポートの専門家も、私が言うことを教えてくれません。



Yandexの秘密
shopPasswordパラメーターには、20文字の長さ制限があります。



クライアントはすべてのパスワードの複雑さを主張し、私たちはおおよその実行者として、shopPasswordフィールドに28個のUFOアルファベット文字を入力してすべての指示に従いました。 しかし、「Invalid md5」エラーのデバッグの地獄の7ラウンドの後、20文字の制限があることが判明しました。 Yandexはデフォルトでパスワードをこの長さにカットします。



サポートの引用:

...悪いことは何も起こらなかった...
これについてはどこにも書かれていないので、注意してください。



結論として



この投稿は高いカルマのふりをするものではありません。今月の記事では、統合の難しい作業で同僚を支援するように設計されています。



All Articles