>  기사  >  위챗 애플릿  >  사용자 주소를 얻기 위한 PHP 개발 WeChat 결제 방법 코드

사용자 주소를 얻기 위한 PHP 개발 WeChat 결제 방법 코드

高洛峰
高洛峰원래의
2017-03-21 15:39:261399검색

위챗페이의 배송주소 공유 기능은 위챗 이용자의 개인 배송주소를 통일적으로 관리하는 것이 주를 이루며, 위챗 사용자에게 전화를 걸 수 있는 모든 개발자에게 배송주소를 적용할 수 있다. 사용자의 배송 주소에는 많은 개인정보가 포함되어 있으므로 본 인터페이스를 신청해야 합니다. 신청 방법은 mp 플랫폼에서 확인할 수 있습니다.

WeChat을 통한 주소 정보 획득은 WeChat 결제와 함께 적용됩니다. WeChat 결제 신청을 통과한 후 해당 기능을 사용할 수 있습니다.

위챗몰에서는 위챗페이를 이용하여 사용자의 배송주소를 획득함으로써 사용자가 주소정보를 입력하는 복잡한 과정을 생략하고 사용자 경험을 향상시킬 수 있습니다.

단, 사용자의 개인정보가 관련될 수 있으므로 사용 중에 사용자가 이 기능을 사용하도록 적극적으로 선택해야 하며, 클릭 작업을 통해서만 사용자의 배송 주소를 얻을 수 있습니다. 주의.

작업 과정은 다음과 같습니다.

1. 사용자가 장바구니 페이지를 열고 결제를 클릭한 후 https://open.weixin 주소의 WeChat oauth2 페이지로 이동합니다. .qq.com/connect/oauth2/authorize

2. oauth2 페이지는 링크를 결제 페이지로 리디렉션하고 PHP를 사용하여 링크의 코드 매개변수를 얻은 후 처리 후 accessToken 값을 얻습니다. 서명을 생성하여 배열로 조합하고 매개변수를 페이지에 전달합니다.

3. 결제 페이지는 2에서 생성된 배열 매개변수와 결합된 사용자 클릭 이벤트를 사용하여 주소 획득 기능을 완성합니다. 여기에는 ajax를 사용하여 얻은 주소를 데이터베이스에 기록하는 기능이 있을 수 있으므로 고객은 다음에 구매할 때 이에 대해 걱정할 필요가 없습니다.

주의해야 할 몇 가지 사항에 대해 자세히 이야기해 보겠습니다.

1. WeChat oauth2로 점프하는 단계는 사용자 관점에서 크게 다르지 않은 것 같습니다. , 하지만 프로그램에는 할 일이 많습니다. 첫 번째는 oauth2 페이지의 매개변수입니다. 여기서 appid는 WeChat appid이고,redirect_uri는 urlencode 뒤의 주문 결제 페이지 주소, response_type은 고정 코드, 범위는 고정 snsapi_base, 여기서 상태는 선택 사항이며 #wechat_redirect가 있으면 링크의 최종 모양은 다음과 같습니다.

https://open.weixin.qq.com/connect/oauth2/authorize?appid= APPID&redirect_uri=주문 결제 주소&response_type=code&scope =snsapi_base&state=#wechat_redirect

를 자유롭게 입력하세요. 2. 사용자가 이 주소에 액세스하면 이 페이지에 accessToken이 추가된 주문 결제 주소로 리디렉션됩니다. accessToken은 사용자 정보를 얻는 데 사용됩니다. accessToken은 WeChat과 상호 작용하는 데 사용되는 다른 액세스 토큰과 동일하지 않습니다.

GET 요청을 사용하여 accessToken을 얻으려면 컬 또는 file_get_contents를 사용할 수 있습니다. 요청 주소는 다음과 같습니다.

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=APP_SECRET&code=CODE&grant_type=authorization_code;

한 가지 사항이 있습니다. 여기에 참고하세요. 때때로 WeChat에서 발작이 발생하고 주문 정산 페이지를 여러 번 연속으로 요청하여 accessToken이 무효화되고 특별한 처리가 필요한 경우가 있습니다.

여기서 서명 생성은 WeChat 결제의 서명과 다릅니다. 단지 문자열을 다음 형식으로 암호화합니다. 타임스탬프&url=현재 페이지의 URL을 입력하고 sha1문자열을 암호화합니다.

주소, 즉 appID, 범위(기본값은 jsapi_address), signType(기본값은 sha1), addrSign(문자열)을 가져오는 기능을 달성하려면 프런트 엔드 페이지에서 일련의 매개 변수를 사용해야 합니다. 위의 sha1로 암호화됨), timeStamp(위와 같은 타임스탬프), nonceStr(위와 같은 임의 문자열).

3. 프론트 엔드 페이지에서 다음 js 함수 를 사용하여 사용자 주소를 얻는 작업을 완료합니다.

function get_addr()
{
  WeixinJSBridge.invoke('editAddress',{
  "appId" : "<?php echo $sign[&#39;appId&#39;]?>",
  "scope" : "jsapi_address",
  "signType" : "sha1",
  "addrSign" : "<?php echo $sign[&#39;addrSign&#39;]?>",
  "timeStamp" : "<?php echo $sign[&#39;timeStamp&#39;]?>",
  "nonceStr" : "<?php echo $sign[&#39;nonceStr&#39;]?>",
  },function(res){
  if(res.err_msg == &#39;edit_address:ok&#39;)
  {
       
       
      //将地址信息存入数据库
      //将地址信息显示在当前页面
      
      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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.