亚洲国产精品人久久,亚洲va国产日韩欧美精品色婷婷,久久久久88色偷偷,免费人成黄页在线观看国际

17站長網

17站長網 首頁 編程 PHP編程 查看內容

PHP開發實現微信退款功能示例

2022-10-26 19:37| 查看: 2782 |來源: 互聯網

這篇文章主要介紹了PHP開發實現微信退款功能的方法,涉及php針對微信接口的相關調用操作技巧,需要的朋友可以參考下...
本文實例講述了PHP開發實現微信退款功能。分享給大家供大家參考,具體如下:

最近在調微信退款接口,發現有許多坑,更大家分享一下

① 要是在測試的時候,網頁提示 curl 58 說明 證書的路徑出現問題(這里要填物理路徑,也就是絕對路徑)
② 網頁提示curl 52 說明你的證書引入少了,在官方的demo上只有兩個證書 apiclient_cert.pem和 apiclient_key.pem  你還需要引入一個證書 rootca.pem,這個證書需要你登錄到
你的商戶平臺上下載
③ 要是網頁提示  "HTTP/1.1 200 OK Server: nginx Date: Tue, 20 Jun 2017 08:08:01 GMT Content-Type: text/plain Content-Length: 852 Connection: keep-alive Keep-Alive: timeout=8
說明你的代碼是沒有問題的 ,應該是參數出錯了 我之前錯的地方是把 out_refund_no和 out_trade_no寫的一樣,微信官網上也是這樣寫的 ,但是就是出現問題,我把out_refund_no 修改了一下 發現可以了

注意:金額的單位是分

下面就是我寫的接口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
function Home_index() {
  date_default_timezone_set("Asia/Shanghai");
  $date = date("YmdHis");
  $appid = "";
  $mch_id = "";
  $out_trade_no = "14487658021497944120";
  $op_user_id = "";
  $out_refund_no = $date;
  $total_fee = "500";
  $refund_fee = "500";
//  $transaction_id = "4009542001201706206596667604";
  $key = "";
  $nonce_str = nonceStr();
  $ref = strtoupper(md5("appid=$appid&mch_id=$mch_id&nonce_str=$nonce_str&op_user_id=$op_user_id"
          . "&out_refund_no=$out_refund_no&out_trade_no=$out_trade_no&refund_fee=$refund_fee&total_fee=$total_fee"
          . "&key=$key")); //sign加密MD5
  $refund = array(
  'appid' =>$appid, //應用ID,固定
  'mch_id' => $mch_id, //商戶號,固定
  'nonce_str' => $nonce_str, //隨機字符串
  'op_user_id' => $op_user_id, //操作員
  'out_refund_no' => $out_refund_no, //商戶內部唯一退款單號
  'out_trade_no' => $out_trade_no, //商戶訂單號,pay_sn碼 1.1二選一,微信生成的訂單號,在支付通知中有返回
  // 'transaction_id'=>'1',//微信訂單號 1.2二選一,商戶側傳給微信的訂單號
  'refund_fee' => $refund_fee, //退款金額
  'total_fee' => $total_fee, //總金額
  'sign' => $ref//簽名
  );
  $url = "https://api.mch.weixin.qq.com/secapi/pay/refund";
  ; //微信退款地址,post請求
  $xml = arrayToXml($refund);
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_HEADER, 1);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1); //證書檢查
  if ($useCert == true) {
    // 設置證書
    curl_setopt($ch, CURLOPT_SSLCERTTYPE, 'pem');
    curl_setopt($ch, CURLOPT_SSLCERT, dirname(__FILE__) . '/WxPay/cert/apiclient_cert.pem');
    curl_setopt($ch, CURLOPT_SSLCERTTYPE, 'pem');
    curl_setopt($ch, CURLOPT_SSLKEY, dirname(__FILE__) . '/WxPay/cert/apiclient_key.pem');
    curl_setopt($ch, CURLOPT_SSLCERTTYPE, 'pem');
    curl_setopt($ch, CURLOPT_CAINFO, dirname(__FILE__) . '/WxPay/cert/rootca.pem');
  }
  curl_setopt($ch, CURLOPT_POST, 1);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
  $xml = curl_exec($ch);
  // 返回結果0的時候能只能表明程序是正常返回不一定說明退款成功而已
  if ($xml) {
    curl_close($ch);
    // 把xml轉化成數組
    libxml_disable_entity_loader(true);
    $xmlstring = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA);
//    var_dump($xmlstring);
    $result['errNum'] = 0;
    $result['info'] = object_to_array($xmlstring);
