Heim  >  Artikel  >  WeChat-Applet  >  Baidu Payment (Baidu Smart Mini Program Payment) neu schreiben und kapseln

Baidu Payment (Baidu Smart Mini Program Payment) neu schreiben und kapseln

藏色散人
藏色散人nach vorne
2021-07-17 15:38:442791Durchsuche

Vor kurzem wurde Baidu Payment aufgrund der Projektrekonstruktion neu geschrieben und gekapselt. In dieser Neufassung wurden Signaturverarbeitung und Benutzerrückerstattungen hinzugefügt, um die spätere Entwicklung und Verwendung zu erleichtern.

Aufgrund des Upgrades der offenen E-Commerce-Plattform von Baidu wurde die Zahlungsfunktion auf das Smart Mini-Programm verschoben. Der spezifische Antragsprozess ist: Baidu Cashier Payment Activation Guide, (https://smartprogram.baidu.com/docs). /operations/transform/pay /)

(Hinweis: Im Zahlungsdienst sollte die Servicetelefonnummer in die von der Bank reservierte Mobiltelefonnummer eingetragen werden. Wenn sie falsch ausgefüllt ist, wird [die Formatüberprüfung von] gemeldet Die von der Bank reservierte Mobiltelefonnummer ist fehlgeschlagen Wenn die Zahlung genehmigt ist, füllen Sie die Baidu-Zahlungskonfiguration aus:

$config = array(
    'deal_id'       => '', // 百度收银台的财务结算凭证
    'app_key'       => '', // 表示应用身份的唯一ID
    'private_key'   => '', // 私钥原始字符串
    'public_key'    => '', // 平台公钥
    'notify_url'    => '', // 支付回调地址
);

2. Rufen Sie die gekapselte Zahlungsmethode auf und die Informationen werden an das Baidu-Miniprogramm (

<?php
include &#39;./BaiduPay.php&#39;;
$baidupay = new \feng\BaiduPay($config);
$order_sn = time().rand(1000,9999);
$order = array(
    &#39;body&#39;          => &#39;测试商品&#39;, // 产品描述
    &#39;total_amount&#39;  => &#39;1&#39;, // 订单金额(分)
    &#39;order_sn&#39;      => $order_sn, // 订单编号
);
$re = $baidupay->xcxPay($order);
die(json_encode($re)); // JSON化直接返回小程序客户端
PHP

Mini-Programm-Zahlungsklasse .php) zurückgegeben, einschließlich Mini-Programmzahlung und Signatur Verifizierung, Rückruf und Rückerstattung:

/**
 * [xcxPay 百度小程序支付]
 * @param  [type]  $order [订单信息数组]
 * @return [type]         [description]
 * $order = array(
 *      &#39;body&#39;          => &#39;&#39;, // 产品描述
 *      &#39;total_amount&#39;  => &#39;&#39;, // 订单金额(分)
 *      &#39;order_sn&#39;      => &#39;&#39;, // 订单编号
 * );
 */
public static function xcxPay($order)
{
    if(!is_array($order) || count($order) < 3)
        die("数组数据信息缺失!");
    $config = self::$config;
    $requestParamsArr = array(
        &#39;appKey&#39;    => $config[&#39;app_key&#39;],
        &#39;dealId&#39;    => $config[&#39;deal_id&#39;],
        &#39;tpOrderId&#39; => $order[&#39;order_sn&#39;],
        &#39;totalAmount&#39; => $order[&#39;total_amount&#39;],
    );
    $rsaSign = self::makeSign($requestParamsArr, $config[&#39;private_key&#39;]);  // 声称百度支付签名
    $bizInfo = array(
        &#39;tpData&#39; => array(
            "appKey"        => $config[&#39;app_key&#39;],
            "dealId"        => $config[&#39;deal_id&#39;],
            "tpOrderId"     => $order[&#39;order_sn&#39;],
            "rsaSign"       => $rsaSign,
            "totalAmount"   => $order[&#39;total_amount&#39;],
            "returnData"    => &#39;&#39;,
            "displayData"   => array(
                "cashierTopBlock" => array(
                    array(
                        [ "leftCol" => "订单名称", "rightCol"   => $order[&#39;body&#39;] ],
                        [ "leftCol" => "数量", "rightCol" => "1" ],
                        [ "leftCol" => "订单金额", "rightCol"   => $order[&#39;total_amount&#39;] ]
                    ),
                    array(
                        [ "leftCol" => "服务地址", "rightCol" => "北京市海淀区上地十街10号百度大厦" ],
                        [ "leftCol" => "服务时间", "rightCol" => "2018/10/29 14:51" ],
                        [ "leftCol" => "服务人员", "rightCol" => "百度App" ]
                    )
                )
            ),
            "dealTitle"     => $order[&#39;body&#39;],
            "dealSubTitle"  => $order[&#39;body&#39;],
            "dealThumbView" => "https://b.bdstatic.com/searchbox/icms/searchbox/img/swan-logo.png",
        ),
        "orderDetailData"   => &#39;&#39;
    );
    $bdOrder = array(
        &#39;dealId&#39;        => $config[&#39;deal_id&#39;],
        &#39;appKey&#39;        => $config[&#39;app_key&#39;],
        &#39;totalAmount&#39;   => $order[&#39;total_amount&#39;],
        &#39;tpOrderId&#39;     => $order[&#39;order_sn&#39;],
        &#39;dealTitle&#39;     => $order[&#39;body&#39;],
        &#39;signFieldsRange&#39; => 1,
        &#39;rsaSign&#39;       => $rsaSign,
        &#39;bizInfo&#39;       => json_encode($bizInfo),
    );
    return $bdOrder;
}

Das obige ist der detaillierte Inhalt vonBaidu Payment (Baidu Smart Mini Program Payment) neu schreiben und kapseln. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:fengkui.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen