首页
美图
服务
付费
树洞
云主机
推荐
邻居
支付
开发
书单
更多
我的足迹
罗盘时钟
圈小猫
工作打分
给我留言
本站统计
推荐
M商城
欣悦云店
txt阅读器
VPS监控
证书监控
网址导航
在线工具
Search
1
docker和docker-compose一键安装脚本
8,807 阅读
2
采用Prometheus+Grafana 监控H3C交换机状态
7,489 阅读
3
WooCommerce对接第三方支付插件开发
6,081 阅读
4
docker下运行grafana和grafana Image Renderer
5,160 阅读
5
服务器(vps)性能测试脚本汇总
4,999 阅读
大模型
虚拟化
数据库
运维
基础知识
监控预警
数据展示
运维工具
web安全
系统服务
开发
python
php
java
shell
go
项目
博客
电商
工具
娱乐
综合
VPS相关
规范文档
知识总结
经验分享
读书笔记
关于
Search
标签搜索
django
python
支付对接
运维工具
电商平台
Joe主题
docker
wordpress
woocommerce
支付通道
zabbix
蓝鲸智云
运维
grafana
监控
运维知识
typecho
php
mysql
nginx
行云流水
累计撰写
329
篇文章
累计收到
385
条评论
首页
栏目
大模型
虚拟化
数据库
运维
基础知识
监控预警
数据展示
运维工具
web安全
系统服务
开发
python
php
java
shell
go
项目
博客
电商
工具
娱乐
综合
VPS相关
规范文档
知识总结
经验分享
读书笔记
关于
页面
美图
服务
树洞
云主机
邻居
支付
书单
给我留言
本站统计
推荐
M商城
txt阅读器
网址导航
搜索到
329
篇与
的结果
2023-12-20
woocommerce对接第三方支付通道hambit
前言用wordpress+woocommerce做跨境独立站的朋友为了顺利收款,会对接各种国外的本地收款渠道。主流的用paypal等,不过通道越大。合规查的越严,小众的一些三方或四方通道,限制也会小一点。本文分享巴西通道hambit的对接过程。{card-default label="订单页" width="75%"}{/card-default}接口文档地址对接流程一般都是申请通道账号,根据接口文档开发插件,然后测试调试,通过后上线。{card-default label="流程" width="80%"}{/card-default}核心代码组织获取支付url的参数 $Body = array( "amount" => $amount, "channelType" => "PIX", "externalOrderId" => $mref, "notifyUrl" => $notify_url, "remark" => "USER", "returnUrl" => $return_url, "inputCpf" => 0 ); $sign_arr = $Body; $sign_arr['access_key'] = $AccessKey; $sign_arr['timestamp'] = $timestamp; $sign_arr['nonce'] = $uuid_str; $sign_str = $this->get_sign($sign_arr, $this->hambit_secret_key); //请求头 $Headers = array( 'Content-Type' => 'application/json;charset=utf-8', 'access_key' => $AccessKey, 'timestamp' => $timestamp, 'nonce' => $uuid_str, 'sign' => $sign_str );提交参数,获取url $req_api = $this->req_api.'/api/v3/bra/createCollectingOrder'; $postData = json_encode($Body); //打印参数 error_log(__METHOD__ . PHP_EOL .print_r($Body, true)); $args = array( 'headers' => $Headers, 'timeout' => 45, 'redirection' => 5, 'httpversion' => '1.0', 'blocking' => true, 'body' => $postData, ); // 提交参数 $postRequest = wp_remote_post($req_api, $args); if ($postRequest['response']['code'] === 200) { $result = json_decode($postRequest['body'], true); } else { error_log(__METHOD__ . PHP_EOL . 'Code:' . $postRequest['response']['code'] . PHP_EOL. ' Error:' . $postRequest['response']['message']); //抛出异常 throw new Exception("Unable to reach hambit Payments (" . $postRequest['response']['message'] . ")"); } error_log(__METHOD__ . PHP_EOL .print_r($result, true)); //结果处理 if (($result['code'] =='200') && ($result['msgEn'] =='SUCCESS')) { //写入数据库 $query = "insert into {$wpdb->prefix}hambit_data (mref, order_id, total_cost, currency, order_state, timestamp) values ('".$mref."', '". $order_id . "',".$amount.",'". $currency_code."','I', now())"; $wpdb->query($query); //支付链接 $PayUrl = $result['data']['cashierUrl']; //跳转payurl return array( 'result' => 'success', 'redirect' => $PayUrl ); } else { error_log(__METHOD__ .PHP_EOL. print_r($result, true)); throw new Exception("Unable to redirect payurl (" . $result['msg'] . ")"); }支付成功后异步处理 if (($_SERVER['REQUEST_METHOD'] === 'POST') && preg_match("/wc_hambit_notify/i", $_SERVER['REQUEST_URI'])) { //接收post json的数据 $response = file_get_contents("php://input"); error_log(__METHOD__ . PHP_EOL .print_r($response, true)); //参数 $respj = json_decode($response, true, 512, JSON_BIGINT_AS_STRING); //判断 if ($respj['orderStatus'] == 'Completed') { #订单号 $mref = $respj['externalOrderId']; $sref = $respj['orderId']; #写入数据库 $query = "update {$wpdb->prefix}hambit_data set order_state = 'C' where mref = '".addslashes($mref)."'"; $wpdb->query($query); #后续处理 $check_query = $wpdb->get_results("SELECT order_id FROM {$wpdb->prefix}hambit_data WHERE mref = '".addslashes($mref)."'", ARRAY_A); $check_query_count = count($check_query); if($check_query_count >= 1){ $order_id= $check_query[0]['order_id']; $order = new WC_Order($order_id); $statustr = $this->hambit_processing; $order->update_status($statustr, __('Order has been paid by ID: ' . $sref, 'hambit-for-woocommerce')); wc_reduce_stock_levels( $order->get_id() ); add_post_meta( $order_id, '_paid_date', current_time('mysql'), true ); update_post_meta( $order_id, '_transaction_id', wc_clean($order_id) ); $order->payment_complete(wc_clean($order_id)); $woocommerce->cart->empty_cart(); } } //接口返回 $return_resp = array( "code" => 200, "success" => true ); $jsonResponse = json_encode($return_resp); exit($jsonResponse); }项目完整代码【支付插件】woocommerce对接第三方支付接口hambit
2023年12月20日
550 阅读
0 评论
0 点赞
2023-09-27
第三方支付接口nicepay对接过程总结
第三方支付接口nicepay是印度的一个聚合支付接口。对接过程采用一下流程,组织参数->签名->提交->处理返回->跳转支付链接->支付->处理异步和同步返回。
2023年09月27日
624 阅读
0 评论
0 点赞
2023-09-15
硅云香港vps测试报告
硅云香港节点的vps测试报告,在实际使用的过程中网络很卡。用docker的过程中,网络莫名奇妙的不通,感觉有限制。
2023年09月15日
1,035 阅读
0 评论
0 点赞
2023-09-13
第三方支付HKPay接口对接过程要点总结
HKPay是香港的一条支付通道,可用于外贸独立站做境外电商收款。
2023年09月13日
1,584 阅读
0 评论
0 点赞
2023-08-29
idcmonitor失效功能更新
一个系统只有经常维护,才能保证各个功能的正常。这么久过去了,一些功能失效。有的是调用的接口更新了。花了几天时间,再次调试完成。同时优化了一些细节。
2023年08月29日
588 阅读
0 评论
0 点赞
2023-08-25
Django后台列表的自定义过滤条件显示
Django后台列表的自定义过滤条件显示,记录太多。只显示有用的信息。
2023年08月25日
442 阅读
0 评论
0 点赞
2023-08-25
Django的celery通过配置添加周期性任务
以前都是通过函数,动态添加周期性任务。新的项目比较简单。直接在项目启动时加载周期性任务,加载后也不变动。
2023年08月25日
327 阅读
0 评论
0 点赞
2023-08-08
Django之图片上传与展示
之前开发的系统需要用户自己上传截图用于审核,记录一下Django从前端接收图片到后台保存处理展示的整个过程
2023年08月08日
648 阅读
0 评论
0 点赞
2023-08-06
wordpress通过代码发布文章的核心代码
上篇文章分享了woocommerce通过代码添加商品的核心代码,稍微变通一下。woocommerce是wordpress下一款优秀的开源电商主题。那么其他主题可以使用吗?稍微修改了一下,用来自动发布wordpress文章。
2023年08月06日
708 阅读
0 评论
0 点赞
2023-08-05
Django模版函数用法
Django使用模板渲染数据,返回的数据有时候需要处理。用到了templatetags模版函数,记录使用方法。
2023年08月05日
546 阅读
0 评论
0 点赞
1
...
3
4
5
...
33