| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336 |
- <?php
- header("Content-type: text/html; charset=utf-8");
- require_once 'model/builder/AlipayTradePrecreateContentBuilder.php';
- require_once 'service/AlipayTradeService.php';
- if (!empty($_POST['out_trade_no'])&& trim($_POST['out_trade_no'])!=""){
- // (必填) 商户网站订单系统中唯一订单号,64个字符以内,只能包含字母、数字、下划线,
- // 需保证商户系统端不能重复,建议通过数据库sequence生成,
- //$outTradeNo = "qrpay".date('Ymdhis').mt_rand(100,1000);
- $outTradeNo = $_POST['out_trade_no'];
- // (必填) 订单标题,粗略描述用户的支付目的。如“xxx品牌xxx门店当面付扫码消费”
- $subject = $_POST['subject'];
- // (必填) 订单总金额,单位为元,不能超过1亿元
- // 如果同时传入了【打折金额】,【不可打折金额】,【订单总金额】三者,则必须满足如下条件:【订单总金额】=【打折金额】+【不可打折金额】
- $totalAmount = $_POST['total_amount'];
- // (不推荐使用) 订单可打折金额,可以配合商家平台配置折扣活动,如果订单部分商品参与打折,可以将部分商品总价填写至此字段,默认全部商品可打折
- // 如果该值未传入,但传入了【订单总金额】,【不可打折金额】 则该值默认为【订单总金额】- 【不可打折金额】
- //String discountableAmount = "1.00"; //
- // (可选) 订单不可打折金额,可以配合商家平台配置折扣活动,如果酒水不参与打折,则将对应金额填写至此字段
- // 如果该值未传入,但传入了【订单总金额】,【打折金额】,则该值默认为【订单总金额】-【打折金额】
- $undiscountableAmount = "0.01";
- // 卖家支付宝账号ID,用于支持一个签约账号下支持打款到不同的收款账号,(打款到sellerId对应的支付宝账号)
- // 如果该字段为空,则默认为与支付宝签约的商户的PID,也就是appid对应的PID
- //$sellerId = "";
- // 订单描述,可以对交易或商品进行一个详细地描述,比如填写"购买商品2件共15.00元"
- $body = "购买商品2件共15.00元";
- //商户操作员编号,添加此参数可以为商户操作员做销售统计
- $operatorId = "test_operator_id";
- // (可选) 商户门店编号,通过门店号和商家后台可以配置精准到门店的折扣信息,详询支付宝技术支持
- $storeId = "test_store_id";
- // 支付宝的店铺编号
- $alipayStoreId= "test_alipay_store_id";
- // 业务扩展参数,目前可添加由支付宝分配的系统商编号(通过setSysServiceProviderId方法),系统商开发使用,详情请咨询支付宝技术支持
- $providerId = ""; //系统商pid,作为系统商返佣数据提取的依据
- $extendParams = new ExtendParams();
- $extendParams->setSysServiceProviderId($providerId);
- $extendParamsArr = $extendParams->getExtendParams();
- // 支付超时,线下扫码交易定义为5分钟
- $timeExpress = "5m";
- // 商品明细列表,需填写购买商品详细信息,
- $goodsDetailList = array();
- // 创建一个商品信息,参数含义分别为商品id(使用国标)、名称、单价(单位为分)、数量,如果需要添加商品类别,详见GoodsDetail
- $goods1 = new GoodsDetail();
- $goods1->setGoodsId("apple-01");
- $goods1->setGoodsName("iphone");
- $goods1->setPrice(3000);
- $goods1->setQuantity(1);
- //得到商品1明细数组
- $goods1Arr = $goods1->getGoodsDetail();
- // 继续创建并添加第一条商品信息,用户购买的产品为“xx牙刷”,单价为5.05元,购买了两件
- $goods2 = new GoodsDetail();
- $goods2->setGoodsId("apple-02");
- $goods2->setGoodsName("ipad");
- $goods2->setPrice(1000);
- $goods2->setQuantity(1);
- //得到商品1明细数组
- $goods2Arr = $goods2->getGoodsDetail();
- $goodsDetailList = array($goods1Arr,$goods2Arr);
- //第三方应用授权令牌,商户授权系统商开发模式下使用
- $appAuthToken = "";//根据真实值填写
- // 创建请求builder,设置请求参数
- $qrPayRequestBuilder = new AlipayTradePrecreateContentBuilder();
- $qrPayRequestBuilder->setOutTradeNo($outTradeNo);
- $qrPayRequestBuilder->setTotalAmount($totalAmount);
- $qrPayRequestBuilder->setTimeExpress($timeExpress);
- $qrPayRequestBuilder->setSubject($subject);
- $qrPayRequestBuilder->setBody($body);
- $qrPayRequestBuilder->setUndiscountableAmount($undiscountableAmount);
- $qrPayRequestBuilder->setExtendParams($extendParamsArr);
- $qrPayRequestBuilder->setGoodsDetailList($goodsDetailList);
- $qrPayRequestBuilder->setStoreId($storeId);
- $qrPayRequestBuilder->setOperatorId($operatorId);
- $qrPayRequestBuilder->setAlipayStoreId($alipayStoreId);
- $qrPayRequestBuilder->setAppAuthToken($appAuthToken);
- // 调用qrPay方法获取当面付应答
- $qrPay = new AlipayTradeService($config);
- $qrPayResult = $qrPay->qrPay($qrPayRequestBuilder);
- // 根据状态值进行业务处理
- switch ($qrPayResult->getTradeStatus()){
- case "SUCCESS":
- echo "支付宝创建订单二维码成功:"."<br>---------------------------------------<br>";
- $response = $qrPayResult->getResponse();
- $qrcode = $qrPay->create_erweima($response->qr_code);
- echo $qrcode;
- print_r($response);
-
- break;
- case "FAILED":
- echo "支付宝创建订单二维码失败!!!"."<br>--------------------------<br>";
- if(!empty($qrPayResult->getResponse())){
- print_r($qrPayResult->getResponse());
- }
- break;
- case "UNKNOWN":
- echo "系统异常,状态未知!!!"."<br>--------------------------<br>";
- if(!empty($qrPayResult->getResponse())){
- print_r($qrPayResult->getResponse());
- }
- break;
- default:
- echo "不支持的返回状态,创建订单二维码返回异常!!!";
- break;
- }
- return ;
- }
- ?>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html>
- <head>
- <title>支付宝当面付 二维码支付</title>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <style>
- *{
- margin:0;
- padding:0;
- }
- ul,ol{
- list-style:none;
- }
- .title{
- color: #ADADAD;
- font-size: 14px;
- font-weight: bold;
- padding: 8px 16px 5px 10px;
- }
- .hidden{
- display:none;
- }
- .new-btn-login-sp{
- border:1px solid #D74C00;
- padding:1px;
- display:inline-block;
- }
- .new-btn-login{
- background-color: transparent;
- background-image: url("../img/new-btn-fixed.png");
- border: medium none;
- }
- .new-btn-login{
- background-position: 0 -198px;
- width: 82px;
- color: #FFFFFF;
- font-weight: bold;
- height: 28px;
- line-height: 28px;
- padding: 0 10px 3px;
- }
- .new-btn-login:hover{
- background-position: 0 -167px;
- width: 82px;
- color: #FFFFFF;
- font-weight: bold;
- height: 28px;
- line-height: 28px;
- padding: 0 10px 3px;
- }
- .bank-list{
- overflow:hidden;
- margin-top:5px;
- }
- .bank-list li{
- float:left;
- width:153px;
- margin-bottom:5px;
- }
- #main{
- width:750px;
- margin:0 auto;
- font-size:14px;
- font-family:'宋体';
- }
- #logo{
- background-color: transparent;
- background-image: url("../img/new-btn-fixed.png");
- border: medium none;
- background-position:0 0;
- width:166px;
- height:35px;
- float:left;
- }
- .red-star{
- color:#f00;
- width:10px;
- display:inline-block;
- }
- .null-star{
- color:#fff;
- }
- .content{
- margin-top:5px;
- }
- .content dt{
- width:160px;
- display:inline-block;
- text-align:right;
- float:left;
-
- }
- .content dd{
- margin-left:100px;
- margin-bottom:5px;
- }
- #foot{
- margin-top:10px;
- }
- .foot-ul li {
- text-align:center;
- }
- .note-help {
- color: #999999;
- font-size: 12px;
- line-height: 130%;
- padding-left: 3px;
- }
- .cashier-nav {
- font-size: 14px;
- margin: 15px 0 10px;
- text-align: left;
- height:30px;
- border-bottom:solid 2px #CFD2D7;
- }
- .cashier-nav ol li {
- float: left;
- }
- .cashier-nav li.current {
- color: #AB4400;
- font-weight: bold;
- }
- .cashier-nav li.last {
- clear:right;
- }
- .alipay_link {
- text-align:right;
- }
- .alipay_link a:link{
- text-decoration:none;
- color:#8D8D8D;
- }
- .alipay_link a:visited{
- text-decoration:none;
- color:#8D8D8D;
- }
- </style>
- </head>
- <body text=#000000 bgColor="#ffffff" leftMargin=0 topMargin=4>
- <div id="main">
- <div id="head">
- <dl class="alipay_link">
- <a target="_blank" href="http://www.alipay.com/"><span>支付宝首页</span></a>|
- <a target="_blank" href="https://b.alipay.com/home.htm"><span>商家服务</span></a>|
- <a target="_blank" href="http://help.alipay.com/support/index_sh.htm"><span>帮助中心</span></a>
- </dl>
- <span class="title">支付宝统一预下单接口快速通道</span>
- </div>
- <div class="cashier-nav">
- <ol>
- <li class="current">1、确认信息 →</li>
- <li>2、点击确认 →</li>
- <li class="last">3、确认完成</li>
- </ol>
- </div>
- <form name=alipayment action="" method=post target="_blank">
- <div id="body" style="clear:left">
- <dl class="content">
- <dt>商户订单号:</dt>
- <dd>
- <span class="null-star">*</span>
- <input size="30" name="out_trade_no" />
- <span>商户网站订单系统中唯一订单号,必填
- </span>
- </dd>
- <dt>订单名称:</dt>
- <dd>
- <span class="null-star">*</span>
- <input size="30" name="subject" />
- <span>必填
- </span>
- </dd>
-
- <dt>付款金额:</dt>
- <dd>
- <span class="null-star">*</span>
- <input size="30" name="total_amount" />
- <span>必填
- </span>
- </dd>
-
-
- <dt></dt>
- <dd>
- <span class="new-btn-login-sp">
- <button class="new-btn-login" type="submit" style="text-align:center;">确 认</button>
- </span>
- </dd>
- </dl>
- </div>
- </form>
- <div id="foot">
- <ul class="foot-ul">
- <li><font class="note-help">如果您点击“确认”按钮,即表示您同意该次的执行操作。 </font></li>
- <li>
- 支付宝版权所有 2011-2015 ALIPAY.COM
- </li>
- </ul>
- </div>
- </div>
- </body>
- </html>
|