WeChat Pay 개발 배송 안내

高洛峰
풀어 주다: 2017-02-24 16:28:07
원래의
1900명이 탐색했습니다.

본 글에서는 위챗 결제의 배송 알림 기능 구현을 소개합니다.

1. 배송 알림

주문 상태를 더 잘 추적하려면 최종 결제 알림을 받은 후 제3자가 배송 알림 API를 호출하여 WeChat에 알려야 합니다. . 백그라운드의 주문 배송 상태입니다.

배송 시간 제한: 가상 및 서비스 상품의 경우 24시간 이내, 실제 상품의 경우 72시간 이내입니다.

결제 알림을 받은 후 상품을 정시에 배송하고 배송 알림 인터페이스를 사용하여 관련 정보를 WeChat 백엔드에 동기화하세요. 플랫폼이 지정된 시간 내에 이를 받지 못하면 초과 배송으로 처리됩니다.

배달 알림 API의 URL은 다음과 같습니다.

https://api.weixin.qq.com/pay/delivernotify?access_token=xxxxxx

URL에는 현재 WeChat 공개 플랫폼 자격 증명 access_token만 포함되어 있으며 배송 알림의 실제 데이터는 PostData에 배치됩니다.

{
    "appid" : "wwwwb4f85f3a797777",
    "openid" : "oX99MDgNcgwnz3zFN3DNmo8uwa-w",
    "transid" : "111112222233333",
    "out_trade_no" : "555666uuu",
    "deliver_timestamp" : "1369745073",
    "deliver_status" : "1",
    "deliver_msg" : "ok",
    "app_signature" : "53cca9d47b883bd4a5c85a9300df3da0cb48565c",
    "sign_method" : "sha1"
}
로그인 후 복사

위 콘텐츠 매개 변수에 대한 설명은 표 6에 나와 있습니다. -12.

< td width="137">

transid

< tr>< td width="137">

deliver_msg

参数

说明

appid

公众平台账户的AppId;

openid

贩买用户的OpenId,这个已经放在最终支付结果通知的PostData里了;

transid

交易单号;

out_trade_no

第三方订单号;

deliver_timestamp

发货时间戳,这里指的是Linux时间戳;

deliver_status

发货状态,1表明成功,0表明失败,失败时需要在deliver_msg填上失败原因;

deliver_msg

发货状态信息,失败时可以填上UTF8编码的错诨提示信息,比如“该商品已退款”;

app_signature

根据支付签名(paySign)生成方法中所讲的签名方式生成的,参加签名字段为:appid、appkey、openid、transid、out_trade_no、deliver_timestamp、deliver_status、deliver_msg;

sign_method

签名方法(不计入签名生成);

매개변수

설명

appid

공개 플랫폼 계정 AppId ;

openid

최종 결제 결과 알림 PostData에 배치된 구매 사용자의 OpenId;

거래 주문 번호;

out_trade_no

타사 주문 번호;

deliver_timestamp

배달 타임스탬프, 여기서는 Linux 타임스탬프를 나타냅니다.

배송_상태

< p style="text-align:left;">배송 상태, 1은 성공, 0은 실패를 의미합니다.

보내기 실패 시 "이 제품은 환불되었습니다"와 같은 UTF8 인코딩 오류 메시지를 작성할 수 있습니다.

< p style="text-align:left;">app_signature

결제 서명(paySign) 생성에 따라 method 언급된 서명 방법에 의해 생성된 참여 서명 필드는 다음과 같습니다: appid, appkey, openid, transid, out_trade_no, Deliver_timestamp, Deliver_status, Deliver_msg

sign_method

서명 방법(계산되지 않음) 서명 생성 ; ok를 확인한 후 알림 성공 여부를 나타내는 데이터가 반환됩니다. 예: {"errcode":0,"errmsg":"ok"} 예외가 있는 경우 errcode 및 errmsg. 성공하면 errcode는 0이 됩니다.


2. 프로그램 구현

<🎜>프로그램의 일부 매개변수는 이 블로그 앞부분의 WeChat 결제 개발 데이터에서 가져왔습니다. 독자 여러분은 실행 <🎜><🎜><🎜>
 <?php 
 include_once("WxPayHelper.php"); //1. 获取access token
 $appid = "wx0000000000000000"; $appsecret = "e76050733ce76050733ce76050733cdd"; $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appsecret"; $result = https_request($url); $jsoninfo = json_decode($result, true); $access_token = $jsoninfo["access_token"]; //2.准备参数
 $deliver_timestamp = time(); //2.1构造最麻烦的app_signature
 $obj[&#39;appid&#39;]               = $appid; $obj[&#39;appkey&#39;]              = "8mruTNOGeX8OVUlIYxIyw6kxCRvdJENpWpw8mruTNOGeX8OVUlIYxIyw6kxCRvdJENpWpw8mruTNOGeX8OVUlIYxIyw6kxCRvdJENpWpw8mruTNOGeX8OVUlIYxIyw6k"; $obj[&#39;openid&#39;]              = "o0pk9uIVnlY-fJkzFKEbQ6LJ4cFc"; $obj[&#39;transid&#39;]             = "1218614901201405273313473135"; $obj[&#39;out_trade_no&#39;]        = "JfuKdiBig4zZnE4n"; $obj[&#39;deliver_timestamp&#39;]   = $deliver_timestamp; $obj[&#39;deliver_status&#39;]      = "1"; $obj[&#39;deliver_msg&#39;]         = "ok"; $WxPayHelper = new WxPayHelper(); //get_biz_sign函数受保护,需要先取消一下,否则会报错
 $app_signature  = $WxPayHelper->get_biz_sign($obj); //3. 将构造的json提交给微信服务器,查询
 $jsonmenu = &#39;
 {
     "appid" : "&#39;.$obj[&#39;appid&#39;].&#39;",
     "openid" : "&#39;.$obj[&#39;openid&#39;].&#39;",
     "transid" : "&#39;.$obj[&#39;transid&#39;].&#39;",
     "out_trade_no" : "&#39;.$obj[&#39;out_trade_no&#39;].&#39;",
     "deliver_timestamp" : "&#39;.$deliver_timestamp.&#39;",
     "deliver_status" : "&#39;.$obj[&#39;deliver_status&#39;].&#39;",
     "deliver_msg" : "&#39;.$obj[&#39;deliver_msg&#39;].&#39;",
     "app_signature" : "&#39;.$app_signature.&#39;",
     "sign_method" : "sha1"
 }&#39;; $url = "https://api.weixin.qq.com/pay/delivernotify?access_token=".$access_token; $result = https_request($url, $jsonmenu); var_dump($result); function https_request($url, $data = null){     $curl = curl_init();
     curl_setopt($curl, CURLOPT_URL, $url);
     curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
     curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);     if (!empty($data)){
         curl_setopt($curl, CURLOPT_POST, 1);
         curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
     }
     curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);     $output = curl_exec($curl);
     curl_close($curl);     return $output;
 }
로그인 후 복사
<🎜><🎜><🎜> <🎜><🎜>실행 후 결과 반환 <🎜><🎜><🎜>
string(27) "{"errcode":0,"errmsg":"ok"}"
로그인 후 복사
를 참고하세요. 더 많은 WeChat 결제 개발 및 배송 공지는 PHP 중국어 홈페이지 관련 기사를 주목해주세요!
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