微信支付

微信支付是集成在中国流行的超级应用微信中的数字钱包。多年来,微信支付作为企业与国内外中国消费者建立联系的重要支付解决方案,已获得了显著的地位。微信已转变为一个综合生态系统,为中国购物者提供了聊天、浏览产品或服务以及在统一平台内无缝支付的便利。这种整合使购物体验变得轻松自如,就像与同伴在一个地方进行友好交谈一样。

特点 #

客户所在地中国消费者
海外华人
中国游客
处理货币CNY, GBP, USD, EUR, HKD
结算货币英镑、欧元、美元、港元
最低交易金额无限制
最高交易金额50,000 美元
退款
部分退款
多次部分退款
扣款

次级产品 #

付款案例产品付款方案说明
QR 码网络支付在桌面浏览器上,选择微信支付作为商家结账的支付方式后,会出现一个二维码。然后,购物者打开手机上的微信应用程序,扫描浏览器页面上显示的条形码即可完成支付。
QR 码快速支付在销售点,商家可以在终端上显示二维码,顾客可以打开手机上的微信应用程序扫描二维码完成支付。
移动 H5 流量H5 付款在手机浏览器上,购物者在商家结账时选择微信支付作为支付方式,并从浏览器跳转到微信支付应用完成支付,然后再跳转回商家浏览器。
手机 - 在微信小程序中官方账户商家可以考虑在微信社交网站上建立一个个人主页,提示购物者在微信社交网站环境中选择产品并完成支付。
手机 - 在微信小程序中迷你计划小程序是对官方账户的另一种创新,它就像微信社交网站中的一个网站,商家可以在其中进行更多定制,购物者可以在该环境中选择产品并完成支付。

付款流程 #

QR 码 #

pic_QR Code.png

移动 H5 流量 #

pic_Mobile H5 Flows.png

手机 - 在微信小程序中 #

pic_Mobile - In WeChat app.png

整合方法 #

付款方式枚举值: 微信支付

微信支付有两种集成方式

  1. 直接应用程序接口
  2. 跳转收银台
整合方法微信支付子产品终端类型枚举值
直接应用程序接口网络支付网络
直接应用程序接口快速支付扫描代码
直接应用程序接口H5 付款WAP
直接应用程序接口正式账户付款官方账户
直接应用程序接口迷你计划迷你程序
整合方法微信支付子产品终端类型枚举值
跳转收银台网络支付结账时无需识别终端类型。结账时,系统会根据用户的设备自动生成二维码或重定向到微信应用程序。
跳转收银台H5 付款结账时无需识别终端类型。结账时,系统会根据用户的设备自动生成二维码或重定向到微信应用程序。

直接应用程序接口 #

PaymentIntent 是一个对象,代表您向客户收款的意图,并跟踪付款流程的生命周期。在服务器上创建 PaymentIntent,并指定收款金额和支持的货币。

创建 PaymentIntent #

要直接集成 API,只需一步即可创建 PaymentIntent 并获取 url。以下是创建付款意图的演示:

  1. 网络支付
  2. H5 付款
  3. 快速支付
  4. 正式账户付款

网络支付 #

要求

{
    "金额":20、
    "货币": "人民币
    "确认":true、
    "付款方式":{
        "微信支付":{
            "terminal_type": "WEB"、
            "os_type": "IOS"、
            "client_ip":"192.168.0.1"
            }
    },
    "付款方式":{
        "类型": "微信支付
    },
"return_url": "https://wooshpay.com"
}

回应

