微信支付接口的开发

来源:互联网 发布:中国科学技术大学网络 编辑:程序博客网 时间:2024/05/21 11:12

下载微信支付接口文档后,根据demo将该引入的文件引入,需要改的文件并不多,特别注意需要改的文件有

1,配置文件{

      

      APPID=‘商户注册微信分配的唯一标识’
MCHID='受理商id',//这个需要注意,如果受理商是代理商,代理商是没有支付功能的,就要有sub_mch_id:也就是代理商下的子商户的MCHID
KEY=‘商户支付密钥Key’;//注册时通过邮件发送的
APPSECRET=‘openID’;//JSAPI接口中获取openid,审核后在公众平台开启开发模式后可查看
//获取access_token过程中的跳转url,通过跳转将code传入jsapi支付页面
JS_API_CALL_URL ="http://www.test.com/WXPay/js_wxpay";//这个是绝对路径
//证书路径,注意应该填写绝对路径
SSLCERT_PATH= 'apiclient_cert.pem';
SSLKEY_PATH= 'apiclient_key.pem';
//异步通知url,商户根据实际开发过程设定
NOTIFY_URL ="http://www.test.com/wx_js_notify_url";//异步路径是注册时设置的异步通知路径,

}

2,拿扫码支付为例,扫码支付有模式一,模式二,我写的是模式二,将demo复制,**要讲需要引入的类文件引入,

$input = new WxPayUnifiedOrder();$input->SetBody("test");//支付的标题,我填的的是商户名称//$input->SetAttach("test");$input->SetOut_trade_no(WxPayConfig::MCHID.date("YmdHis"));//这个是订单编号,可按一定规则自行生成$input->SetTotal_fee("1");//--------------支付金额,这个地方是以分为单位,$input->SetTime_start(date("YmdHis"));//支付码生成时间$input->SetTime_expire(date("YmdHis", time() + 600));//支付码过期时间默认是10分钟,这是自己设的//$input->SetGoods_tag("test");$input->SetNotify_url("http://paysdk.weixin.qq.com/example/notify.php");//---支付成功获取的回调地址$input->SetTrade_type("NATIVE");//-----------支付类型$input->SetProduct_id("123456789");//-----商品的id//$result = $notify->GetPayUrl($input);//-------这是一个方法,一般会把这个方法里的代码拿出来
$input->spbill_create_ip=$_SERVER['REMOTE_ADDR'];、、终端id
$input->nonce_str=$inputObj->createNoncestr();//随机字符串$input->appid=WxPayConf_pub::APPID;//公众账号ID(服务商的)$input->mch_id=WxPayConf_pub::MCHID;//商户号(服务商的)
$input->sub_mch_id=$this->shopConfig['mch_id'];//子商户号-=------------如果是代理商就要指定子商户号,钱会到指定的商户中
//获得签名$input->sign=$input->getSign($input,$this->shopConfig['wx_key']);
//将数组转成xml$xml = $input->arrayToXml($inputObj);//这就是一个将对象装换成xml的方法$url = "https://api.mch.weixin.qq.com/pay/unifiedorder";---------微信指定好的地址$response =$this->postXmlSSLCurl($xml, $url,$this->shopid);-------微信写好的方法,参数传对即可//将返回的xml从新转化成数组$result = $inputObj->xmlToArray($response);、、-------将xml转化成数组$url=$result['code_url'];$url='http://paysdk.weixin.qq.com/example/qrcode.php?data='.$url;$return['out_trade_no']=$inputObj->out_trade_no;$return['url']=$url;//该$url放到img中即使即将支付的2维码
//$url2 = $result["code_url"];//
我说一下我的开发体会啊,当时开发时也趟了很多坑,看见demo也有些蒙,但是你要耐心的梳理逻辑,
一步一步的打印结果,你会发现这个接口并不难,只要会写一个其他的就迎刃而解了,原本我想写个成型的demo了,
可是这个接口也确实太复杂了,没法复制粘贴就能用,希望小伙伴们仔细看注释,注释已经把逻辑梳理的很清楚
退款,查询订单,网页支付同理,希望能帮到小伙伴们,


}



原创粉丝点击