キーワード: WeChat決済受信アドレス共有
著者: Fangbei Studio
原文: http://www.cnblogs.com/ txw1958/p/ weixin-editAddress.html
この記事では、WeChat決済における配送先住所共有インターフェースの開発プロセスを紹介します。
WeChat の配送先アドレスの共有とは、ユーザーが WeChat ブラウザで Web ページを開いてアドレスを入力することを意味し、その後の手順を入力することなくすぐに選択でき、追加や編集も可能です。このアドレスはユーザー属性であり、さまざまな販売者の Web ページで共有できます。住所を入力するネイティブ コントロールをサポートすると、住所データが販売者に渡されます。
アドレス共有はWeChat JavaScript APIに基づいており、WeChat内蔵ブラウザでのみ使用できます。他のブラウザからの通話は無効です。同時に、これをサポートするには WeChat バージョン 5.0 が必要です。アドレス インターフェイスを呼び出す前に、ユーザー エージェントを使用してユーザーの現在のバージョン番号を確認することをお勧めします。 iPhone のバージョンを例に挙げると、useragent を通じて次の WeChat バージョンのサンプル情報を取得できます。「Mozilla/5.0(iphone;CPU iphone OS 5_1_1 like Mac OS」。ユーザーがインストールした WeChat のバージョン番号については、販売者が判断できます。バージョン番号は 5.0 以上です。
アドレス形式
WeChat アドレス共有に使用されるデータ フィールドは次のとおりです:
その中で、この地域は「広東省-広州市-天河区」などの国家標準の3段階市外局番に対応しており、対応する郵便番号は510630です。詳細は参考リンク:http://www.stats.gov.cn/tjsj/tjbz/xzqhdm/201401/t20140116_501070.html
配送先アドレスを取得する前に、ログイン認証インターフェースを呼び出してOAuth2.0アクセストークンを取得する必要があります。したがって、承認は一度行う必要があり、この承認では確認ボックスは表示されません。
本質は、ユーザーが訪問するときです
のときに
にジャンプ リーリーこれを使用してコードパラメータを取得し、コードに基づいて認可されたaccess_tokenとopenidを取得します。このアクセストークンは配送先アドレス共有インターフェースに使用されます。
実装の詳細なプロセスについては、WeChatパブリックプラットフォーム開発(71)OAuth2.0 Web認可を参照してください
ランダムな文字列を生成する方法は以下の通りです
addrSign 署名に参加するフィールドには、appId、url (JavaScript API を呼び出す Web ページ URL)、タイムスタンプ、noncestr、accessToken が含まれます
フィールド名の ASCII コードに従って署名されるすべてのパラメーターを小さいものから大きいもの (辞書編集順) に並べ替えた後)、URL キーを使用します。値のペアの形式 (つまり、key1=value1&key2=value2...) は文字列 string1 に連結されます。
ここで、署名プロセス中のすべてのパラメーター名は小文字であることに注意してください。たとえば、並べ替え後の appId 文字列は appid です。
string1 には署名アルゴリズムが使用され、フィールド名とフィールド値は元の文字列を使用します。 URL エスケープなしの値。特定の署名アルゴリズムは addrSign = SHA1(string1) です。 addrSign を生成する具体的な例をここに示します:
i: プロセスを通じてキーと値のペアを並べ替えた後、string1 が取得されます:
リーリーii: b プロセスを通じて署名すると、次のものを取得できます:
リーリー実装コードは以下の通りです
ユーザーの配送先住所の editAddress インターフェイスを編集して取得し、Web ページのフロントエンドで呼び出します。
パラメータリスト:
パラメータ | 必須 | 説明 |
---|---|---|
アプリID | はい | パブリックアカウントのappID |
スコープ | はい | 「jsapi_address」を入力してアドレス編集の許可を取得します |
署名タイプ | はい | 署名方法、現在は SHA1 のみをサポートしています |
addrSign | はい | 署名、すべてのパラメータが署名の生成に関与します |
タイムスタンプ | はい | タイムスタンプ |
nonceStr | はい | ランダムな文字列 |
呼び出し方法は以下の通りです
パラメータの戻り値:
戻り値 | 説明 |
---|---|
err_msg | edit_address: ok 編集された配送先住所を正常に取得しました |
edit_address:fail 配送先住所の編集を取得できませんでした | |
ユーザー名 | 荷受人名 |
電話番号 | 荷受人の電話番号 |
住所郵便番号 | 郵便番号 |
proviceFirstStageName | 全国標準の配送先住所の第 1 レベルの住所 |
住所都市第二段階名 | 全国標準配送先住所第二層住所 |
住所郡第 3 ステージ名 | 全国標準配送先住所の第3レベル住所 |
住所詳細情報 | 配送先住所の詳細情報 |
国家コード | 配送先住所の国コード |