//    var_dump($result);
    return $result;
  } else {
    $error = curl_errno($ch);
    curl_close($ch);
    // 錯誤的時候返回錯誤碼。
    $result['errNum'] = $error;
    return $result;
  }
}
function arrayToXml($arr) {
  $xml = "<root>";
  foreach ($arr as $key => $val) {
    if (is_array($val)) {
      $xml .= "<" . $key . ">" . arrayToXml($val) . "</" . $key . ">";
    } else {
      $xml .= "<" . $key . ">" . $val . "</" . $key . ">";
    }
  }
  $xml .= "</root>";
  return $xml;
}
function object_to_array($obj) {
  $obj = (array) $obj;
  foreach ($obj as $k => $v) {
    if (gettype($v) == 'resource') {
      return;
    }
    if (gettype($v) == 'object' || gettype($v) == 'array') {
      $obj[$k] = (array) object_to_array($v);
    }
  }
  return $obj;
}
function nonceStr() {
  $chars = "abcdefghijklmnopqrstuvwxyz0123456789";
  $str = "";
  $length = 32;
  for ($i = 0; $i < $length; $i++) {
    $str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
  }
  // 隨機字符串
  return $str;
}
Home_index();

趕快添加到你的項目中去吧。

tag標簽:PHP PHP開發
本文最后更新于 2022-10-26 19:37,某些文章具有時效性,若有錯誤或已失效,請在網站留言或聯系站長:17tui@17tui.com
·END·
站長網微信號:w17tui,關注站長、創業、關注互聯網人 - 互聯網創業者營銷服務中心

免責聲明:本站部分文章和圖片均來自用戶投稿和網絡收集,旨在傳播知識,文章和圖片版權歸原作者及原出處所有,僅供學習與參考,請勿用于商業用途,如果損害了您的權利,請聯系我們及時修正或刪除。謝謝!

17站長網微信二維碼

始終以前瞻性的眼光聚焦站長、創業、互聯網等領域,為您提供最新最全的互聯網資訊,幫助站長轉型升級,為互聯網創業者提供更加優質的創業信息和品牌營銷服務,與站長一起進步!讓互聯網創業者不再孤獨!

掃一掃,關注站長網微信

