Maison >Applet WeChat >Développement de mini-programmes >Réécrire et encapsuler le paiement Baidu (paiement du programme Baidu Smart Mini)
Récemment, en raison de la reconstruction du projet, Baidu Payment a été réécrit et encapsulé. Dans cette réécriture, le traitement des signatures et les remboursements des utilisateurs ont été ajoutés pour faciliter le développement et l'utilisation ultérieurs.
En raison de la mise à niveau de la plateforme ouverte de commerce électronique Baidu, la fonction de paiement a été déplacée vers le mini-programme intelligent. Le processus de candidature spécifique est le suivant : Guide d'activation du paiement du caissier Baidu, (https://smartprogram.baidu.com/docs). /opérations/transformer/payer/)
(Remarque : dans le service de paiement, le numéro de téléphone du service doit être renseigné avec le numéro de téléphone portable réservé par la banque. S'il est mal renseigné, il signalera [la vérification du format de le numéro de téléphone portable réservé par la banque a échoué])
Document de paiement Baidu : interface de caisse Baidu 2.0 (https://smartprogram.baidu.com/docs/develop/function/tune_up_2.0/)
1. est approuvé, remplissez la configuration relative au paiement Baidu :
$config = array( 'deal_id' => '', // 百度收银台的财务结算凭证 'app_key' => '', // 表示应用身份的唯一ID 'private_key' => '', // 私钥原始字符串 'public_key' => '', // 平台公钥 'notify_url' => '', // 支付回调地址 );
2. Appelez le mode de paiement encapsulé et les informations seront renvoyées, transmises au programme Baidu Mini
<?php include './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化直接返回小程序客户端 PHP
Classe de paiement du mini programme .php), y compris le paiement du mini programme, la signature. vérification, rappel et remboursement :
/** * [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" => $order['body'], "dealThumbView" => "https://b.bdstatic.com/searchbox/icms/searchbox/img/swan-logo.png", ), "orderDetailData" => '' ); $bdOrder = array( 'dealId' => $config['deal_id'], 'appKey' => $config['app_key'], 'totalAmount' => $order['total_amount'], 'tpOrderId' => $order['order_sn'], 'dealTitle' => $order['body'], 'signFieldsRange' => 1, 'rsaSign' => $rsaSign, 'bizInfo' => json_encode($bizInfo), ); return $bdOrder; }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!