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

藏色散人
Freigeben: 2021-09-12 16:16:50
nach vorne
2772 Leute haben es durchsucht

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'    => '', // 支付回调地址
);
Nach dem Login kopieren

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
Nach dem Login kopieren

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;
}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:fengkui.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!