色婷婷国产精品免费网站_av在线官网_色综合色综合_欧美精品一区二区三区蜜桃视频_成人免费视频观看视频_国产午夜精品一区二区三区视频

17站長網(wǎng)

17站長網(wǎng) 首頁 編程 PHP編程 查看內容

PHP開發(fā)實現(xiàn)微信退款功能示例

2022-10-26 19:37| 查看: 2640 |來源: 互聯(lián)網(wǎng)

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

最近在調微信退款接口,發(fā)現(xiàn)有許多坑,更大家分享一下

① 要是在測試的時候,網(wǎng)頁提示 curl 58 說明 證書的路徑出現(xiàn)問題(這里要填物理路徑,也就是絕對路徑)
② 網(wǎng)頁提示curl 52 說明你的證書引入少了,在官方的demo上只有兩個證書 apiclient_cert.pem和 apiclient_key.pem  你還需要引入一個證書 rootca.pem,這個證書需要你登錄到
你的商戶平臺上下載
③ 要是網(wǎng)頁提示  "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
說明你的代碼是沒有問題的 ,應該是參數(shù)出錯了 我之前錯的地方是把 out_refund_no和 out_trade_no寫的一樣,微信官網(wǎng)上也是這樣寫的 ,但是就是出現(xiàn)問題,我把out_refund_no 修改了一下 發(fā)現(xiàn)可以了

注意:金額的單位是分

下面就是我寫的接口

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轉化成數(shù)組
    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開發(fā)
本文最后更新于 2022-10-26 19:37,某些文章具有時效性,若有錯誤或已失效,請在網(wǎng)站留言或聯(lián)系站長:17tui@17tui.com
·END·
站長網(wǎng)微信號:w17tui,關注站長、創(chuàng)業(yè)、關注互聯(lián)網(wǎng)人 - 互聯(lián)網(wǎng)創(chuàng)業(yè)者營銷服務中心

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

17站長網(wǎng)微信二維碼

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

掃一掃,關注站長網(wǎng)微信

大家都在看

    熱門排行

      最近更新

        返回頂部
        主站蜘蛛池模板: 又色又爽又黄gif动态图 | 99一区二区三区 | 亚洲一区高清 | 99视频+国产日韩欧美 | 午夜小视频在线观看 | 日本黄色免费视频 | 三上悠亚一区 | 99视频在线观看免费 | 波多野结衣一区二区三区 | 欧美日韩国产三级 | 人人射人人干 | 一级欧美一级日韩 | 性久久久久久 | av在线免费网站 | 日本黄色中文字幕 | 欧美一级黄色大片 | 国产精品理论 | 中文字幕亚洲视频 | 午夜精品视频在线观看 | 欧美网站在线观看 | 精品久久一区二区 | 官场少妇尤物雪白高耸 | 亚洲精品乱码久久久久久 | 韩国精品一区 | 亚洲免费黄色 | 日本一区二区在线播放 | 成人在线视频免费 | 日本一级淫片 | 91精品成人| 二色av| 国产一区在线看 | 精品国产99 | 午夜伦理福利 | 国产一区精品视频 | 国产精品久久久久久久久久久久久久久 | 国产一级免费观看 | 日韩午夜激情 | 国产欧美成人 | 中文字幕亚洲综合 | 亚洲精品国产精品国自产在线 | 久草免费在线观看视频 |