ホームページ バックエンド開発 PHPチュートリアル WeChat決済、個人向け法人アカウント決済、PHP導入

WeChat決済、個人向け法人アカウント決済、PHP導入

Jun 23, 2016 pm 01:15 PM

はじめに: 流通業者の皆様、零細企業から現金を引き出すにはどうすればよいですか? WeChat で直接支払います。

実装は次のとおりです:

  • WeChat支払い構成
/*微信支付*/    'PAY_WEIXIN'                => array(        'appid'                 => 'xxx',        'appsecret'             => 'xxxxx',        'mchid'                 => '1283301801',                                                //商户号        'key'                   => 'zhudianbaodiandodozhudianbao0527',                          //商户支付秘钥        'apiclient_cert'        => 'Conf/cert/apiclient_cert.pem',                              //商户证书apiclient_cert.pem        'apiclient_key'         => 'Conf/cert/apiclient_key.pem',                               //商户证书apiclient_key.pem    )
ログイン後にコピー
  • arrayToXml

    /**   *     array转xml   */  function arrayToXml($arr)  {      $xml = "<xml>";      foreach ($arr as $key=>$val)      {          if (is_numeric($val))          {                 $xml.="<".$key.">".$val."</".$key.">";           }          else          $xml.="<".$key."><![CDATA[".$val."]]></".$key.">";        }      $xml.="</xml>";      return $xml;   }
    ログイン後にコピー
  • 証明書を使用して、ポストモードで対応するインターフェイスURLにxmlを送信します

/**    *     作用:使用证书,以post方式提交xml到对应的接口url    */    function postXmlSSLCurl($xml, $url, $second, $cert, $key)    {        $ch = curl_init();        //超时时间        curl_setopt($ch,CURLOPT_TIMEOUT,$second ? $second : $this->timeout);        //这里设置代理,如果有的话        //curl_setopt($ch,CURLOPT_PROXY, '8.8.8.8');        //curl_setopt($ch,CURLOPT_PROXYPORT, 8080);        curl_setopt($ch,CURLOPT_URL, $url);        curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);        curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);        //设置header        curl_setopt($ch,CURLOPT_HEADER,FALSE);        //要求结果为字符串且输出到屏幕上        curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE);        //设置证书        //使用证书:cert 与 key 分别属于两个.pem文件        //默认格式为PEM,可以注释        curl_setopt($ch,CURLOPT_SSLCERTTYPE,'PEM');        curl_setopt($ch,CURLOPT_SSLCERT,$cert);        //默认格式为PEM,可以注释        curl_setopt($ch,CURLOPT_SSLKEYTYPE,'PEM');        curl_setopt($ch,CURLOPT_SSLKEY, $key);        //post提交方式        curl_setopt($ch,CURLOPT_POST, true);        curl_setopt($ch,CURLOPT_POSTFIELDS,$xml);        $data = curl_exec($ch);        //返回结果        if($data){            curl_close($ch);            return $this->xmlToArray($data);        }        else {            $error = curl_errno($ch);            echo "curl出错,错误码:$error"."<br>";             curl_close($ch);            return false;        }    }
ログイン後にコピー
  • 企業が個人に報酬を支払う
//企业向个人付款    public function payToUser($params, $key, $apicent_cert, $apiclient_key) {        $url = 'https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers';        //检测必填参数        if($params["partner_trade_no"] == null) {   //            exit("退款申请接口中,缺少必填参数partner_trade_no!"."<br>");        }elseif($params["openid"] == null){            exit("退款申请接口中,缺少必填参数openid!"."<br>");        }elseif($params["check_name"] == null){             //NO_CHECK:不校验真实姓名 FORCE_CHECK:强校验真实姓名(未实名认证的用户会校验失败,无法转账)OPTION_CHECK:针对已实名认证的用户才校验真实姓名(未实名认证用户不校验,可以转账成功)            exit("退款申请接口中,缺少必填参数check_name!"."<br>");        }elseif(($params["check_name"] == 'FORCE_CHECK' or $params["check_name"] == 'OPTION_CHECK') && ($params["re_user_name"] == null)){  //收款用户真实姓名。            exit("退款申请接口中,缺少必填参数re_user_name!"."<br>");        }elseif($params["amount"] == null){            exit("退款申请接口中,缺少必填参数amount!"."<br>");        }elseif($params["desc"] == null){            exit("退款申请接口中,缺少必填参数desc!"."<br>");        }        $params["mch_appid"] = $this->appid;//公众账号ID        $params["mchid"] = $this->mchid;//商户号        $params["nonce_str"] = $this->createNoncestr();//随机字符串        $params['spbill_create_ip'] = $_SERVER['REMOTE_ADDR'] == '::1' ? '192.127.1.1' : $_SERVER['REMOTE_ADDR'];//获取IP        $params["sign"] = $this->getSign($params, $key);//签名        $xml = $this->arrayToXml($params);        return $this->postXmlSSLCurl($xml, $url, false, $apicent_cert, $apiclient_key);    }
ログイン後にコピー
  • 企業支払い
private function _enterprisePay($number, $member_id, $amount, $desc)    {        // 获取openid        $wxuser_id = M('Member')->where(array('id' => $member_id))->getField('wxuser_id');        $openid    = M('Wxuser')->where(array('id' => $wxuser_id))->getField('openid');        $pay = C('PAY_WEIXIN');        import('@.Action.WxDevelop');        $enterprise = new WxEnterprise($pay['appid'], $pay['appsecret'], $pay['mchid']);        $params = array(            'partner_trade_no' => $number,            'openid' => $openid,            'check_name' => 'NO_CHECK',            'amount' => $amount, // 总计            'desc' => $desc,        );        $result = $enterprise->payToUser($params, $pay['key'], $pay['apiclient_cert'], $pay['apiclient_key']);        return $result;    }
ログイン後にコピー
  • ディストリビューター現金引き出し処理
private function _handle($truename, $price) { // 处理分销商提现        $withdrawid = date("ymdHis") . strval(rand(1000, 9999));        $data = array('withdrawid' => $withdrawid, 'store_id' => $this->store_id, 'member_id' => $this->member_id, 'truename' => $truename, 'price' => $price, 'addtime' => time());        //免审核        if ($price >= C('withdraw_uncheck_value')) {            $data['need_check'] = 0;            $data['status'] = 1;            if ($this->withdrawModel->add($data)) {                $result = $this->_enterprisePay($withdrawid, $this->member_id, $price * 100, '分销商(' . $truename . ')提现');                //遇到支付信息出错,转为需审核提现                if ($result['return_code'] != 'SUCCESS') {                    $this->withdrawModel->where(array('withdrawid' => $withdrawid))->save(array('need_check' => 1, 'status' => 0));                    $this->assign('success', 2);                }                else {                    //设置微信交易号                    $this->withdrawModel->where(array('withdrawid' => $withdrawid))->save(array('payment_no' => $result['payment_no']));                    //增加佣金流水,待修复                    $data = array('store_id' => $this->store_id, 'user_type' => 2, 'user_id' => $this->shop_id, 'trade_type' => 2, 'trade_no' => $withdrawid, 'price' => -$price, 'status'=> 1,  'message' => $truename.'提现', 'addtime' => time());                    M('Twitter_log')->add($data);                    //减少相应可提佣金                    M('Member')->where(array('id' => $this->member_id))->setInc('money', -$price);                    $this->assign('success', 1);                    //发送佣金变动消息                    import('@.Action.Tmplmsg');                    $tmplmsg = new Tmplmsg();                    $tmplmsg->send(Tmplmsg::PRICE_CHANGE, $this->member_id, array('token' => $this->token, 'intro' => '分销佣金提现转出', 'price' => $price, 'business' => BUSINESS));                }            }            else {                $this->error('提现信息错误!');            }        }        //需要审核        else {            $this->withdrawModel->add($data);            $this->assign('success' , 2);        }    }
ログイン後にコピー

企業がユーザーに支払う機能を提供し、企業が API インターフェイスを介して支払うことをサポートしたり、WeChat 支払いマーチャント プラットフォーム Web ページ機能を介して支払いを操作したりできます。

注意事項: ◆ 同じ実名ユーザーへの支払いの場合、1 日あたりの 1 回の制限は 2W/2W です。 ◆ 同じ非実名ユーザーへの支払いの場合、1 回の 1 日あたりの制限は 2000/2000 です。 ◆ 合計支払い制限1 つの加盟店の同日の使用量は 100W ◆ 加盟店アカウントに紐付けられている APPID のみ対応 ◆ 対象決済利用者については、WeChat Pay 実名認証で認証された利用者が実名認証機能を提供可能実名で認証されていないユーザーは、自身のビジネスのセキュリティ レベルに応じて認証を選択できます。支払済みレコードを使用すると、企業は企業支払クエリを通じて対応するデータを表示できます。

到着すると、支払い資金が対象ユーザーの小銭(WeChat-Me-Wallet-Change)に入金されます。 WeChat Pay は、お釣りがアカウントに入金されたことを通知し、お釣りの受領書と支出の詳細には対応する記録が表示されます。

警告: 変更アカウントのない過去のクライアント バージョンの場合、資金はユーザーの赤い封筒アカウントに入力されます。WeChat Pay からユーザーに通知するメッセージはなく、企業は独自にユーザーに連絡することを選択できます。

インターフェースリンク: https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers

証明書リクエストが必要かどうかには、双方向証明書が必要です。

データの例:

<xml><mch_appid>wxe062425f740c30d8</mch_appid><mchid>10000098</mchid><nonce_str>3PG2J4ILTKCH16CQ2502SI8ZNMTM67VS</nonce_str><partner_trade_no>100000982014120919616</partner_trade_no><openid>ohO4Gt7wVPxIT1A9GjFaMYMiZY1s</openid><check_name>OPTION_CHECK</check_name><re_user_name>张三</re_user_name><amount>100</amount><desc>节日快乐!</desc><spbill_create_ip>10.2.3.10</spbill_create_ip><sign>C97BDBACF37622775366F38B629F45E3</sign></xml>
ログイン後にコピー

成功の例:

<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[]]></return_msg><mch_appid><![CDATA[wxec38b8ff840bd989]]></mch_appid><mchid><![CDATA[10013274]]></mchid><device_info><![CDATA[]]></device_info><nonce_str><![CDATA[lxuDzMnRjpcXzxLx0q]]></nonce_str><result_code><![CDATA[SUCCESS]]></result_code><partner_trade_no><![CDATA[10013574201505191526582441]]></partner_trade_no><payment_no><![CDATA[1000018301201505190181489473]]></payment_no><payment_time><![CDATA[2015-05-19 15:26:59]]></payment_time></xml>
ログイン後にコピー

エラーの例:

<xml><return_code><![CDATA[FAIL]]></return_code><return_msg><![CDATA[系统繁忙,请稍后再试.]]></return_msg><result_code><![CDATA[FAIL]]></result_code><err_code><![CDATA[SYSTEMERROR]]></err_code><err_code_des><![CDATA[系统繁忙,请稍后再试.]]></err_code_des></xml>
ログイン後にコピー

参考: https://pay.weixin.qq.com/wiki/doc/api/mch_pay.php?chapter=14_2

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

WeChat 支払いのパスワードを忘れた場合、どのように取得すればよいですか? WeChat 支払いのパスワードを忘れた場合、どのように取得すればよいですか? Feb 23, 2024 pm 09:40 PM

WeChat では、ユーザーは支払いパスワードを入力して購入できますが、支払いパスワードを忘れた場合はどうすればよいでしょうか?ユーザーが支払いパスワードを忘れた場合は、[マイサービス] - [ウォレット] - [支払い設定] - に移動して支払いパスワードを回復する必要があります。決済パスワードを忘れた場合の確認方法については、具体的な操作方法を以下で詳しくご紹介しますので、ぜひご覧ください。 WeChat の使い方チュートリアル. WeChat の支払いパスワードを忘れた場合、どのように確認しますか? 回答: マイサービス - ウォレット - 支払い設定 - 支払いパスワードを忘れた場合 具体的な方法: 1. まず、[マイ] をクリックします。 2. 中のサービスをクリックします。 3. 内部のウォレットをクリックします。 4. 支払い設定を見つけます。 5. 「支払いパスワードを忘れた場合」をクリックします。 6. 確認のために自分の情報を入力します。 7. 次に、新しい支払いパスワードを入力して変更します。

WeChat 支払いのパスワードを忘れた場合はどうすればよいですか? WeChat 支払いのパスワードを忘れた場合はどうすればよいですか? Jan 08, 2024 pm 05:02 PM

WeChat 支払いパスワードを忘れた場合の解決策: 1. WeChat アプリを開き、右下隅の「I」をクリックしてパーソナル センター ページに入ります; 2. パーソナル センター ページで、「支払う」をクリックして支払いページに入ります; 3.支払いページで、右上隅の「...」をクリックして支払い管理ページに入ります; 4. 支払い管理ページで、「支払いパスワードを忘れた場合」を見つけてクリックします; 5. ページの指示に従って、個人情報を入力します。本人確認が完了すると、「顔をスワイプして取得する」または「キャッシュカード情報を認証して取得する」方法からパスワードなどを取得することができます。

Meituan Takeout の WeChat 支払いの設定方法 WeChat 支払いの設定方法 Meituan Takeout の WeChat 支払いの設定方法 WeChat 支払いの設定方法 Mar 12, 2024 pm 10:34 PM

Meituan テイクアウト アプリには多くの食品や軽食の店があり、すべての携帯電話ユーザーは自分のアカウントを通じてログインします。個人の配達先住所と連絡先番号を追加して、最も便利なテイクアウト サービスをお楽しみください。ソフトウェアのホームページを開き、製品キーワードを入力し、オンラインで検索すると、対応する製品の結果が表示されます。上下にスワイプするだけで購入して注文できます。また、プラットフォームは、配達先住所に基づいて、レビューの高い近くの数十のレストランを推奨しますユーザーが提供する. ストアはさまざまな支払い方法も設定できます. ワンクリックで注文を完了できます. ライダーはすぐに配達を手配でき、配達速度は非常に速いです. テイクアウト用の赤い封筒もあります. Meituan のテイクアウト ユーザー向けにエディターがオンラインで詳細に表示され、WeChat 支払いの設定方法を説明します。 1. 製品を選択した後、注文を送信し、[今すぐ] をクリックします。

WeChat決済の引き落とし順序を設定する方法 WeChat決済の引き落とし順序を設定する方法 Sep 06, 2023 am 11:11 AM

WeChat 支払いの控除順序を設定する手順: 1. WeChat APP を開き、「Me」インターフェースをクリックし、「サービス」をクリックして、「収集と支払い」をクリックします。 2. 「優先使用」をクリックします。回収および支払いインターフェイスの支払いコードの下にある「支払い方法」; 3. 必要な支払い方法を選択します。

Xianyu は WeChat で支払うことができますか? WeChat 支払い方法に変更するにはどうすればよいですか? Xianyu は WeChat で支払うことができますか? WeChat 支払い方法に変更するにはどうすればよいですか? Mar 12, 2024 pm 12:19 PM

誰もが何もすることがないとき、Xianyuプラットフォームを閲覧することを選択します.このプラットフォームには多数の製品があることがわかり、誰もがさまざまな中古製品を見ることができます.これらの製品は中古品ですが、商品の品質には全く問題はございませんので、どなたでも安心してご購入いただけますし、価格も非常にお手頃でありながら、どなたでも気軽に商品を手に取ることができます。コミュニケーションをとり、価格交渉を行います。全員が適切に交渉している限り、取引を行うことを選択できます。ここで全員が支払いをするときに、WeChat 支払いをしたいのですが、プラットフォームでは許可されていないようです。編集者をフォローしてください。具体的にどのような状況なのかを知るためです。項羽

Alibaba で WeChat で支払う方法_Alibaba で WeChat で支払う方法 1688 Alibaba で WeChat で支払う方法_Alibaba で WeChat で支払う方法 1688 Mar 20, 2024 pm 05:51 PM

Alibaba 1688 は仕入れと卸売りのサイトで、商品の価格はタオバオよりもはるかに安いです。では、アリババはどのようにして WeChat 決済を利用しているのでしょうか?編集者は、あなたと共有するためにいくつかの関連コンテンツをまとめました。必要としている友人は、見に来てください。アリババはどのように WeChat 決済を使用していますか? 回答: 当面の間、WeChat 決済はご利用いただけません; 1. 商品を購入するページで [支払い方法の変更] をクリックします。 2. ポップアップ ページで [支払い方法の変更] をクリックするだけです。 [Alipay、段階的支払い]、レジ係] を選択できます。

WeChat Pay で返金を申請する手順を共有する WeChat Pay で返金を申請する手順を共有する Mar 25, 2024 pm 06:31 PM

1. まず、携帯電話で WeChat アプリを開き、クリックして WeChat アカウントにログインし、WeChat ホームページに入ります。 2. WeChat ホームページの右下隅にある [自分] ボタンをクリックし、[支払い] オプションを選択して、支払いページに入ります。 3. [Payment] ページに入ったら、[Wallet] オプションをクリックして入り、[Wallet] ページの右上隅にある [Bill] をクリックします。

WeChat 支払いは支払いが成功した後すぐにキャンセルできますか? WeChat 支払いは支払いが成功した後すぐにキャンセルできますか? Nov 29, 2023 pm 02:19 PM

WeChat 支払いは、支払いが成功した後すぐにキャンセルすることはできません。返金は通常、次の条件を満たす必要があります: 1. 販売者の返金ポリシー 販売者は、返金期間、返金金額、返金方法を含む独自の返金ポリシーを策定します; 2. 支払時期、返金には通常、一定の期間内に適用する必要があります。 3. 商品またはサービスのステータス ユーザーが商品を受け取った、またはサービスを享受した場合、販売者はユーザーに商品の返品または対応する証拠の提出を要求する場合があります。プロセスなど

See all articles