Pine Blog

微信支付沙箱开发(五)——PHP1004用例调用函数介绍

一、 1004用例-公众号/APP/扫码支付退款

实现免充值代金券接口升级的1004用例PHP函数:
1004用例是公众号/APP/扫码支付退款,
主要有4个步骤:
(1)进行 5.52 元的订单支付;
(2)根据商户内部单号(out_trade_no),调查订单
(3)根据商户内部单号(out_trade_no),调用退款
(4)根据商户内部单号(out_trade_no),调用退款查询

其中1,2跟我们在1003用例中的一样,

//请求退款
public function begReFund($outTradeNo){
    $config = array(
        'mch_id' => $this->mchid,
        'appid' => $this->appid,
        'key' => $this->createSandBoxKey(),
    );  

    $refund = array(
         'appid' => $config['appid'],
         'mch_id' => $config['mch_id'],
         'out_trade_no' => $outTradeNo,
         'nonce_str' => self::createNonceStr(),
         'out_refund_no' => uniqid(),
         'total_fee' => 552,
         'refund_fee' =>  551,
    );          
    $refund['sign'] = self::getSign($refund, $config['key']);
    $responseXmlrefund = self::curlPost('https://api.mch.weixin.qq.com/sandboxnew/pay/refund', self::arrayToXml($refund));  
    $unifiedOrderrefund = simplexml_load_string($responseXmlrefund, 'SimpleXMLElement', LIBXML_NOCDATA);    
    return $unifiedOrderrefund;

}
//查询退款
public function begReFundquery($outTradeNo){
    $config = array(
        'mch_id' => $this->mchid,
        'appid' => $this->appid,
        'key' => $this->createSandBoxKey(),
    );  

    $refundquery = array(
         'appid' => $config['appid'],
         'mch_id' => $config['mch_id'],
         'out_trade_no' => $outTradeNo,
         'nonce_str' => self::createNonceStr(),

    );          
    $refundquery['sign'] = self::getSign($refundquery, $config['key']);
    $responseXmlrefundquery = self::curlPost('https://api.mch.weixin.qq.com/sandboxnew/pay/refundquery', self::arrayToXml($refundquery));  
    $unifiedOrderrefundquery = simplexml_load_string($responseXmlrefundquery, 'SimpleXMLElement', LIBXML_NOCDATA);    
    return $unifiedOrderrefundquery;

}

二、 微信沙箱申请退款接口请求地址
https://api.mch.weixin.qq.com/sandboxnew/pay/refund
这个接口跟微信支付中,
退款申请的实际地址差别很大,
并不是实际地址中添加/sandboxnew/
一定要注意,
实际请求地址
https://api.mch.weixin.qq.com/secapi/pay/refund

三、 微信申请退款接口请求参数
微信退款时,
请求的具体参数,
参考微信官方的这个开发文档
https://pay.weixin.qq.com/wiki/doc/api/jsapi_sl.php?chapter=9_4
1004测试用例中,
要求使用内部订单号out_trade_no查询,
也就是商户订单号,
你自己生成的订单号。

四、 微信沙箱中申请退款返回的数据

如果请求正确,
微信沙盒会返回类似下面的数据


<xml>
  <openid><![CDATA[wxYYYYYYYYYYYY]]></openid>
  <trade_type><![CDATA[MICROPAY]]></trade_type>
  <cash_fee_type><![CDATA[CNY]]></cash_fee_type>
  <refund_id><![CDATA[1234567892018020721584571768]]></refund_id>
  <cash_refund_fee><![CDATA[501]]></cash_refund_fee>
  <nonce_str><![CDATA[oq3136w3327rq8gg2q3bx1j4lhb5rj35]]></nonce_str>
  <return_code><![CDATA[SUCCESS]]></return_code>
  <refund_fee_type><![CDATA[CNY]]></refund_fee_type>
  <mch_id><![CDATA[1333333333]]></mch_id>
  <coupon_refund_fee><![CDATA[1]]></coupon_refund_fee>
  <settlement_total_fee><![CDATA[501]]></settlement_total_fee>
  <coupon_refund_fee_0><![CDATA[1]]></coupon_refund_fee_0>
  <sign><![CDATA[C5D2D3976787D46897C32FA81AA691B4]]></sign>
  <cash_fee><![CDATA[501]]></cash_fee>
  <refund_fee><![CDATA[502]]></refund_fee>
  <coupon_refund_id_0><![CDATA[12345]]></coupon_refund_id_0>
  <coupon_refund_count><![CDATA[1]]></coupon_refund_count>
  <coupon_type_0><![CDATA[NO_CASH]]></coupon_type_0>
  <err_msg><![CDATA[SUCCESS]]></err_msg>
  <cash_refund_fee_type><![CDATA[CNY]]></cash_refund_fee_type>
  <return_msg><![CDATA[OK]]></return_msg>
  <fee_type><![CDATA[CNY]]></fee_type>
  <bank_type><![CDATA[CMC]]></bank_type>
  <device_info><![CDATA[sandbox]]></device_info>
  <out_trade_no><![CDATA[201802072140441086990058]]></out_trade_no>
  <settlement_refund_fee><![CDATA[501]]></settlement_refund_fee>
  <transaction_id><![CDATA[12345678920180207215845717680516]]></transaction_id>
  <total_fee><![CDATA[502]]></total_fee>
  <appid><![CDATA[wxXXXXXXXXXXXX]]></appid>
  <out_refund_no><![CDATA[refound2018020721584515889]]></out_refund_no>
  <result_code><![CDATA[SUCCESS]]></result_code>
  <err_code><![CDATA[SUCCESS]]></err_code>
</xml>
未经允许不得转载:Pine Blog » 微信支付沙箱开发(五)——PHP1004用例调用函数介绍

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

Pine Blog
Anywhere, Anytime
E-mail:59054872@qq.com
苏ICP备15059480号-1