青草久久影院-青草久久伊人-青草久久久-青草久久精品亚洲综合专区-SM双性精跪趴灌憋尿调教H-SM脚奴调教丨踩踏贱奴

17站長(zhǎng)網(wǎng)

17站長(zhǎng)網(wǎng) 首頁(yè) 編程 PHP編程 查看內(nèi)容

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

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

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

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

① 要是在測(cè)試的時(shí)候,網(wǎng)頁(yè)提示 curl 58 說明 證書的路徑出現(xiàn)問題(這里要填物理路徑,也就是絕對(duì)路徑)
② 網(wǎng)頁(yè)提示curl 52 說明你的證書引入少了,在官方的demo上只有兩個(gè)證書 apiclient_cert.pem和 apiclient_key.pem  你還需要引入一個(gè)證書 rootca.pem,這個(gè)證書需要你登錄到
你的商戶平臺(tái)上下載
③ 要是網(wǎng)頁(yè)提示  "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
說明你的代碼是沒有問題的 ,應(yīng)該是參數(shù)出錯(cuò)了 我之前錯(cuò)的地方是把 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, //應(yīng)用ID,固定
  'mch_id' => $mch_id, //商戶號(hào),固定
  'nonce_str' => $nonce_str, //隨機(jī)字符串
  'op_user_id' => $op_user_id, //操作員
  'out_refund_no' => $out_refund_no, //商戶內(nèi)部唯一退款單號(hào)
  'out_trade_no' => $out_trade_no, //商戶訂單號(hào),pay_sn碼 1.1二選一,微信生成的訂單號(hào),在支付通知中有返回
  // 'transaction_id'=>'1',//微信訂單號(hào) 1.2二選一,商戶側(cè)傳給微信的訂單號(hào)
  'refund_fee' => $refund_fee, //退款金額
  'total_fee' => $total_fee, //總金額
  'sign' => $ref//簽名
  );
  $url = "https://api.mch.weixin.qq.com/secapi/pay/refund";
  ; //微信退款地址,post請(qǐng)求
  $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) {
    // 設(shè)置證書
    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);
  // 返回結(jié)果0的時(shí)候能只能表明程序是正常返回不一定說明退款成功而已
  if ($xml) {
    curl_close($ch);
    // 把xml轉(zhuǎn)化成數(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);
    // 錯(cuò)誤的時(shí)候返回錯(cuò)誤碼。
    $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);
  }
  // 隨機(jī)字符串
  return $str;
}
Home_index();

趕快添加到你的項(xiàng)目中去吧。

tag標(biāo)簽:PHP PHP開發(fā)
本文最后更新于 2022-10-26 19:37,某些文章具有時(shí)效性,若有錯(cuò)誤或已失效,請(qǐng)?jiān)诰W(wǎng)站留言或聯(lián)系站長(zhǎng):17tui@17tui.com
·END·
站長(zhǎng)網(wǎng)微信號(hào):w17tui,關(guān)注站長(zhǎng)、創(chuàng)業(yè)、關(guān)注互聯(lián)網(wǎng)人 - 互聯(lián)網(wǎng)創(chuàng)業(yè)者營(yíng)銷服務(wù)中心

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

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

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

掃一掃,關(guān)注站長(zhǎng)網(wǎng)微信

大家都在看

    熱門排行

      最近更新

        返回頂部
        主站蜘蛛池模板: 性夜影院爽黄A爽免费动漫 性夜夜春夜夜爽AA片A | 亚洲综合日韩在线2019 | 久久视频这里只精品99热在线观看 | 啊轻点啊再深点视频免费 | 亚洲国产AV一区二区三区四区 | 国产亚洲精品AV片在线观看播放 | 亚洲宅男天堂a在线 | 儿子你得太大了慢点插 | 国产免费变态视频网址网站 | 香蕉尹人综合精品 | 久久妇女高潮几次MBA | 国产最猛性XXXX69交 | 王晶三级作品 | 色多多污污版免费下载安装 | 亚洲日产2020乱码草莓毕 | 小sao货水好多真紧h的视频 | 啊…嗯啊好深男男小黄文 | 精品久久久久久综合网 | 女教师公车痴汉在线播放 | 国产午夜精品视频在线播放 | 人妻无码AV中文系统久久免费 | 欧美国产影院 | 国产日韩欧美三级 | 亚婷婷洲AV久久蜜臀无码 | 97人人超碰国产精品最新蜜芽 | 欧美性xxx18一20 | 女人爽得直叫免费视频 | 成年黄网站免费大全毛片 | 免费成年人在线观看视频 | 怪物高h粗暴无尽 | 精品三级久久久久电影网1 精品日韩视频 | 中文字幕a有搜索网站 | 国产在线高清视频 | www免费看.男人的天堂 | 人体内射精一区二区三区 | 黄色天堂在线 | 久久九九有精品国产23百花影院 | 国产三级精品三级男人的天堂 | 国产精品久久久久久无码专区 | 不卡一区二区高清观看视频 | 97超碰97资源在线观看 |