Mit der rasanten Entwicklung des mobilen Internets spielt das elektronische Bezahlen eine immer wichtigere Rolle im modernen Leben. Alipay und WeChat Pay sind zu einem der wichtigsten elektronischen Zahlungsmittel in der modernen Gesellschaft geworden. Damit Webanwendungen Alipay- und WeChat-Zahlungen reibungslos abwickeln können, wird in diesem Artikel erläutert, wie ThinkPHP 6 für Alipay- und WeChat-Zahlungsvorgänge verwendet wird.
1. Relevante Bibliotheksdateien einführen
Bevor Sie ThinkPHP6 für Alipay- und WeChat-Zahlungen verwenden, müssen Sie zunächst relevante Bibliotheksdateien einführen. Ich gehe hier davon aus, dass Sie Composer installiert haben, und verwenden Sie dann den folgenden Befehl in der Konsole, um die relevanten Bibliotheksdateien zu installieren:
composer require alipay/easysdk
composer require wechatpay/wechatpay
composer require guzzlehttp/guzzle
Darunter ist alipay/easysdk das Alipay-Entwicklungskit, wechatpay/wechatpay ist das WeChat-SDK für die offene Plattform , guzzlehttp/guzzle Ist eine PHP-Bibliothek zum Senden von HTTP-Anfragen an die API.
2. Alipay-Zahlungsvorgang:
Erstellen Sie die zu bezahlenden Bestellinformationen.use AlipayEasySDKFactory; class AlipayController extends Controller { public function index() { $config = [ 'app_id' => 'your-app-id', 'private_key' => 'your-private-key', 'public_key' => 'your-public-key', 'log' => [ 'file' => './alipay/easy.log', 'level' => 'debug', ], 'notify_url' => 'http://yourwebsite.com/notify', 'return_url' => 'http://yourwebsite.com/return' ]; $app = Factory::create('payment', $config); $order = [ 'out_trade_no' => date('YmdHis'), 'total_amount' => 0.01, 'subject' => 'test', ]; $url = $app->order->page($order, 'http://yourwebsite.com/return'); return $url; } }
Informationen zur Vorauszahlungsbestellung vom WeChat-Server anfordern;
Die vom WeChat-Server zurückgegebene prepay_id abrufen und die Signatur der Bestellung generieren (bitte). Beachten Sie, dass die Signaturreihenfolge in Ordnung ist. Für appid, mch_id, nonce_str, prepay_id, trade_type, key);
use WechatPayGuzzleMiddlewareUtilPemUtil; use WechatPayNotifyPaidNotify; use WechatPayOpenAPIV3PayAppPayClient; use WechatPayOpenAPIV3PayJsPayClient; class WechatController extends Controller { public function index() { $merchantId = 'your-mchid'; $merchantSerialNumber = 'your-serial'; $merchantPrivateKey = PemUtil::loadPrivateKey('./cert/apiclient_key.pem'); $wechatpayCertificate = PemUtil::loadCertificate('./cert/wechatpay_certificate.pem'); $apiV3Key = 'your-key'; $client = new JsPayClient( $merchantId, $merchantSerialNumber, $merchantPrivateKey, $wechatpayCertificate, $apiV3Key ); $params = [ 'body' => 'testbody', 'out_trade_no' => date('YmdHis'), 'app_id' => 'your-app-id', 'notify_url' => 'http://yourwebsite.com/wechat_notify', 'amount' => [ 'total' => 1, ], 'description' => 'test_description', ]; $result = $client->prepare($params); $prepayId = $result['prepay_id']; $appClient = new AppPayClient( $merchantId, $merchantSerialNumber, $merchantPrivateKey, $wechatpayCertificate, $apiV3Key ); $packageParams = [ 'prepay_id' => $prepayId, 'trade_type' => 'JSAPI', 'timeStamp' => strval(time()), 'nonceStr' => md5(bin2hex(openssl_random_pseudo_bytes(16))), ]; $packageParams['sign'] = $appClient->sign($packageParams); return json_encode($packageParams); } }
Das obige ist der detaillierte Inhalt vonWie verwende ich ThinkPHP6 für Alipay- und WeChat-Zahlungsvorgänge?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!