大家都在看

    熱門排行

      最近更新

        返回頂部
        亚洲国产精品人久久,亚洲va国产日韩欧美精品色婷婷,久久久久88色偷偷,免费人成黄页在线观看国际
        日韩中文字幕区一区有砖一区| 日本视频一区二区| 欧美无砖砖区免费| 国产精品一区专区| 91精品办公室少妇高潮对白| 日韩欧美你懂的| 国产精品日韩成人| 视频一区二区三区在线| 狠狠色丁香九九婷婷综合五月| 在线播放国产精品二区一二区四区| 91精品国产欧美日韩| 亚洲一区在线观看免费观看电影高清| 日本丶国产丶欧美色综合| 久久99精品国产.久久久久久| 亚洲欧洲www| 美女视频黄频大全不卡视频在线播放| 国产亚洲一区二区三区| 99精品欧美一区二区蜜桃免费 | 欧美精品一卡二卡| 久久久天堂av| 亚洲国产精品精华液ab| 日本午夜精品视频在线观看 | 欧美日韩精品一区二区三区四区| 最新国产精品久久精品| 99re成人在线| 一区二区欧美在线观看| 精品日韩一区二区三区免费视频| 国产乱子伦视频一区二区三区| 视频在线观看91| 麻豆一区二区99久久久久| 日本不卡一二三区黄网| 色一区在线观看| 秋霞国产午夜精品免费视频| 日韩一级成人av| 人人爽香蕉精品| 一区二区三区中文字幕精品精品 | 午夜精品福利一区二区三区av| 欧美日韩国产综合视频在线观看| 日韩精品一卡二卡三卡四卡无卡| 亚洲天天做日日做天天谢日日欢| 久久蜜桃一区二区| 欧美蜜桃一区二区三区| 一本色道久久综合亚洲91| 中文字幕一区二区三区四区| 午夜日韩在线电影| 一区二区三区美女| 久久激情综合网| 欧美日韩在线综合| 亚洲狠狠丁香婷婷综合久久久| 国内外成人在线| 日韩午夜激情免费电影| 午夜欧美2019年伦理| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 亚洲在线成人精品| 99久久免费国产| 国产精品乱码一区二三区小蝌蚪| 国产麻豆9l精品三级站| 精品国产一区二区三区四区四| 日韩成人午夜精品| 日韩午夜在线观看视频| 奇米一区二区三区av| 欧美一区二区私人影院日本| 五月激情六月综合| 日韩一级成人av| 激情另类小说区图片区视频区| 欧美一级搡bbbb搡bbbb| 久久99久久久欧美国产| 欧美成人在线直播| 久久99久久久欧美国产| 国产精品女同互慰在线看| 99久久综合色| 亚洲成人综合视频| 这里是久久伊人| 国产乱人伦偷精品视频不卡| 国产精品私房写真福利视频| 色又黄又爽网站www久久| 亚洲一级二级三级| 精品久久久久99| 99这里只有精品| 午夜av一区二区三区| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 一个色在线综合| 日韩欧美在线一区二区三区| 成人一区二区三区视频| 一区二区三区四区国产精品| 精品免费日韩av| 在线观看av一区二区| 国产伦理精品不卡| 亚洲综合色婷婷| 久久久.com| 欧美一区二区在线播放| 99精品热视频| 国产一区二区在线免费观看| 一区二区在线免费| 26uuu亚洲| 91精品国产综合久久蜜臀| heyzo一本久久综合| 美女视频一区在线观看| 亚洲精品乱码久久久久久日本蜜臀| 欧美一级欧美三级在线观看| 色婷婷亚洲一区二区三区| 国产精品香蕉一区二区三区| 丝袜美腿亚洲综合| 一区二区三区四区不卡在线 | 精品日本一线二线三线不卡| 99久久精品久久久久久清纯| 国内精品在线播放| 日本三级韩国三级欧美三级| 夜色激情一区二区| 中文字幕在线免费不卡| 久久先锋影音av鲁色资源| 制服丝袜亚洲播放| 欧美亚州韩日在线看免费版国语版| 国产·精品毛片| 国产999精品久久| 加勒比av一区二区| 麻豆视频一区二区| 美国十次了思思久久精品导航| 日韩va欧美va亚洲va久久| 午夜视频在线观看一区二区 | 亚洲免费在线看| 日韩一区中文字幕| 国产精品成人午夜| 亚洲人吸女人奶水| 一区二区三区中文字幕| 一区二区三区91| 亚洲二区在线观看| 日韩高清一级片| 首页国产欧美久久| 午夜a成v人精品| 九色综合国产一区二区三区| 国产一区二区三区在线观看免费 | 欧美亚日韩国产aⅴ精品中极品| 一本到不卡精品视频在线观看| av亚洲精华国产精华| 日本伦理一区二区| 555www色欧美视频| 久久色在线视频| 最新成人av在线| 午夜精品一区二区三区免费视频| 日韩av网站在线观看| 国产综合色产在线精品| av日韩在线网站| 91精品在线麻豆| 国产欧美日韩精品在线| 亚洲福利视频一区| 国产成人综合自拍| 在线亚洲+欧美+日本专区| 日韩女优毛片在线| 中文字幕不卡的av| 日韩激情中文字幕| 成人av网站在线| 日韩一级完整毛片| 亚洲色欲色欲www| 久久97超碰色| 欧美性猛交xxxxxxxx| 久久久久久久久久电影| 亚洲亚洲人成综合网络| 国产精品1024| 欧美高清视频一二三区| 国产精品久久精品日日| 秋霞影院一区二区| 色一情一伦一子一伦一区| 国产视频视频一区| 日本三级亚洲精品| 欧美在线观看一区| 国产三级一区二区| 麻豆精品在线播放| 欧美三级中文字幕在线观看| 国产精品女主播av| 国产成人在线色| 欧美一级欧美一级在线播放| 亚洲自拍偷拍欧美| www.综合网.com| 国产精品乱人伦中文| 国产成人精品亚洲午夜麻豆| 日韩视频免费直播| 日韩有码一区二区三区| 欧美日韩你懂得| 亚洲国产精品久久人人爱 | 成人激情开心网| 久久精品人人做| 激情欧美日韩一区二区| 久久在线免费观看| 国产激情视频一区二区在线观看 | 麻豆精品国产91久久久久久| 欧美日韩一区二区三区四区| 亚洲一区二区三区中文字幕| 91极品美女在线| 亚洲美女偷拍久久| 色综合久久久久综合体| 亚洲一二三四区不卡| 欧美精品一卡二卡| 国内精品国产三级国产a久久| 国产亚洲成年网址在线观看| gogo大胆日本视频一区| 亚洲成人动漫av| 久久婷婷一区二区三区| 91香蕉视频黄| 免费xxxx性欧美18vr|