站长图库向大家介绍了百度支付,编写封装,百度智能小程序,小程序支付等相关知识,希望对您有所帮助
最近因为项目重构的原因,对百度支付重新进行了编写封装,本次重写,添加了对签名的处理、添加用户退款,方便之后开发的使用。
因为百度电商开放平台的升级,支付功能已移至智能小程序内部。
具体申请流程:百度收银台支付开通指引,(https://smartprogram.baidu.com/docs/operations/transform/pay/)
(注:在支付服务中,服务电话应填写银行预留手机号,如填写错误报【银行预留手机号码格式校验不通过】)
百度支付文档:百度收银台接口2.0(https://smartprogram.baidu.com/docs/develop/function/tune_up_2.0/)
一、申请通过后,填写百度支付相关配置:
$config = array( 'deal_id' => '', // 百度收银台的财务结算凭证 'app_key' => '', // 表示应用身份的唯一ID 'private_key' => '', // 私钥原始字符串 'public_key' => '', // 平台公钥 'notify_url' => '', // 支付回调地址);
二、调用封装的支付方法,将返回信息,传递到百度小程序
<?phpinclude './BaiduPay.php';$baidupay = new \feng\BaiduPay($config);$order_sn = time().rand(1000,9999);$order = array( 'body' => '测试商品', // 产品描述 'total_amount' => '1', // 订单金额(分) 'order_sn' => $order_sn, // 订单编号);$re = $baidupay->xcxPay($order);die(json_encode($re)); // JSON化直接返回小程序客户端
小程序支付类 xcxPay:
/** * [xcxPay 百度小程序支付] * @param [type] $order [订单信息数组] * @return [type] [description] * $order = array( * 'body' => '', // 产品描述 * 'total_amount' => '', // 订单金额(分) * 'order_sn' => '', // 订单编号 * ); */public static function xcxPay($order){ if(!is_array($order) || count($order) < 3) die("数组数据信息缺失!"); $config = self::$config; $requestParamsArr = array( 'appKey' => $config['app_key'], 'dealId' => $config['deal_id'], 'tpOrderId' => $order['order_sn'], 'totalAmount' => $order['total_amount'], ); $rsaSign = self::makeSign($requestParamsArr, $config['private_key']); // 声称百度支付签名 $bizInfo = array( 'tpData' => array( "appKey" => $config['app_key'], "dealId" => $config['deal_id'], "tpOrderId" => $order['order_sn'], "rsaSign" => $rsaSign, "totalAmount" => $order['total_amount'], "returnData" => '', "displayData" => array( "cashierTopBlock" => array( array( [ "leftCol" => "订单名称", "rightCol" => $order['body'] ], [ "leftCol" => "数量", "rightCol" => "1" ], [ "leftCol" => "订单金额", "rightCol" => $order['total_amount'] ] ), array( [ "leftCol" => "服务地址", "rightCol" => "北京市海淀区上地十街10号百度大厦" ], [ "leftCol" => "服务时间", "rightCol" => "2018/10/29 14:51" ], [ "leftCol" => "服务人员", "rightCol" => "百度App" ] ) ) ), "dealTitle" => $order['body'], "dealSubTitle" => $ord

