1003用例总共有两个步骤
第一步:使用统一下单接口,支付 5.51 元
第二步:使用内部订单号out_trade_no,查询第一步中的订单
1、使用createJsBizPackage函数统一下订单,扫码二位码模拟支付;
2、使用selectOrderQuery查询订单状态,传递统一订单号outTradeNo
///查询订单状态
public function selectOrderQuery($outTradeNo){
$config = array(
'mch_id' => $this->mchid,
'appid' => $this->appid,
'key' => $this->createSandBoxKey(),
);
$orderquery = array(
'appid' => $config['appid'],
'mch_id' => $config['mch_id'],
'out_trade_no' => $outTradeNo,
'nonce_str' => self::createNonceStr(),
);
$orderquery['sign'] = self::getSign($orderquery, $config['key']);
$responseXmlOrderQuery = self::curlPost('https://api.mch.weixin.qq.com/sandboxnew/pay/orderquery', self::arrayToXml($orderquery));
$unifiedOrderOrderQuery = simplexml_load_string($responseXmlOrderQuery, 'SimpleXMLElement', LIBXML_NOCDATA);
return $unifiedOrderOrderQuery;
}
特别注意:
1) 微信沙箱中正常支付不扣钱
虽然订单中支付金额是551分,
但是不会从你的微信中扣钱。
2) 需要在统一下单的请求地址中添加/sandboxnew/
不然请求是的真实的微信支付地址,
而不是微信沙箱地址。
三、 微信沙箱中 公众号/APP/扫码正常支付 返回的数据
如果请求正确,
微信沙箱会返回类似下面的数据:
<xml>
<coupon_fee><![CDATA[1]]></coupon_fee>
<cash_fee_type><![CDATA[CNY]]></cash_fee_type>
<nonce_str><![CDATA[az9ydt0k9nyv6s044nk0g9bbjl9ab5tz]]></nonce_str>
<time_end><![CDATA[20180125204816]]></time_end>
<sign><![CDATA[E3499286F6B9919AF72F0C39821330D5]]></sign>
<fee_type><![CDATA[CNY]]></fee_type>
<attach><![CDATA[sandbox_attach]]></attach>
<device_info><![CDATA[sandbox]]></device_info>
<out_trade_no><![CDATA[201801252048168041943717]]></out_trade_no>
<transaction_id><![CDATA[20180125204816712986010]]></transaction_id>
<trade_type><![CDATA[MICROPAY]]></trade_type>
<return_code><![CDATA[SUCCESS]]></return_code>
<err_code_des><![CDATA[ok]]></err_code_des>
<mch_id><![CDATA[1333333333]]></mch_id>
<settlement_total_fee><![CDATA[500]]></settlement_total_fee>
<cash_fee><![CDATA[500]]></cash_fee>
<is_subscribe><![CDATA[Y]]></is_subscribe>
<return_msg><![CDATA[OK]]></return_msg>
<bank_type><![CDATA[CMC]]></bank_type>
<total_fee><![CDATA[501]]></total_fee>
<appid><![CDATA[wxXXXXXXXXXXX]]></appid>
<result_code><![CDATA[SUCCESS]]></result_code>
<err_code><![CDATA[SUCCESS]]></err_code>
</xml>