ホームページ > 記事 > WeChat アプレット > ユーザーアドレスを取得するための PHP 開発 WeChat 支払い方法コード
WeChat Payの配送先住所共有機能は主にWeChatユーザーの個人配送先住所を一元管理することであり、その配送先住所は通話可能なすべての開発者に適用されます。ユーザーの配送先住所には多くの個人情報が含まれるため、このインターフェースを申請する必要があります。申請方法は mp プラットフォーム上で確認できます。
WeChatを使用して住所情報を取得するには、WeChat支払いと一緒に申請する必要があります。WeChat支払い申請が通過すると、この機能を使用できるようになります。
WeChat Mallでは、WeChat Payを使用してユーザーの配送先住所を取得することで、ユーザーが住所情報を入力する複雑なプロセスを省略し、ユーザーエクスペリエンスを向上させることができます。
ただし、これはユーザーのプライバシーに関わるため、使用中にユーザーが積極的にこの機能を使用することを選択する必要があり、クリック操作を通じてのみユーザーの配送先アドレスを取得できることに注意してください。
操作プロセスは次のとおりです:
1. ユーザーはショッピング カート ページを開き、[チェックアウト] をクリックして、WeChat oauth2 ページにジャンプします。アドレスは次のとおりです: https://open.weixin.qq.com/connect/ oauth2/authorize
2.oauth2 ページは、リンクを決済ページにリダイレクトし、PHP を使用してリンク内の code パラメーターを取得し、処理後に accessToken 値を取得します。署名を生成し、配列パラメータに組み立ててページに渡します。
3. 決済ページはユーザーのクリックイベントを使用し、2で生成された配列パラメーターを組み合わせてアドレスを取得する機能を完了します。ここで取得したアドレスをajaxを使ってデータベースに記録する機能を持たせると、次回購入時に気にする必要がなくなります。
注意すべき点について詳しく説明します:
1. WeChat oauth2 にジャンプするステップはユーザーの観点からはそれほど変わりませんが、そこで行うべきことはたくさんあります。プログラム。 1つ目はoauth2ページのパラメータで、appidはWeChatアプリID、redirect_uriはurlencodeの後の注文決済ページのアドレス、response_typeは固定コード、スコープは固定snsapi_base、状態を入力できます。 #wechat_redirect を選択すると、リンクの最終的な外観は次のようになります:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=Order billing address&response_type=code&scope=snsapi_base&state=Feel #wechat_redirect
2. ユーザーはこのアドレスにアクセスし、コード パラメーターが追加された注文決済アドレスにリダイレクトされます。この accessToken はプログラムによって取得される必要があることに注意してください。ユーザー情報の取得に使用される accessToken と、同じものとの対話に使用される別のアクセス トークン。 accessToken は GET リクエストを使用して取得できます。curl または file_get_contents を使用できます。リクエストのアドレスは次のとおりです: https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=APP_SECRET&code=CODE&grant_type=authorization_code;ここで注意すべき点が 1 つあります。WeChat では時々混乱が発生します。注文決済ページへの複数のリクエストにより、accessToken が無効になり、特別な処理が必要になります。 ここでの署名の生成は、WeChat 支払いの署名とは異なり、文字列 を暗号化するだけです: accesstoken=ACCESSTOKEN&appid=APPID&noncestr=32 ビットのランダムな文字列×tamp=timestamp&url =現在のページの URL を指定し、文字列をsha1暗号化します。
アドレスを取得する機能を実現するには、フロントエンド ページで一連のパラメーター、つまり appID、scope (デフォルトは jsapi_address)、signType (デフォルトは sha1)、addrSign (上記の sha1 によって暗号化された文字列) を使用する必要があります。 )、timeStamp (上記と同じ) 記事のタイムスタンプ)、nonceStr (上記と同じランダムな文字列)。 3. フロントエンド ページで、次の jsfunction を使用して、ユーザーのアドレスを取得する操作を完了します:
function get_addr() { WeixinJSBridge.invoke('editAddress',{ "appId" : "<?php echo $sign['appId']?>", "scope" : "jsapi_address", "signType" : "sha1", "addrSign" : "<?php echo $sign['addrSign']?>", "timeStamp" : "<?php echo $sign['timeStamp']?>", "nonceStr" : "<?php echo $sign['nonceStr']?>", },function(res){ if(res.err_msg == 'edit_address:ok') { //将地址信息存入数据库 //将地址信息显示在当前页面 document.getElementById("address_info").innerHTML="<b>收件人:"+res.userName+"</b> <b>"+res.telNumber+"</b><br /> 收货地址:"+res.proviceFirstStageName+res.addressCitySecondStageName+res.addressCountiesThirdStageName+res.addressDetailInfo; } else{ alert("获取地址失败,请重新点击"); } }); }この時点で、WeChat を使用してユーザーの共有アドレスを取得する開発は完了です。
以上がユーザーアドレスを取得するための PHP 開発 WeChat 支払い方法コードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。