这个示例中的 $orders
数组包含了订单的相关信息,包括 transaction_id
和退款金额。
function refundOrder($transactionId, $refundAmount, $outRefundNo) { $url = "https://api.mch.weixin.qq.com/secapi/pay/refund"; $params = [ 'appid' => 'YOUR_APPID', 'mch_id' => 'YOUR_MCH_ID', 'nonce_str' => uniqid(), 'transaction_id' => $transactionId, 'out_refund_no' => $outRefundNo, 'total_fee' => $refundAmount, 'refund_fee' => $refundAmount, 'sign' => generateSignature($params), ]; $xml = arrayToXml($params); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $xml); $response = curl_exec($ch); curl_close($ch); return xmlToArray($response); } function arrayToXml($data) { $xml = new SimpleXMLElement('<xml/>'); foreach ($data as $key => $value) { $xml->addChild($key, $value); } return $xml->asXML(); } function xmlToArray($xml) { return json_decode(json_encode(simplexml_load_string($xml)), true); } function generateSignature($params) { ksort($params); $string = http_build_query($params) . "&key=YOUR_API_KEY"; return strtoupper(md5($string)); } // 模拟订单数据 $orders = [ ['transaction_id' => '123456', 'refund_amount' => 15000, 'out_refund_no' => 'refund_1'], ['transaction_id' => '789012', 'refund_amount' => 10000, 'out_refund_no' => 'refund_2'], // 可以添加更多订单 ]; // 循环处理每个订单的退款 $results = []; foreach ($orders as $order) { $result = refundOrder($order['transaction_id'], $order['refund_amount'], $order['out_refund_no']); $results[] = [ 'transaction_id' => $order['transaction_id'], 'refund_result' => $result, ]; } // 打印所有退款结果 print_r($results);
$orders
数组包含多个订单的信息,每个订单都有 transaction_id
、refund_amount
和 out_refund_no
。foreach
来遍历每个订单,调用 refundOrder
函数处理退款。$results
数组中,最后打印所有结果。标签: 来源:
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。