{
    "id":"pi_1666625039547498496",
    "对象":"payment_intent"、
    "创建":1686189348000,
    "livemode": false、
    "currency":"CNY"、
    "金额":20,
    "status":"requires_action"、
    "client_secret": "pi_1666625039547498496_secret_qGj2VEg4khXSWkXvRI7Y3yZe",
    "next_action":{
        "type":"wechat_pay_display_qr_code"、
        "wechat_pay_display_qr_code":{
            "image_data_url":"weixin://wxpay/bizpayurl?pr=lJhTByDzz"。
        }
    },
    "payment_method_types":[
        "wechat_pay"、
    ],
    "确认方式":"自动"、
    "付款方式选项":{
        "微信支付": {{
            "terminal_type":"WEB"、
            "os_type":"IOS"、
            "client_ip":"192.168.0.1"
        }
    },
    "return_url":"https://wooshpay.com"、
    "payment_method":"pm_1666625039430057984",
    "capture_method":自动
}

The 图像数据URL微信支付显示 QR 代码下一个行动 可以打开,从链接中,商家可以生成相应的二维码。然后使用相应的二维码进行收费。

H5 付款 #

要求

{
    "金额":20,
    "货币":"CNY"、
    "确认": true、
    "payment_method_options":{
        "微信支付":{
            "terminal_type":"WAP"、
            "client_ip":"192.168.124.133" //客户手机的 IP 地址
        }
    },
    "payment_method_data":{
        "type":"微信支付"
    },
    "return_url":"您的网站"
}

回应

{
    "id": "pi_1666625208749916160",
    "object": "payment_intent",
    "created": 1686189389000,
    "livemode": false,
    "currency": "CNY",
    "amount": 20,
    "status": "requires_action",
    "client_secret": "pi_1666625208749916160_secret_BeEXcbvAQNUkrV9C6ZFjOamS",
    "next_action": {
        "type": "wechat_pay_redirect_to_web",
        "wechat_pay_redirect_to_web": {
            "url": "https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx08095629694611f41b32df91d6ea160000&package=3449031350&redirect_url=https%3A%2F%2Fwooshpay.com"
        }
    },
    "payment_method_types": [
        "wechat_pay"
    ],
    "confirmation_method": "automatic",
    "payment_method_options": {
        "wechat_pay": {
            "terminal_type": "WAP",
            "os_type": "IOS",
            "client_ip": "172.31.5.62"
        }
    },
    "return_url": "https://wooshpay.com",
    "payment_method": "pm_1666625208624087040",
    "capture_method": "automatic"
}

The 网址微信支付重定向到网络下一个行动 可以打开,从链接中,客户将直接进入微信 APP 进行支付,并直接到 return_url 付款后。

快速支付 #

要求

{
    "金额":10、
    "货币": "人民币
    "确认":true、
    "付款方式":{
        "微信支付":{
            "terminal_type": "SCAN_CODE"、
            "os_type": "IOS"、
            "client_ip":"192.168.0.1"
            }
    },
    "付款方式":{
        "type": "wechat_pay"、
        "微信支付":{
            "payment_code":"132993614656096754"
        }
    },
    "return_url": "https://yourweb.com"。
}

回应

{
    "id":"pi_1666627489012645888",
    "对象":"payment_intent"、
    "创建":1686189932000,
    "livemode": false、
    "货币":"CNY"、
    "金额":10,
    "status":"requires_action"、
    "client_secret": "pi_1666627489012645888_secret_t6oeKYYGb9egt3koNMsntfSg",
    "payment_method_types":[
        "微信支付
    ],
    "确认方式"自动"、
    "付款方式选项":{
        "微信支付": {{
            "terminal_type":"SCAN_CODE"、
            "os_type":"IOS"、
            "client_ip":"192.168.0.1"
        }
    },
    "return_url":"https://yourweb.com"、
    "payment_method":"pm_1666627488878428160",
    "capture_method":自动
}

免密码支付可以直接支付,否则客户需要在手机上输入密码、指纹等进行支付。

正式账户付款 #

要求

{
    "金额":20,
    "货币":"CNY"、
    "确认": true、
    "payment_method_options":{
        "微信支付":{
            "terminal_type":"official_account"、
            "客户端 IP"192.168.0.1",
            "openid":""
        }
    },
    "payment_method_data":{
        "type":"微信支付
    }
}

回应

{
    "id":"pi_1666626536515567616",
    "对象":"payment_intent"、
    "创建":1686189705000,
    "livemode": false、
    "currency":"CNY"、
    "金额":20,
    "status":"requires_payment_method"、
    "client_secret": "pi_1666626536515567616_secret_CcrukFKgxbPp7UEAxodLlNRD",
    "last_payment_error":{
        "代码":"payment_method_provider_decline"、
        "信息":"服务错误。请重试。"、
        "付款方式":{
            "id":"pm_1666626536389738496",
            "对象":"payment_method"、
            "创建":1686189705000,
            "livemode": false、
            "类型":"微信支付"、
            "账单详情":{}
        },
        "decline_code":"invalid_request_error" }.
    },
    "付款方式类型":[
        "微信支付
    ],
    "确认方式":"自动"、
    "付款方式选项":{
        "微信支付": {{
            "openid":"",
            "终端类型":"official_account"、
            "client_ip":"192.168.0.1"
        }
    },
    "付款方式":"pm_1666626536389738496",
    "捕获方法":"自动" }
}

微信支付官方账户参数下一个行动 包含一些需要在前端使用的参数。下面举例说明如何使用这些参数。 js 范例

function onBridgeReady(){
 WeixinJSBridge.invoke(
   'getBrandWCPayRequest', {
     "appId":"wx7a154c094f74e84f",      
     "timeStamp":"1682239457",        
     "nonceStr":"kLRl3fI6FiP8PXxNNAiytwuQBdoCWXvZ",     
     "package":"prepay_id=wx23164417189051acf8825c57d275230000",     
     "signType":"MD5",     
     "paySign":"703868ed93842f83c9dff4d80d0cad67"  
    },
    function(res){     
       if(res.err_msg == "get_brand_wcpay_request:ok" ) {}     // Using the above method to judge the front-end return, the WeChat team solemnly reminds: res.err_msg will return ok after the user's payment is successful, but it does not guarantee that it is absolutely reliable. 
       }
   ); 
}
if (typeof WeixinJSBridge == "undefined"){
   if( document.addEventListener ){
    document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);
   }else if (document.attachEvent){
    document.attachEvent('WeixinJSBridgeReady', onBridgeReady); 
    document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);
   }
}else{
   onBridgeReady();
} 

迷你计划 #

要求

