ホームページ >バックエンド開発 >PHPチュートリアル >WeChat決済開発⑥配送先共有インターフェース
WeChat 決済開発 (6) 受信アドレス共有インターフェース
キーワード: 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 アドレス共有に使用されるデータ フィールドには次が含まれます:
このうち、地域は「広東省-広州市-天河区」、対応する郵便番号は 510630 です。詳細の参照リンク: http://www.stats.gov.cn/tjsj/tjbz/xzqhdm/201401/t20140116_501070.html
配送先アドレスを取得する前に、ログイン認証インターフェイスを呼び出して OAuth2.0 アクセス トークンを取得する必要があります。したがって、承認は一度行う必要があり、この承認では確認ボックスは表示されません。
本質は、ユーザーが
http:<span style="color: #008000;">//</span><span style="color: #008000;">www.fangbei.org/wxpay/js_api_call.php</span>
にアクセスしたときに
https:<span style="color: #008000;">//</span><span style="color: #008000;">open.weixin.qq.com/connect/oauth2/authorize?appid=wx8888888888888888&redirect_uri=http://www.fangbei.org/wxpay/js_api_call.php&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect</span>
にジャンプすることです。 code パラメータを取得し、そのコードに基づいて認可された 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 文字列は、
string1 の署名アルゴリズムの場合、フィールド名とフィールド値です。元の値を使用し、URL エスケープを行わないでください。特定の署名アルゴリズムは addrSign = SHA1(string1) です。ここでは、addrSign を生成する具体的な例を次のように示します。
appId=<span style="color: #000000;">wx17ef1eaef46752cburl</span>=http:<span style="color: #008000;">//</span><span style="color: #008000;">open.weixin.qq.com/</span>timeStamp=<span style="color: #800080;">1384841012</span><span style="color: #000000;">nonceStr</span>=<span style="color: #800080;">123456</span><span style="color: #000000;">accessToken</span>=OezXcEiiBSKSxW0eoylIeBFk1b8VbNtfWALJ5g6aMgZHaqZwK4euEskSn78Qd5pLsfQtuMdgmhajVM5QDm24W8X3tJ18kz5mhmkUcI3RoLm7qGgh1cEnCHejWQo8s5L3VvsFAdawhFxUuLmgh5FRA
i: プロセスを通じてキーと値のペアを並べ替えた後、string1 が取得されます。 >
accesstoken=OezXcEiiBSKSxW0eoylIeBFk1b8VbNtfWALJ5g6aMgZHaqZwK4euEskSn78Qd5pLsfQtuMdgmhajVM5QDm24W8X3tJ18kz5mhmkUcI3RoLm7qGgh1cEnCHejWQo8s5L3VvsFAdawhFxUuLmgh5FRA&appid=wx17ef1eaef46752cb&noncestr=<span style="color: #800080;">123456</span>×tamp=<span style="color: #800080;">1384841012</span>&url=http:<span style="color: #008000;">//</span><span style="color: #008000;">open.weixin.qq.com/?code=CODE&state=STATE</span>
ii: プロセス b で署名した後、次の内容を取得できます:
addrSign=SHA1(accesstoken=<span style="color: #000000;">OezXcEiiBSKSxW0eoylIeBFk1b8VbNtfWALJ5g6aMgZHaqZwK4euEskSn78Qd5pLsfQtuMdgmhajVM5QDm24W8X3tJ18kz5mhmkUcI3RoLm7qGgh1cEnCHejWQo8s5L3VvsFAdawhFxUuLmgh5FRA</span>&appid=wx17ef1eaef46752cb&noncestr=<span style="color: #800080;">123456</span>×tamp=<span style="color: #800080;">1384841012</span>&url=http:<span style="color: #008000;">//</span><span style="color: #008000;">open.weixin.qq.com/?code=CODE&state=STATE)=ca604c740945587544a9cc25e58dd090f200e6fb</span>実装コードは以下の通りです 4. 配送先アドレスの取得ユーザーの配送先アドレスのeditAddressインターフェースを編集して取得し、 Web ページのフロントエンドで呼び出します。
パラメータリスト:
呼び出しメソッドは次のとおりです
パラメータの戻り値:
返回值 | 说明 |
---|---|
err_msg | edit_address:ok获取编辑收货地址成功 |
edit_address:fail获取编辑收货地址失败 | |
username | 收货人姓名 |
telNumber | 收货人电话 |
addressPostalCode | 邮编 |
proviceFirstStageName | 国标收货地址第一级地址 |
addressCitySecondStageName | 国标收货地址第二级地址 |
addressCountiesThirdStageName | 国标收货地址第三级地址 |
addressDetailInfo | 详细收货地址信息 |
nationalCode | 收货地址国家码 |