注冊(cè)登錄

小程序支付功能開(kāi)通、支付流程等

2017-06-14
導(dǎo)讀:2017年6月14日,小程序支付功能開(kāi)通已經(jīng)是當(dāng)下最熱門的話題,下面將從多方面來(lái)談?wù)勑〕绦蛑Ц豆δ荛_(kāi)通、支付流程等相關(guān)的內(nèi)容。...

2017年6月14日,小程序支付功能開(kāi)通已經(jīng)是當(dāng)下最熱門的話題,下面將從多方面來(lái)談?wù)勑〕绦蛑Ц豆δ荛_(kāi)通、支付流程等相關(guān)的內(nèi)容。

6月14日消息,據(jù)彭博社報(bào)道,為了與新東家沃爾瑪(Walmart)融合得更加順暢,Jet.com(去年8月被沃爾瑪以33億美元收購(gòu))正計(jì)劃逐步剔除自己平臺(tái)上所售的Costco旗下品牌產(chǎn)品。

6月18日,永輝將在福州開(kāi)出第一家永輝生活店。值得注意的是,這也是永輝首家24小時(shí)營(yíng)業(yè)門店。據(jù)了解,這家24小時(shí)門店商品由永輝物流統(tǒng)一配送,沒(méi)有熟食但提供蔬菜水果以及冷凍冰鮮類商品。

支付步驟邏輯:

1. 小程序發(fā)起請(qǐng)求預(yù)支付

2. 服務(wù)端調(diào)用接口發(fā)起預(yù)支付信息

3. 微信小程序調(diào)起支付完成支付

 

1. 小程序發(fā)起請(qǐng)求預(yù)支付

小程序支付功能開(kāi)通、支付流程等

2. 服務(wù)端調(diào)用接口發(fā)起預(yù)支付信息

服務(wù)端接收到請(qǐng)求后,調(diào)用微信的api接口,調(diào)用成功會(huì)得到一個(gè)prepay_id 這個(gè)就是相當(dāng)于小程序的預(yù)支付id 過(guò)程中會(huì)生成簽名,按照官方文檔的實(shí)例參數(shù)生成即可,如果非必填可選擇不填,然后向 api 發(fā)送一個(gè)xml

參數(shù)講解官方文檔地址:https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=9_1eg:

 

<xml>

  <appid>wx2421b1c4370ec43b</appid>

  <attach>支付測(cè)試</attach>

  <body>JSAPI支付測(cè)試</body>

  <mch_id>10000100</mch_id>

  <detail><![CDATA[{ "goods_detail":[ { "goods_id":"iphone6s_16G", "wxpay_goods_id":"1001", "goods_name":"iPhone6s 16G", "quantity":1, "price":528800, "goods_category":"123456", "body":"蘋果手機(jī)" }, { "goods_id":"iphone6s_32G", "wxpay_goods_id":"1002", "goods_name":"iPhone6s 32G", "quantity":1, "price":608800, "goods_category":"123789", "body":"蘋果手機(jī)" } ] }]]></detail>

  <nonce_str>1add1a30ac87aa2db72f57a2375d8fec</nonce_str>

  <notify_url>[url]http://wxpay.wxutil.com/pub_v2/pay/notify.v2.php</notify_url>[/url]

  <openid>oUpF8uMuAJO_M2pxb1Q9zNjWeS6o</openid>

  <out_trade_no>1415659990</out_trade_no>

  <spbill_create_ip>14.23.150.211</spbill_create_ip>

  <total_fee>1</total_fee>

  <trade_type>JSAPI</trade_type>

  <sign>0CB01533B8C1EF103065174F50BCA001</sign>

</xml>

 

需要注意sign 生成方式和公眾號(hào)生成方式一致,下面是PHP生成簽名方法, 可根據(jù)不同的框架修改,記得修改 key

 

    /**

    * 生成簽名

    * @return 簽名,本函數(shù)不覆蓋sign成員變量,如要設(shè)置簽名需要調(diào)用SetSign方法賦值

    */

   public function MakeSign()

   {

       //簽名步驟一:按字典序排序參數(shù)

       ksort($this->_prepay);

       $string = $this->ToUrlParams();

       //簽名步驟二:在string后加入KEY

       $string = $string . "&key=".WxPayConfig::KEY;

       //簽名步驟三:MD5加密

       $string = md5($string);

       //簽名步驟四:所有字符轉(zhuǎn)為大寫

       $result = strtoupper($string);

       return $result;

   }

 

   /**

    * 格式化參數(shù)格式化成url參數(shù)

    */

   public function ToUrlParams()

   {

       $buff = "";

       foreach ($this->values as $k => $v)

       {

           if($k != "sign" && $v != "" && !is_array($v)){

               $buff .= $k . "=" . $v . "&";

           }

       }

 

       $buff = trim($buff, "&");

       return $buff;

   }

 

