/** * 微信支付 JSSDK chooseWXPay 方式配置文件 */ public static function getPaymentJssdkConfig(Unifiedorder $unifiedorder, $asArray = false) { $config = static::getPaymentConfig($unifiedorder, true); $bag = new Bag(); $bag->set('timestamp', $config['timeStamp']); $bag->set('nonceStr', $config['nonceStr']); $bag->set('package', $config['package']); $bag->set('signType', $config['signType']); $bag->set('paySign', $config['paySign']); return $asArray ? $bag->all() : JSON::encode($bag->all()); }
$requestBag->set('trade_type', 'NATIVE'); // NATIVE 时不需要 Openid /** * 统一下单 */ $unifiedorder = new Unifiedorder($requestBag, MCHKEY); try { $response = $unifiedorder->getResponse(); } catch (PaymentException $e) { exit($e->getMessage()); } /** * 响应订单参数包 */ $responseBag = new Bag(); $responseBag->set('appid', $request['appid']); $responseBag->set('mch_id', $request['mch_id']); $responseBag->set('nonce_str', $request['nonce_str']); $responseBag->set('prepay_id', $response['prepay_id']); $responseBag->set('return_code', 'SUCCESS'); $responseBag->set('result_code', 'SUCCESS'); $responseBag->set('return_msg', 'return message'); $responseBag->set('err_code_des', 'err code description'); $signGenerator = new SignGenerator($responseBag); $signGenerator->onSortAfter(function ($bag) use($unifiedorder) { $bag->set('key', $unifiedorder->getKey()); }); $responseBag->set('sign', $signGenerator->getResult()); $responseBag->remove('key'); $xml = Util::array2XML($responseBag->all()); echo $xml;