検索
ホームページWeChat アプレットWeChatの開発WeChat Pay開発出荷に関するお知らせ

WeChat Pay開発出荷に関するお知らせ

Feb 24, 2017 pm 04:28 PM
WeChatの開発

この記事では、WeChat決済における配送通知機能の実装について紹介します。

1. 配送通知

注文ステータスをより適切に追跡するには、最終支払い通知を受け取った後、サードパーティが配送通知 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 に示します。

out_trade_noの配送ステータス情報をアップロードします。「この商品は返金されました」など。 支払い署名 (paySign) 生成メソッドで説明されている署名メソッドに従って生成されます。参加する署名フィールドは次のとおりです: appid、appkey、openid、out_trade_no、deliver_timestamp、deliver_status、deliver_msg。 Signature メソッド (署名生成には含まれません); 表 6-12 配送通知パラメータの説明 検証後、WeChat パブリック プラットフォームは、通知が行われたかどうかを示すデータを返します。例: {"errcode":0,"errmsg":"ok"} 例外がある場合は、errcode と errmsg に記述されます。成功した場合、errcode は 0 になります。 2. プログラムの実装
 <?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 = '
 {
     "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;
 }

パラメータ

説明

appid

パブリックプラットフォームアカウントのAppId。

openid

ユーザーを購入するOpenId、これは最終的な支払い結果通知の PostData に配置されています

トランザクション注文番号

;

deliver_timestamp
配信タイムスタンプ、ここではLinuxタイムスタンプを指します。

deliver_status
配信ステータスを指します。1は成功を示し、0は失敗を示します。delivery_msに入力する必要があります。いつ失敗した場合は、

deliver_msg

app_signature

sign_method

プログラム内の一部のパラメーターは、このブログで前述した WeChat 決済開発データから取得しています。読者の皆様は、実行

実行後の結果を返す

string(27) "{"errcode":0,"errmsg":"ok"}"

を参照してください。WeChat決済の開発と出荷通知関連記事の詳細については、PHP中国語ウェブサイトに注目してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。