調(diào)用統(tǒng)一下單api

 

/**

    * 統(tǒng)一下單調(diào)取返回值

    * @return mixed

    * $output['return_code'] 狀態(tài)碼 SUCCESS/FAIL

    * $output['return_msg'] 返回信息,如非空,為錯(cuò)誤原因 簽名失敗 參數(shù)格式校驗(yàn)錯(cuò)誤

    * $output['time'] 當(dāng)前時(shí)間戳

    * $output['nonceStr'] 隨機(jī)字符串

    * $output['prepay_id'] 預(yù)支付id

    * $output['sign'] 簽名

    * */

   public function pay_place_order()

   {

       $xml = '<xml>

                  <appid>'.$this->_prepay['appid'].'</appid>

                  <body>'.$this->_prepay['body'].'</body>

                  <mch_id>'.$this->_prepay['mch_id'].'</mch_id>

                  <nonce_str>'.$this->_prepay['nonce_str'].'</nonce_str>

                  <notify_url>'.$this->_prepay['notify_url'].'</notify_url>

                  <openid>'.$this->_prepay['openid'].'</openid>

                  <out_trade_no>'.$this->_prepay['out_trade_no'].'</out_trade_no>

                  <spbill_create_ip>'.$this->_prepay['spbill_create_ip'].'</spbill_create_ip>

                  <total_fee>'.$this->_prepay['total_fee'].'</total_fee>

                  <trade_type>'.$this->_prepay['trade_type'].'</trade_type>

                  <sign>'.$this->MakeSign().'</sign>

               </xml>';

//調(diào)用api,自定義對(duì)參數(shù)進(jìn)行處理,改請(qǐng)求方式是自定義方式

       $xml_result = post_request_https('https://api.mch.weixin.qq.com/pay/unifiedorder', $xml);

 

對(duì)返回的參數(shù)從新生成sign,得到一個(gè)新的sign,返回小程序

注意: 生成返回小程序簽的名參與生成的簽名的字段有下圖,記得拼接key ,使用的是調(diào)取api 返回的值

參數(shù)詳解:https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_7&index=3

3. 微信小程序調(diào)起支付完成支付

參數(shù)詳解:

https://mp.weixin.qq.com/debug/wxadoc/dev/api/api-pay.html?t=20161122

小程序支付功能開(kāi)通、支付流程等

注意: 支付成功后微信回調(diào)通知簽名驗(yàn)證,需要的參數(shù)是所有返回的參數(shù)字段除去sign字段,生成簽名 = 返回字段中的sign(簽名)

參數(shù)詳解:https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=9_7

小程序支付功能開(kāi)通、支付流程等

 

 

  • 小程序支付功能開(kāi)通、支付流程等

    微信小程序商城系統(tǒng)開(kāi)發(fā)其實(shí)很簡(jiǎn)單

    微信小程序商城系統(tǒng)開(kāi)發(fā)其實(shí)很簡(jiǎn)單,只需要五步就可以完成,整個(gè)過(guò)程包括開(kāi)發(fā)、上線、發(fā)布都可以輕松搞定...詳情

  • 小程序支付功能開(kāi)通、支付流程等

    微信小程序商城系統(tǒng)免費(fèi)注冊(cè)體驗(yàn)

    微信小程序商城系統(tǒng)免費(fèi)注冊(cè)體驗(yàn),接下來(lái)是微信小程序的時(shí)代,這一波紅利在不抓住互聯(lián)網(wǎng)就再也沒(méi)什么機(jī)會(huì)了...詳情

想了解更多微信小程序開(kāi)發(fā)和微信小程序大全都可以進(jìn)入微信小程序商城系統(tǒng)開(kāi)發(fā)了解。

重磅推薦:小程序開(kāi)店目錄

第一部分:小商店是什么

第二部分:如何開(kāi)通一個(gè)小商店

第三部分:如何登錄小商店

第四部分:開(kāi)店任務(wù)常見(jiàn)問(wèn)題

第五部分:小商店可以賣什么

第六部分:HiShop小程序特色功能

第七部分:小程序直播

第八部分:小程序收貨/物流

第九部分:小程序怎么結(jié)算

第十部分:小程序客服

第十一部分:電商創(chuàng)業(yè)

第十二部分:小程序游戲開(kāi)發(fā)

電話咨詢 微信咨詢 預(yù)約演示 0元開(kāi)店