php对接app微信支付

1传递商户交易号和价格去微信进行生成预支付订单

利用微信统一下单方法生成预申请id

$input = new WxPayUnifiedOrder();

$input->SetBody($body);  //设置商品或支付单简要描述

$input->SetAttach('');    //设置附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据

$input->SetOut_trade_no($order_sn);  //设置商户系统内部的订单号,32个字符内、可包含字母, 其他说明见商户订单号

$input->SetTotal_fee($price);  //设置订单总金额,只能为整数,详见支付金额

$input->SetTime_start(date("YmdHis"));  //设置订单生成时间,格式为yyyyMMddHHmmss

$input->SetTime_expire(date("YmdHis", time() + 60*10));    //设置订单失效时间,格式为yyyyMMddHHmmss

$input->SetGoods_tag("tag");  //设置商品标记,代金券或立减优惠功能的参数,说明详见代金券或立减优惠

$input->SetNotify_url($notify_url);  //设置接收微信支付异步通知回调地址

$input->SetTrade_type("APP");  //设置类型如下:JSAPI,NATIVE,APP

$order_data = WxPayApi::unifiedOrder($input);  //统一下单


注释:$order_data 为微信返回的订单生成结果。如下所示

appid    mch_id    nonce_str    prepay_id   result_code   return_code    return_msg

 sign (签名,此时返回的签名不能给APP端调用,需要重新生成签名)      trade_type

 prepay_id (数据最重要。)

2、将微信返回的prepay_id数据再次签名,再返回给APP端。 获取到 prepay_id 后,将参数 appid、noncestr、package(注意:Sign=WXPay)、partnerid、prepayid、timestamp 签名后返回给 APP。

$order_data['timestamp'] = time();

$str = 'appid='.$order_data['appid'].'&noncestr='.$order_data['nonce_str'].'&package=Sign=WXPay&partnerid='.WxPayConfig::MCHID.'&prepayid='.$order_data['prepay_id'].'&timestamp='.$order_data['timestamp'];

$order_data['sign'] = strtoupper(md5($str.'&key='.WxPayConfig::KEY));

echo json_encode($order_data);

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值