本文章将写的是微信的app支付,安卓端app是用apicloud封装的,ios端是用原生的,在这里将项目里面的微信支付后台数据处理部分拿出来(顺便复习一下),记录一下。
首先我们来看一下微信app官方给出的时序图:
下面直接上代码
public function wxorderOp(){
$dataArr = array(
'appid' => 'xxxx',
'mch_id' => 'xxxx',
'nonce_str' => $this->getNonceStr(),
'body' => $pay['pay_sn'],
'attach' => 'xxx',
'out_trade_no' => $pay['pay_sn'],
'total_fee' => 1,
'spbill_create_ip' => '111.85.159.16',
'notify_url' => 'xxxxxxxxxxx',//回调地址一定是要能访问到的
'trade_type' => 'APP'
);
$sign = $this->MakeSign($dataArr);//签名生成
$dataArr['sign'] = $sign;
$xmlStr = $this->createXML('xml', $dataArr);//统一下单xml数据生成
$reArr = explode('?>', $xmlStr);
$reArr = end($reArr);
$xml = $this->curl('https://api.mch.weixin.qq.com/pay/unifiedorder', $reArr);//发送请求 统一下单数据
//解析返回的xml字符串
$re = $this->xmlToObject($xml);
//判断统一下单是否成功
if ($re['result_code'] == 'SUCCESS') {