ホームページ >バックエンド開発 >PHPチュートリアル >WeChat決済開発(7) 受信アドレス共有インターフェースV2、v2_PHPチュートリアル

WeChat決済開発(7) 受信アドレス共有インターフェースV2、v2_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-12 08:53:58908ブラウズ

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

キーワード: WeChat パブリック プラットフォーム JSSDK 友達に送信 受信アドレス共有インターフェース openAddress
著者: Fangbei Studio
原文: http://www .cnblogs.com /txw1958/p/weixin-openaddress.html

この WeChat パブリック プラットフォーム開発チュートリアルでは、Web ページに配送先住所を取得する機能を実装する方法を紹介します。

配送先住所共有インターフェースは、2016年4月13日にアップグレードされました。2016年5月20日からは、新しいインターフェースのみが使用可能になります。このチュートリアルは、新しいバージョンのインターフェースのチュートリアルです。

この記事は次の 2 つの部分に分かれています:

1.WeChat JS-SDK

1. アクセストークンを取得します

アクセストークンの取得方法については、「WeChatパブリックプラットフォーム開発(26)アクセストークン

」を参照してください。

2. jsapi_ticketを取得します

署名を生成する前に、まず jsapi_ticket が WeChat JS インターフェースを呼び出すためにパブリック アカウントによって使用される一時的なチケットであることを理解する必要があります。通常の状況では、access_token によって取得される jsapi_ticket の有効期間は 7200 秒です。 jsapi_ticket を取得するための API 呼び出しの数は非常に限られているため、jsapi_ticket を頻繁に更新すると API 呼び出しが制限され、開発者は jsapi_ticket を独自のサービスでグローバルにキャッシュする必要があります。

access_token を取得するには、次のドキュメントを参照してください (有効期間は 7200 秒、開発者は独自のサービスで access_token をグローバルにキャッシュする必要があります):
最初のステップで取得した access_token を使用して、http GET メソッドを使用して jsapi_ticket をリクエストします (有効期間は 7200 秒、開発者はそれを独自のサービスにキャッシュする必要があります) サービス グローバル キャッシュ jsapi_ticket)、インターフェイス アドレスは次のとおりです

リーリー

次の JSON が正常に返されます:

リーリー

jsapi_ticket を取得したら、JS-SDK 権限検証用の署名を生成できます。

3. 署名アルゴリズムの実装

署名生成ルールは次のとおりです: 署名に参加するフィールドには、noncestr (ランダムな文字列)、有効な jsapi_ticket、timestamp (タイムスタンプ)、url (# とそれに続く部分を除く、現在の Web ページの URL) が含まれます。署名されるすべてのパラメータをフィールド名の ASCII コードに従って小さいものから大きいもの (辞書順) に並べ替えた後、URL キーと値のペアの形式 (つまり、key1=value1&key2=value2...) を使用してそれらを連結します。文字列 string1。ここで、パラメータ名はすべて小文字であることに注意してください。 string1 に対して sha1 暗号化を実行し、フィールド名とフィールド値には元の値を使用し、URL エスケープは実行しません。

つまり、signature=sha1(string1)です。 例:

リーリー

ステップ 1. 署名されるすべてのパラメータをフィールド名の ASCII コードに従って小さいものから大きいもの (辞書順) に並べ替えた後、URL のキーと値のペアの形式 (つまり、key1=value1&key2=value2...) を使用します。文字列 string1 に結合します:

リーリー

ステップ 2. sha1 で string1 に署名し、署名を取得します:

リーリー

完全なコードは次のとおりです

リーリー

2. 受信アドレス共有インターフェース

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
  • 詳しい住所
  • 郵便番号
  • 連絡先番号

その中で、この地域は「広東省-広州市-天河区」などの国家標準の3段階市外局番に対応しており、対応する郵便番号は510630です。詳細は参考リンク:http://www.stats.gov.cn/tjsj/tjbz/xzqhdm/201401/t20140116_501070.html

2. ドメイン名をバインドする

まず、WeChatパブリックプラットフォームにログインし、「公式アカウント設定」の「機能設定」に入り、「JSインターフェースセキュリティドメイン名」を入力します。

3. 署名パッケージを入手します

リーリー

4. JSファイルをインポートする

JS インターフェースを呼び出す必要があるページに次の JS ファイルを導入します。

特記事項: JS-SDK バージョンでは http://res.wx.qq.com/open/js/jweixin-1.1.0.js を使用する必要があります

リーリー

5. 構成インターフェースを通じて権限検証構成を挿入します

JS-SDK を使用する必要があるすべてのページは、最初に構成情報を挿入する必要があります。そうしないと、ページは呼び出されません。

リーリー

5. 準備ができたインターフェースを通じて成功した検証を処理します

需要在页面加载时就调用,需要把相关接口放在ready函数中调用来确保正确执行

wx.ready(<span>function</span><span> () {
});</span>

5.1 通过checkJsApi判断当前客户端版本是否支持分享参数自定义

 

<span> wx.checkJsApi({
                jsApiList: [
                    </span>'openAddress'<span>,
                ],
                success: </span><span>function</span><span> (res) {
                    alert(JSON.stringify(res));
                }
            });</span>  

5.3. 实现收货地址共享

 

<span>            wx.openAddress({
              trigger: </span><span>function</span><span> (res) {
                alert(</span>'用户开始拉出地址'<span>);
              },
              success: </span><span>function</span><span> (res) {
                alert(</span>'用户成功拉出地址'<span>);
                alert(JSON.stringify(res));
                document.form1.address1.value         </span>=<span> res.provinceName;
                document.form1.address2.value         </span>=<span> res.cityName;
                document.form1.address3.value         </span>=<span> res.countryName;
                document.form1.detail.value           </span>=<span> res.detailInfo;
                document.form1.national.value         </span>=<span> res.nationalCode;
                document.form1.user.value            </span>=<span> res.userName;
                document.form1.phone.value            </span>=<span> res.telNumber;
                document.form1.postcode.value         </span>=<span> res.postalCode;
                document.form1.errmsg.value         </span>=<span> res.errMsg;
                document.form1.qq.value             </span>= 1354386063<span>;
              },
              cancel: </span><span>function</span><span> (res) {
                alert(</span>'用户取消拉出地址'<span>);
              },
              fail: </span><span>function</span><span> (res) {
                alert(JSON.stringify(res));
              }
            });</span>

 

返回说明

返回值

说明

errMsg

获取编辑收货地址成功返回“openAddress:ok”。

userName

收货人姓名。

postalCode

邮编。

provinceName

国标收货地址第一级地址(省)。

cityName

国标收货地址第二级地址(市)。

countryName

国标收货地址第三级地址(国家)。

detailInfo

详细收货地址信息。

nationalCode

收货地址国家码。

 

三、实现效果

    

 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1121986.htmlTechArticle微信支付开发(7) 收货地址共享接口V2,v2 关键字:微信公众平台 JSSDK 发送给朋友 收货地址共享接口openAddress 作者:方倍工作室 原文:htt...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。