ホームページ >バックエンド開発 >PHPチュートリアル >WeChat決済開発⑥配送先共有インターフェース

WeChat決済開発⑥配送先共有インターフェース

WBOY
WBOYオリジナル
2016-06-13 12:29:01954ブラウズ

WeChat 決済開発 (6) 受信アドレス共有インターフェース

キーワード: WeChat 決済受信アドレス共有
著者: Fangbei Studio
原文: http://www.cnblogs.com/ txw1958/p/ weixin-editAddress.html

この記事では、WeChat 決済における配送先住所共有インターフェースの開発プロセスを紹介します。

1. はじめに

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

2. OAuth2.0 認証

配送先アドレスを取得する前に、ログイン認証インターフェイスを呼び出して 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 認証

を参照してください。 2. ランダムな文字列の取得

ランダムな文字列の生成方法は以下のとおりです

3. 署名の生成

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>&timestamp=<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>&timestamp=<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 收货地址国家码

5. 例

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。