{
    "金额":20,
    "currency":"GBP"、
    "确认": true、
    "payment_method_options":{
        "wechat_pay":{
            "terminal_type":"mini_program"、
            "client_ip":"192.168.0.1",
            "openid":"ojt**********QnCY"
        }
    },
    "payment_method_data":{
        "type":"微信支付
    }
}

回应

{
    "id":"pi_1684807723566235648",
    "对象":"payment_intent"、
    "创建":1690524438000,
    "livemode": true、
    "currency":"GBP"、
    "金额":20,
    "status":"requires_action"、
    "client_secret": "pi_1684807723566235648_secret_V3rhLjnidzwNnc7UomZJzzxc",
    "next_action":{
        "type":"wechat_pay_mini_program_params"、
        "wechat_pay_mini_program_params":{
            "appId":"***********",
            "timeStamp":"1690524439",
            "nonceStr":"VVdQaFzG9LjOSNyGNLFbt7NZAn2oE87z"、
            "signType":"MD5"MD5"、
            "paySign":"9d0a90a35935d71d7a0f5f33689030fe",
            "包":"prepay_id=wx281407195596079e2b5253415099630000"
        }
    },
    "payment_method_types":[
        "wechat_pay"、
    ],
    "确认方式":"自动"、
    "付款方式选项":{
        "微信支付": {{
            "openid":"**********",
            "终端类型":"mini_program"、
            "client_ip":"192.168.0.1"
        }
    },
    "付款方式":"pm_1684807723448795136",
    "capture_method":"自动" }
}

跳转收银台 #

您也可以通过 WooshPay 托管的结账使用微信支付。要支持支付,结账会话必须满足以下所有条件:

  • 所有项目的价格必须使用相同的货币。如果有不同货币的项目,请为每种货币创建单独的结账会话。
  • 只能使用一次性细列项目。

启用微信支付作为付款方式

创建新的结账会话时,您需要

将微信支付添加到 付款方式类型.确保所有 行项目 使用相同的货币。

创建会话 #

要求

{
    "cancel_url":"https://wooshpay.com"、
    "模式":"付款"、
    "success_url":"https://wooshpay.com"、
    "付款方式":[
        "微信支付
    ],
    "项目":[
        {
            "价格数据{
                "currency":"CNY"、
                "unit_amount":100,
                "product_data":{
                    "名称":"fengli"、
                    "url":"www.baidu.com"
                }
            },
            "数量":1
        }
    ]
}

回应

{
    "id":"cs_1666627733867724800",
    "对象":"checkout.session"、
    "创建":1686189991000,
    "livemode": false、
    "currency":"CNY"、
    "客户":"",
    "模式":"付款"、
    "状态":"open"、
    "url":"https://checkouttest.wooshpay.com/pay/cs_test_1666627733867724800?key=pk_test_NTE1OTU5NzQ3NTQ2MTM5ODkzNzcxOktFZ0xlam1KbUxUb2gyUUNqWVVoaGpDSjE2NjkzNDUwMDgxMTE="、
    "cancel_url":"https://wooshpay.com"、
    "行项目":{
        "对象":"list"、
        "数据":[
            {
                "id":"li_1666627733993553920",
                "对象":"项目"、
                "货币":"CNY"、
                "描述":"fengli"、
                价格{
                    "id":"price_1666627734022914048",
                    "对象":"价格"、
                    "创建":1686189991000,
                    "livemode": false、
                    "active": true、
                    "货币":"CNY"、
                    "产品":{
                        "id":"prod_1666627734064857088",
                        "对象":"产品"、
                        "创建":1686189991000,
                        "livemode": false、
                        "active": true、
                        "名称":"fengli"、
                        "url":"www.baidu.com"、
                        "更新": true1686189991000
                    },
                    "类型":"one_time"、
                    "unit_amount":100,
                    "计费方式":"每单位"
                },
                "数量":1,
                "amount_subtotal": 100、
                金额小计": 100, "金额总计": 100
            }
        ]
    },
    "payment_intent":"pi_1666627734450733056",
    "付款方式类型":[
        "微信支付
    ],
    "付款状态"未支付"、
    "success_url":"":"https://wooshpay.com"、
    "amount_subtotal": 100、
    "amount_total": 100、
    "billing_address_collection":"auto"、
    "expires_at":1686276390865,
    "付款链接"",
    "client_secret": "pi_1666627734450733056_secret_jajX5Fe4Qlp6VGEm0ftP1wcZ"
}

您可以通过网址进入结账柜台,选择微信支付。如果客户端是网页,则会生成一个二维码,您可以扫码付款。如果客户端是移动终端,则会直接跳转到微信 APP 进行支付。

下一步 #

您可以根据需要为集成添加更多功能

创建 Webhook #

监听 WooshPay 账户上的事件,以便您的集成可以自动触发反应。创建一个 webhook,主要关注 enabled_events 和 url。

创建退款 #

创建退款,将资金返还给客户。您也可以执行部分退款,但并非每种支付方式都支持。部分退款是指只退还原始交易金额的一部分。

What are your feelings
Updated on 8月 9, 2023