>위챗 애플릿 >위챗 개발 >WeChat Pay 개발 배송 안내

WeChat Pay 개발 배송 안내

高洛峰
高洛峰원래의
2017-02-24 16:28:071957검색

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

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.

transid

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 타임스탬프를 나타냅니다.

배송_상태

배송 상태, 1은 성공, 0은 실패를 의미합니다.

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

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 결제 개발 데이터에서 가져왔습니다. 독자 여러분은 실행
 4962cee6a46084ce6f0c22bffc606e31get_biz_sign($obj); //3. 将构造的json提交给微信服务器,查询
 $jsonmenu = '
 {
     "appid" : "'.$obj['appid'].'",
     "openid" : "'.$obj['openid'].'",
     "transid" : "'.$obj['transid'].'",
     "out_trade_no" : "'.$obj['out_trade_no'].'",
     "deliver_timestamp" : "'.$deliver_timestamp.'",
     "deliver_status" : "'.$obj['deliver_status'].'",
     "deliver_msg" : "'.$obj['deliver_msg'].'",
     "app_signature" : "'.$app_signature.'",
     "sign_method" : "sha1"
 }'; $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 중국어 홈페이지 관련 기사를 주목해주세요!
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.